推荐用系统包管理器(yum/apt)安装MySQL,因其适配云环境、自动解决依赖、服务规范;禁用mysql57-community源,启用mysql80-community源后执行yum install -y mysql-community-server,并用临时密码登录后执行ALTER USER修改密码。

直接上结论:在阿里云 ECS 上部署 MySQL,**推荐用系统包管理器安装(yum 或 apt),而非官网下载二进制或 MSI 安装包**——前者适配云服务器环境、依赖自动解决、服务管理规范,后者容易因缺失 VC++ 运行库(Windows)或冲突包(Linux)卡在启动环节。
为什么不能直接 yum install mysql-server?
CentOS 8+/Alibaba Cloud Linux 8+ 系统里,yum install mysql-server 实际安装的是 MariaDB,不是 Oracle 官方 MySQL。这是包管理器仓库的默认映射,不是命令写错。
- 执行
yum install mysql-server后,mysql --version显示的是MariaDB,端口、配置路径、日志位置都和 MySQL 不兼容 - 后续导入 RDS 备份时大概率报错:
ERROR 1045 (28000): Access denied for user 'root'@'localhost'(因为 MariaDB 的 root 认证插件默认是unix_socket,而 MySQL 8.0 是caching_sha2_password) - 必须先清理 MariaDB(
rpm -e --nodeps --allmatches mariadb*+rm -rf /var/lib/mysql /etc/my.cnf),再加官方源
如何正确添加 MySQL 官方 YUM 源(CentOS/Alibaba Cloud Linux)
关键不是“装 MySQL”,而是“让系统知道去哪里找真正的 MySQL”。官方源地址会随版本更新,当前(2026 年)稳定可用的是:
sudo rpm -Uvh https://repo.mysql.com/mysql80-community-release-el8-3.noarch.rpm
验证是否生效:
yum repolist enabled | grep mysql
输出应含 mysql80-community。如果看到 mysql57-community,说明旧源残留,需 sudo yum-config-manager --disable mysql57-community 关闭。
- 不建议用
mysql57-community:RDS 默认已升到 8.0,5.7 导入 8.0 备份会因utf8mb4_0900_as_cs排序规则报错 - 安装命令必须带
--nogpgcheck:部分镜像站签名密钥未同步,否则yum install会失败 - 安装后首次启动,
mysqld会自动生成临时密码,藏在/var/log/mysqld.log里,不是空密码也不是root
登录失败常见原因及修复步骤
执行 mysql -u root -p 报错 Access denied,90% 是没用临时密码,或改密码时没指定认证插件。
- 查临时密码:
sudo grep 'temporary password' /var/log/mysqld.log,复制结果(含末尾换行符,要删掉) - 登录后立刻改密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'YourStrongPass123!'; - 如果之前试过错误密码导致账户锁死,需重启服务:
sudo systemctl restart mysqld - 远程连接仍失败?检查两处:
bind-address是否为0.0.0.0(默认是127.0.0.1),以及阿里云安全组是否放行3306端口(不是 3389)
最易被忽略的点:MySQL 8.0 默认关闭 skip-grant-tables,且 root 用户无法直接 UPDATE mysql.user 修改密码——必须用 ALTER USER 语句。手误写成 SET PASSWORD 或漏掉 WITH caching_sha2_password,会导致下次登录直接拒绝,连临时密码都失效。


















