在阿里云 ECS(CentOS 系统)上部署 MySQL,推荐直接使用官方 YUM 源安装社区版(MySQL Community Server),这种方式配置简单、更新方便且兼容性好。以下是详细步骤:
✅ 一、前置准备
- 登录阿里云控制台,确认 ECS 实例已启动,安全组已放行
3306端口(否则无法远程连接)。 - SSH 登录到 ECS(使用 root 或具有 sudo 权限的账号):
ssh root@<your-ecs-ip>
✅ 二、安装 MySQL(以 CentOS 7/8 为例)
方式一:使用官方 YUM 仓库(推荐)
# 1. 下载并安装 MySQL YUM 配置文件
sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
# 注意:el7 对应 CentOS 7;若为 CentOS 8,请将 el7 改为 el8
# 验证版本:cat /etc/yum.repos.d/mysql-community.repo | grep enabled
# 2. 安装 MySQL 服务器
sudo yum install -y mysql-community-server
# 3. 启动 MySQL 服务
sudo systemctl start mysqld
# 4. 设置开机自启
sudo systemctl enable mysqld
# 5. 查看初始 root 密码(首次安装时生成)
sudo grep 'temporary password' /var/log/mysqld.log
🔐 初始密码通常位于
/var/log/myspnd.log中,包含大小写字母、数字和特殊字符。
✅ 三、安全加固与初始化
运行 mysql_secure_installation
sudo mysql_secure_installation
按提示操作:
- 输入初始临时密码
- 设置新的 root 密码(建议 ≥8 位,含大小写+数字+符号)
- 移除匿名用户 →
Y - 禁止 root 远程登录 →
Y(生产环境务必关闭!) - 删除测试数据库 →
Y - 重新加载权限表 →
Y
可选:允许远程连接(谨慎操作)
⚠️ 仅当业务需要且已配置好安全组 + 防火墙时进行:
# 1. 编辑 MySQL 配置文件
sudo vi /etc/my.cnf
# 找到 [mysqld] 部分,添加或修改:
bind-address = 0.0.0.0
# 2. 重启 MySQL
sudo systemctl restart mysqld
# 3. 创建可远程访问的用户(示例:user@%)
mysql -u root -p
进入 MySQL 后执行:
-- 创建用户(替换为你自己的密码)
CREATE USER 'myuser'@'%' IDENTIFIED BY 'StrongPassword123!';
-- 授权
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%';
FLUSH PRIVILEGES;
EXIT;
🛡️ 更安全的做法是限制 IP:将
'%'改为具体客户端 IP,如'myuser'@'192.168.1.100'
✅ 四、验证安装
# 检查状态
systemctl status mysqld
# 登录测试
mysql -u root -p
# 查看版本
mysql --version
mysql -u root -p -e "SELECT VERSION();"
⚙️ 五、常见问题排查
| 问题 | 解决方案 |
|---|---|
mysqld 启动失败 |
查看日志:sudo journalctl -xe 或 tail -f /var/log/mysqld.log |
| 端口被占用 | netstat -tlnp | grep 3306,检查是否有其他进程 |
| 忘记 root 密码 | 参考 MySQL 官方重置密码文档 |
| 远程连不上 | ① 检查阿里云安全组是否开放 3306;② 检查 bind-address;③ 确认防火墙(firewalld)未拦截 |
💡 进阶建议
- 生产环境建议使用 RDS for MySQL(托管服务,免运维、高可用、自动备份)
- 定期备份:
mysqldump --all-databases > backup_$(date +%F).sql - 启用慢查询日志优化性能
需要我提供自动化脚本、Docker 部署方案,或针对 CentOS Stream 8/9 的具体调整吗?
CLOUD技术博