购买阿里云服务器后如何安装配置MySQL?

在阿里云服务器(ECS)上安装和配置 MySQL,需根据您选择的操作系统(推荐 CentOS 7/8、Ubuntu 20.04+/22.04 或 Alibaba Cloud Linux)进行操作。以下以 主流且推荐的 Alibaba Cloud Linux 3(兼容 RHEL/CentOS)Ubuntu 22.04 为例,提供安全、生产就绪的完整步骤(含初始化加固、远程访问配置、防火墙设置等):


✅ 前提准备

  1. 已购买并启动阿里云 ECS 实例(建议 ≥2GB 内存,MySQL 8.0+ 推荐 4GB+)
  2. 已通过 SSH 登录服务器(如 ssh root@<公网IP>
  3. 确保实例安全组已放行 MySQL 端口(默认 3306)
    • 登录 阿里云控制台 → ECS → 安全组 → 配置规则
    • 添加入方向规则:端口范围 3306/3306,授权对象建议 限制为可信 IP(如您的办公 IP)切勿填 0.0.0.0/0(开放全网)

🐧 方案一:Alibaba Cloud Linux 3 / CentOS Stream 9 / RHEL 9(推荐使用官方仓库或 MySQL YUM 源)

步骤 1:更新系统 & 安装依赖

sudo dnf update -y
sudo dnf install -y wget curl gnupg2 lsof

步骤 2:添加 MySQL 官方 YUM 仓库(安装 MySQL 8.0+)

# 下载并安装 MySQL YUM 仓库配置包(以 8.0 为例)
wget https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
sudo rpm -Uvh mysql80-community-release-el9-1.noarch.rpm

# ✅ 可选:启用 MySQL 8.0(默认已启用),禁用其他版本(如 5.7)
sudo dnf config-manager --disable mysql57-community
sudo dnf config-manager --enable mysql80-community

步骤 3:安装 MySQL Server

sudo dnf install -y mysql-community-server

步骤 4:启动并设置开机自启

sudo systemctl enable mysqld
sudo systemctl start mysqld

步骤 5:获取临时 root 密码 & 初始化安全配置

# 查看临时密码(首次启动自动生成)
sudo grep 'temporary password' /var/log/mysqld.log

# 运行安全向导(强烈推荐!)
sudo mysql_secure_installation

按提示操作:

  • 输入临时密码 → 设置新 root 密码(务必强密码,如 MySQl@2024!A1b
  • 后续全部选 Y(移除匿名用户、禁止 root 远程登录、删除 test 库、重载权限表)

💡 注意:mysql_secure_installation 默认会 禁用 root 远程登录,后续如需远程管理,需单独授权。

步骤 6:配置允许远程访问(可选,仅限必要场景)

sudo mysql -u root -p  # 输入刚设的 root 密码

在 MySQL 内执行:

-- 1. 创建专用管理用户(比 root 更安全!)
CREATE USER 'admin'@'%' IDENTIFIED BY 'StrongPass123!';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;

-- 2. 刷新权限
FLUSH PRIVILEGES;

-- ✅ (可选)若必须用 root 远程(不推荐):
-- ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourStrongRootPwd';
-- CREATE USER 'root'@'%' IDENTIFIED BY 'YourStrongRootPwd';
-- GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
-- FLUSH PRIVILEGES;

步骤 7:修改绑定地址(监听所有 IP)

sudo vi /etc/my.cnf.d/mysql-server.cnf

[mysqld] 段下添加或修改:

bind-address = 0.0.0.0    # 允许所有 IP 连接(配合安全组/IP 白名单使用)
# 或更安全:bind-address = 172.18.0.10  # 仅内网 IP(推荐用于应用同 VPC 部署)
max_connections = 200
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

步骤 8:重启 MySQL 并验证

sudo systemctl restart mysqld
sudo systemctl status mysqld  # 确认 active (running)

# 本地测试连接
mysql -u admin -p -h 127.0.0.1

✅ 验证远程连接(从本地电脑):

mysql -h <你的ECS公网IP> -P 3306 -u admin -p

🐳 方案二:Ubuntu 22.04(使用 APT 安装 MySQL 8.0)

# 更新 & 安装
sudo apt update
sudo apt install -y mysql-server

# 启动并启用
sudo systemctl enable mysql
sudo systemctl start mysql

# 运行安全配置(同上)
sudo mysql_secure_installation

# 修改配置(Ubuntu 配置文件通常在 /etc/mysql/mysql.conf.d/mysqld.cnf)
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
# 找到 bind-address = 127.0.0.1 → 改为 bind-address = 0.0.0.0

# 重启
sudo systemctl restart mysql

⚠️ Ubuntu 默认使用 auth_socket 插件认证 root,如需密码登录,进入 MySQL 执行:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourStrongPwd';
FLUSH PRIVILEGES;

🔐 关键安全加固建议(必做!)

项目 操作
✅ 阿里云安全组 仅放行可信来源 IP 的 3306 端口(非 0.0.0.0/0
✅ MySQL 用户权限 禁用 root 远程;为每个应用创建最小权限账号(如 app_user@'172.18.%.%'
✅ 密码策略 SET GLOBAL validate_password.policy = STRONG;(MySQL 8.0+)
✅ 日志审计 开启通用日志或错误日志(谨慎开启通用日志,影响性能)
✅ 自动备份 使用 mysqldump + cron 或阿里云 RDS 备份服务(更推荐上云 RDS)

🚀 进阶建议(生产环境强烈推荐)

  • 优先使用阿里云 RDS MySQL:免运维、自动备份、高可用、SQL 审计、一键升级,成本与 ECS 相当甚至更低。
  • 应用连接使用内网地址:ECS 与 RDS 同地域同 VPC 时,用内网 IP(更安全、低延迟、不走公网流量)。
  • 配置监控告警:通过阿里云云监控设置 CPU、连接数、慢查询等阈值告警。
  • 定期升级sudo dnf update mysql-community-server(保持小版本更新修复漏洞)

需要我为您生成:

  • ✅ 自动化安装脚本(Shell)
  • mysqldump 定时备份脚本(带保留7天)
  • ✅ Docker 方式部署 MySQL(隔离性更好)
  • ✅ 迁移本地数据库到阿里云 MySQL 的详细步骤?

欢迎随时告诉我您的具体环境(OS 版本、MySQL 版本需求、是否已有数据),我会为您定制方案 👇