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

在阿里云服务器上安装和配置 MySQL 数据库,推荐优先使用 RDS MySQL(云数据库) 而非自行搭建,因为 RDS 提供高可用、自动备份、监控告警等托管服务。但若需自建(如学习、特定需求),可按以下步骤操作:


✅ 方案一:推荐使用阿里云 RDS MySQL(生产环境首选)

优势:

  • 免运维(自动补丁、备份、扩缩容)
  • 高可用架构(主备切换<30秒)
  • 内置监控、审计、安全组隔离
  • 支持按量/包年包月付费

操作步骤:

  1. 登录 阿里云控制台
  2. 创建实例:选择版本(MySQL 5.7/8.0)、规格、存储类型(SSD/ESSD)
  3. 设置白名单(添加你的 ECS IP 或 0.0.0.0/0 测试用)
  4. 创建账号并设置密码
  5. 通过内网/网络连接(推荐内网 + 安全组控制)

💡 提示:新购 RDS 通常赠送 1 个月免费试用;ECS 与 RDS 同可用区可走内网,速度更快更安全。


🔧 方案二:自建 MySQL(适合开发/测试场景)

⚠️ 注意:自建需自行负责备份、安全、性能调优,不建议用于生产

步骤 1:登录 ECS 服务器

ssh -i your-key.pem root@your-ecs-ip

步骤 2:更新系统 & 安装依赖(以 CentOS 7+ / Ubuntu 20.04+ 为例)

CentOS 7/8:

sudo yum update -y
sudo yum install -y wget vim net-tools
# 添加官方 Yum 源(推荐 MySQL 8.0)
wget https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm
sudo rpm -ivh mysql80-community-release-el7-11.noarch.rpm
sudo yum install -y mysql-community-server

Ubuntu 20.04/22.04:

sudo apt update
sudo apt install -y curl gnupg lsb-release
curl -sSLo /tmp/mysql-keyring.gpg https://repo.mysql.com/apt-key
sudo mv /tmp/mysql-keyring.gpg /etc/apt/keyrings/
echo "deb [signed-by=/etc/apt/keyrings/mysql-keyring.gpg] http://repo.mysql.com/apt/ubuntu $(lsb_release -cs) mysql-8.0" | sudo tee /etc/apt/sources.list.d/mysql.list
sudo apt update
sudo apt install -y mysql-server

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

# CentOS
sudo systemctl start mysqld
sudo systemctl enable mysqld

# Ubuntu
sudo systemctl start mysql
sudo systemctl enable mysql

步骤 4:获取临时密码并初始化

首次安装后,MySQL 会生成临时密码:

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

# Ubuntu
sudo cat /var/log/mysql/error.log | grep 'temporary password'

登录后修改 root 密码:

mysql_secure_installation

按提示操作:

  • 是否启用密码强度插件?✅ Yes
  • 删除匿名用户?✅ Yes
  • 禁止 root 远程登录?✅ Yes(生产必须!)
  • 删除测试库?✅ Yes
  • 刷新权限?✅ Yes

🔐 若需允许远程访问(不推荐直接暴露公网),需后续配置防火墙 + 白名单。

步骤 5:配置安全策略(关键!)

(1)限制远程访问(默认已禁用)

编辑配置文件:

sudo vim /etc/my.cnf   # CentOS
# 或
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf  # Ubuntu

确保以下行存在且注释正确:

[mysqld]
bind-address = 127.0.0.1          # 仅本地访问(最安全)
# bind-address = 0.0.0.0         # ❌ 仅当明确需要远程时开启,并配合白名单

重启服务:

sudo systemctl restart mysqld

(2)阿里云安全组放行(如需远程连接)

  • 登录 ECS 控制台 → 安全组
  • 找到对应实例的安全组规则
  • 添加入方向规则:
    • 协议:TCP
    • 端口:3306
    • 授权对象:仅限你的办公 IP(如 123.123.123.123/32),切勿填 0.0.0.0/0

(3)创建专用应用账号(非 root)

-- 登录 MySQL
mysql -u root -p

-- 创建用户(替换密码和 IP)
CREATE USER 'app_user'@'%' IDENTIFIED BY 'StrongP@ssw0rd!';
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'app_user'@'%';
FLUSH PRIVILEGES;
EXIT;

✅ 建议:为每个应用单独建库+用户,避免滥用 root。

步骤 6:验证安装

mysql -u app_user -p -h 127.0.0.1
# 或从本机测试远程(若已配置)
mysql -u app_user -p -h <your-ecs-public-ip> --port=3306

📊 可选优化(进阶)

项目 建议配置
缓冲池大小 innodb_buffer_pool_size = 70%~80% RAM
日志级别 log_error_verbosity = 3(记录警告)
慢查询日志 开启并定期分析(slow_query_log = 1
自动备份 使用 mysqldump + cron 脚本,或接入阿里云 DTS/快照

示例备份脚本 /root/backup_mysql.sh

#!/bin/bash
DATE=$(date +%F_%H%M%S)
DB_NAME="mydb"
BACKUP_DIR="/data/backups"
mkdir -p $BACKUP_DIR
mysqldump -u root -p'YourRootPass' $DB_NAME > $BACKUP_DIR/${DB_NAME}_${DATE}.sql
find $BACKUP_DIR -name "*.sql" -mtime +7 -delete  # 保留最近7天

❗ 重要提醒

  1. 生产环境严禁直接使用 root 远程登录
  2. 定期升级 MySQL 小版本(关注 MySQL 官方公告)
  3. 开启 SSL 加密传输(尤其跨公网场景)
  4. 利用阿里云 云监控 + SLS 实时监控 QPS、连接数、CPU

如您告知具体场景(如:开发测试 / 小型业务 / 高并发电商),我可提供更定制化的配置建议。需要我生成一份完整的 my.cnf 优化模板或自动化部署脚本吗?

未经允许不得转载:CLOUD云枢 » 阿里云服务器上如何正确安装和配置MySQL数据库?