以下流程用于从创建云服务器实例开始,到 MySQL 数据库可用、数据与代码上传并成功运行程序的完整操作备忘,适合你后期重新启用云服务器时快速复现环境。
一、创建云服务器实例(ECS / CVM / EC2)
1. 基本配置
-
操作系统:
- 推荐:
Ubuntu 20.04 / 22.04 LTS或CentOS 7
- 推荐:
-
实例规格:
- 开发 / 轻量任务:1核2G / 2核4G
-
存储:
- 系统盘:40–50GB(SSD)
-
网络:
- 分配公网 IP(后续远程连接必需)
-
安全组:
-
放行端口:
- 22(SSH)
- 3306(MySQL,如需远程连接)
- 你程序使用的端口(如 8000 / 8080)
-
2. 登录服务器
ssh root@<公网IP>
二、服务器基础环境初始化(只需一次)
1. 系统更新
apt update && apt upgrade -y # Ubuntu
# 或
yum update -y # CentOS
2. 安装常用工具
apt install -y git wget unzip vim
3. 安装 Python(如未自带)
apt install -y python3 python3-pip
python3 --version
三、安装与配置 MySQL
1. 安装 MySQL
apt install -y mysql-server
systemctl start mysql
systemctl enable mysql
2. 初始化安全配置(建议执行)
mysql_secure_installation
- 设置 root 密码
- 禁用匿名用户
- 禁止远程 root 登录(可选)
3. 登录 MySQL
mysql -u root -p
四、创建数据库与用户
-- 创建数据库
CREATE DATABASE mydb DEFAULT CHARSET utf8mb4;
-- 创建用户
CREATE USER 'myuser'@'%' IDENTIFIED BY 'strong_password';
-- 授权
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'%';
FLUSH PRIVILEGES;
如需远程访问 MySQL:
- 修改
/etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 0.0.0.0
- 重启 MySQL:
systemctl restart mysql
五、本地数据上传到云数据库
方式 1:SQL 文件导入(推荐)
本地导出
mysqldump -u root -p mydb > mydb.sql
上传到服务器
scp mydb.sql root@<公网IP>:/root/
云端导入
mysql -u myuser -p mydb < mydb.sql
方式 2:CSV 文件导入
LOAD DATA LOCAL INFILE '/path/data.csv'
INTO TABLE table_name
FIELDS TERMINATED BY ','
IGNORE 1 LINES;
六、上传本地代码到云服务器
方式 1:SCP(最常用)
scp -r ./project root@<公网IP>:/root/project
方式 2:Git(推荐长期维护)
git clone <repo_url>
七、配置并运行代码
1. 安装 Python 依赖
cd /root/project
pip3 install -r requirements.txt
2. 配置数据库连接(示例)
DB_HOST = '127.0.0.1'
DB_PORT = 3306
DB_USER = 'myuser'
DB_PASSWORD = 'strong_password'
DB_NAME = 'mydb'
3. 运行程序
python3 app.py
八、后台运行程序(防止 SSH 断开)
方式 1:nohup
nohup python3 app.py > app.log 2>&1 &
方式 2:screen(推荐)
screen -S myapp
python3 app.py
# Ctrl+A+D 退出但不中断
九、常见检查清单(出问题优先看)
- MySQL 是否运行:
systemctl status mysql
- 端口是否监听:
netstat -tlnp
- 防火墙是否放行:
ufw status
- 程序日志:
tail -f app.log
十、下次重新使用云服务器的最小步骤
- 启动实例
- SSH 登录
- 启动 MySQL
- 启动程序(screen / nohup)
建议:
- 把本流程保存为 Markdown 或笔记
- 关键账号密码放在
.env或密码管理器 - 定期对数据库做
mysqldump备份