阿里云服务器上如何正确安装和配置MySQL数据库?

在阿里云服务器上正确安装和配置 MySQL 数据库,可以按照以下步骤进行操作。本文以 CentOS 7/8Ubuntu 20.04+ 系统为例。


✅ 一、准备工作

  1. 登录阿里云ECS实例

    • 使用 SSH 登录你的云服务器(如使用 PuTTY 或终端):
      ssh root@your_server_ip
  2. 更新系统包

    • CentOS / RHEL:
      sudo yum update -y
    • Ubuntu / Debian:
      sudo apt update && sudo apt upgrade -y
  3. 关闭防火墙或开放 MySQL 端口(可选)

    • 默认 MySQL 使用端口 3306

    • 若需远程访问,请确保:

      • 阿里云安全组规则已放行 3306 端口。
      • 本地防火墙也允许该端口。
    • CentOS(firewalld):

      sudo firewall-cmd --permanent --add-port=3306/tcp
      sudo firewall-cmd --reload
    • Ubuntu(ufw):

      sudo ufw allow 3306/tcp

✅ 二、安装 MySQL

方法一:安装 MySQL 官方版本(推荐)

1. 添加 MySQL Yum Repository(适用于 CentOS/RHEL)
# 下载并安装 MySQL 官方 Yum 源
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm

注意:根据你的系统版本选择合适的源(如 el8 对应 CentOS 8)。

然后安装 MySQL Server:

sudo yum install mysql-server -y
2. 启动并设置开机自启
sudo systemctl start mysqld
sudo systemctl enable mysqld
3. 查看初始密码(MySQL 8.0+)

首次启动后,MySQL 会生成一个临时 root 密码:

sudo grep 'temporary password' /var/log/mysqld.log

输出示例:

A temporary password is generated for root@localhost: abc123Def!@#

记下这个密码。


方法二:Ubuntu 上安装 MySQL

sudo apt install mysql-server -y

Ubuntu 安装后不会生成临时密码,root 用户默认使用 auth_socket 插件认证,可以直接用 sudo mysql 登录。


✅ 三、初始化安全配置

运行 MySQL 自带的安全脚本:

sudo mysql_secure_installation

该脚本会引导你完成以下操作:

  • 输入当前 root 密码(如果是第一次,输入上面查到的临时密码)
  • 更改 root 密码
  • 移除匿名用户
  • 禁止 root 远程登录(建议保留为 no)
  • 删除测试数据库
  • 重新加载权限表

✅ 建议全部选 Y(是),除了“是否允许 root 远程登录”视需求而定。


✅ 四、登录 MySQL 并配置远程访问(可选)

1. 登录 MySQL

mysql -u root -p

输入你设置的密码。

2. 允许远程连接(如果需要从外部访问)

-- 创建一个可远程访问的用户(例如 user1,密码为 YourPass123)
CREATE USER 'user1'@'%' IDENTIFIED BY 'YourPass123';

-- 授予所有数据库权限(生产环境建议按需授权)
GRANT ALL PRIVILEGES ON *.* TO 'user1'@'%' WITH GRANT OPTION;

-- 刷新权限
FLUSH PRIVILEGES;

⚠️ 注意:'%' 表示允许任意 IP 访问,更安全的做法是限定特定 IP,如 'user1'@'1.2.3.4'

3. 修改 MySQL 绑定地址(默认只监听 localhost)

编辑 MySQL 配置文件:

  • CentOS: /etc/my.cnf
  • Ubuntu: /etc/mysql/mysql.conf.d/mysqld.cnf/etc/mysql/mysql.conf.d/mysqld.cnf

找到 [mysqld] 段中的 bind-address

bind-address = 0.0.0.0

0.0.0.0 表示监听所有网络接口。若只允许本地访问,保持 127.0.0.1

保存后重启 MySQL:

sudo systemctl restart mysqld
# 或 Ubuntu 上可能是:
sudo systemctl restart mysql

✅ 五、阿里云安全组配置

  1. 登录 阿里云控制台
  2. 找到你的 ECS 实例 → 安全组 → 配置规则
  3. 添加入方向规则:
    • 协议类型:自定义 TCP
    • 端口范围:3306
    • 授权对象:0.0.0.0/0(仅测试环境)或指定 IP(如 123.123.123.123/32

🔐 生产环境务必限制 IP,避免暴露数据库。


✅ 六、测试远程连接

使用本地客户端(如 Navicat、DBeaver 或命令行)测试连接:

mysql -h your_server_ip -u user1 -p

✅ 七、其他建议

  1. 定期备份数据库

    mysqldump -u root -p database_name > backup.sql
  2. 设置强密码策略

    • MySQL 8.0 默认启用强密码策略,可调整:
      SET GLOBAL validate_password.policy = LOW;
  3. 监控日志

    • 错误日志路径通常在:/var/log/mysqld.log
  4. 优化配置(可选)

    • 根据内存大小调整 innodb_buffer_pool_size 等参数。

❌ 常见问题排查

问题 解决方法
连接被拒绝 检查安全组、防火墙、bind-address、用户权限
密码错误 使用 ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpass'; 重置
无法启动 MySQL 查看日志 journalctl -u mysqld/var/log/mysqld.log

✅ 总结

通过以上步骤,你可以在阿里云服务器上成功安装并安全配置 MySQL 数据库。关键点包括:

  • 正确安装官方 MySQL
  • 设置强密码并运行 mysql_secure_installation
  • 如需远程访问,创建专用用户 + 开放端口 + 修改 bind-address
  • 配合阿里云安全组实现最小权限访问

如有特殊需求(如主从复制、SSL 加密等),可进一步扩展配置。

如需自动化部署脚本,也可以提供。