在 Alibaba Cloud Linux 3.2104 LTS (基于 CentOS/RHEL 8/AlmaLinux 生态) 上安装 MySQL,最推荐的方式是使用 DNF/YUM 官方仓库 或 MySQL 官方 YUM 源。以下是详细步骤:
✅ 推荐方式:使用 MySQL 官方 YUM 源安装(最新稳定版)
1. 添加 MySQL 官方 YUM 仓库
sudo dnf install -y https://dev.mysql.com/get/mysql80-community-release-el8-5.noarch.rpm
注意:
mysql80-community-release-el8-5.noarch.rpm适用于 RHEL/CentOS 8 系列,Alibaba Cloud Linux 3 兼容此包。
如需安装其他版本(如 MySQL 5.7),可替换为:
sudo dnf install -y https://dev.mysql.com/get/mysql57-community-release-el8-5.noarch.rpm
2. 启用所需版本并安装
默认启用的是 MySQL 8.0。如需切换版本,可使用:
# 查看可用模块
dnf module list mysql
# 禁用默认模块,启用特定版本(例如 8.0)
sudo dnf module reset mysql -y
sudo dnf module enable mysql:8.0 -y
然后安装 MySQL 服务器:
sudo dnf install -y mysql-community-server
3. 启动并设置开机自启
sudo systemctl start mysqld
sudo systemctl enable mysqld
sudo systemctl status mysqld
4. 获取临时密码并修改 root 密码
MySQL 8.0 首次安装后会生成一个临时密码,位于日志文件中:
sudo grep 'temporary password' /var/log/mysqld.log
输出类似:
[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: abcdefghijklmnop
使用临时密码登录并修改:
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewStrongPassword123!';
FLUSH PRIVILEGES;
EXIT;
⚠️ MySQL 8.0 默认要求密码符合复杂度策略(大小写+数字+特殊字符)。
5. 配置远程访问(可选)
编辑配置文件:
sudo vi /etc/my.cnf.d/mysql-server.cnf
在 [mysqld] 段落下添加或修改:
bind-address = 0.0.0.0
重启服务:
sudo systemctl restart mysqld
创建允许远程登录的用户:
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'RemotePass123!';
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
6. 开放防火墙端口(阿里云 ECS 还需配置安全组)
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload
并在阿里云控制台 → ECS 实例 → 安全组规则中添加入方向规则:
- 协议:TCP
- 端口范围:3306
- 授权对象:你的 IP 或
0.0.0.0/0(谨慎使用)
🔄 替代方式:使用系统默认仓库(MariaDB 或旧版 MySQL)
Alibaba Cloud Linux 3 默认可能提供 MariaDB:
sudo dnf install -y mariadb-server
sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo mysql_secure_installation
但如果你需要 Oracle MySQL,建议使用上述官方 YUM 源方式。
🔒 安全建议
- 运行
mysql_secure_installation清理匿名用户、禁止 root 远程登录等。 - 定期更新 MySQL:
sudo dnf update mysql-community-server - 备份重要数据。
❓ 常见问题
Q: 安装时提示依赖冲突?
A: 确保没有预装其他 MySQL/MariaDB 包:
sudo dnf remove -y mysql* mariadb*
Q: 无法启动 mysqld?
A: 检查日志:
sudo journalctl -u mysqld -n 50 --no-pager
sudo cat /var/log/mysqld.log | tail -50
Q: 如何验证安装成功?
mysql -u root -p -e "SELECT VERSION();"
如需安装 MySQL 5.7 或 Percona Server,也可参考官方文档调整 YUM 源地址。
如有具体错误信息,欢迎提供日志以便进一步排查!
PHPWP博客