本文介绍了通过飞天加速计划体验和使用ECS的过程与心得。
环境准备
选择Ubuntu作为ECS的操作系统。
重置 root 密码
我记得创建 ECS 实例的时候没有设置 root 密码,所以在实例创建完之后还是重置一下,自己设置新的 root 密码。
控制台->ECS->实例,找到操作->更多操作->密码/密钥->重置实例密码即可。
新建用户
一般情况下不推荐用 root 用户登录(小心误操作),所以创建普通用户:
useradd -m ivy
-m
表示为该用户创建 home
目录。
随后输入 passwd ivy
为该用户设置密码。
有时候还是要用 root 权限的(摊手),修改 /etc/sudoers
,新加一行 ivy ALL=(ALL) ALL
,这样用户 ivy
就能使用 sudo
命令了。(也可以把用户加到 admin
组,取消 /etc/sudoers
中 %admin ALL=(ALL) ALL
前面的注释。)
更新软件
用新的用户登录之后可以先把系统中的软件包更新一下,Ubuntu 的话两条命令就行。
# 获取最新软件库
sudo apt update
# 更新软件包
sudo apt upgrade
数据库 MySQL
我们项目用到了 MySQL,Ubuntu 可以直接通过命令行安装:
sudo apt install mysql-server
安装完后查看 MySQL 的状态:
sudo systemctl status mysql
# 正常情况下应该已经是 active 状态了,如果没运行的话可以用以下命令启动 MySQL
# sudo systemctl start mysql
MySQL 安装完成后会生成数据库的 root
用户和一个管理员 debian-sys-maint
(在 /etc/mysql/debian.cnf
中可以查看密码),我直接使用 root
用户登录:
sudo mysql -u root
在默认情况下 root
用户只能在 ECS 本机上登录。
导入数据
创建数据库并且指定到新创建的数据库:
CREATE DATABASE water;
USE water
我们这个项目有原型,包含一份导入数据用的 sql
文件,直接用这个文件导入就可以了:
source 文件路径
添加 MySQL 用户
为了方便远程连接,添加一个新用户并赋予权限:
CREATE USER water-admin IDENTIFIED BY '密码';
GRANT ALL ON water.* TO `water-admin`;
FLUSH PRIVILEGES;
验证用户 water-admin
的权限:
SHOW GRANTS FOR `water-admin`;
现在可以用新的用户管理数据库 water
下的表了。
(要不要重启 MySQL 我忘了,应该是不用。)
还要放开 3306
端口才能远程连接 MySQL:
sudo ufw allow 3306
再去阿里云控制台找到安全组,放行 3306
端口。
项目运行环境
项目使用了 jdk-17
,所以我也安装了对应版本的 JDK:
sudo apt install openjdk-17-jdk
验证 Java 版本:
$ java --version
openjdk 17 2021-09-14
OpenJDK Runtime Environment (build 17+35-Ubuntu-120.04)
OpenJDK 64-Bit Server VM (build 17+35-Ubuntu-120.04, mixed mode, sharing)
项目导出和运行
为了验证项目的实际工作情况可以先把项目打包放到 ECS 上运行,这里把项目本身和依赖打包成若干个 jar
包,通过 Java 直接在后台运行,把标准输出重定向到 /dev/null
,错误信息重定向追加输出到一个文件:
sudo java -jar ~/water/water_jar/water.jar 1> /dev/null 2>> ~/error.txt &
项目程序会监听 8080
端口,所以也需要放开这个端口。
使用感受
由于之前有一年用过 ECS 作为个人博客的宿主机(那时候大部分操作都由宝塔面板代劳),我倒是没有遇到太大的困难,整个过程还是比较轻松的。希望通过之后的项目开发过程,技术力能够不断提高吧。