在阿里云服务器上安装和配置 MySQL 数据库,推荐优先使用 RDS MySQL(云数据库) 而非自行搭建,因为 RDS 提供高可用、自动备份、监控告警等托管服务。但若需自建(如学习、特定需求),可按以下步骤操作:
✅ 方案一:推荐使用阿里云 RDS MySQL(生产环境首选)
优势:
- 免运维(自动补丁、备份、扩缩容)
- 高可用架构(主备切换<30秒)
- 内置监控、审计、安全组隔离
- 支持按量/包年包月付费
操作步骤:
- 登录 阿里云控制台
- 创建实例:选择版本(MySQL 5.7/8.0)、规格、存储类型(SSD/ESSD)
- 设置白名单(添加你的 ECS IP 或
0.0.0.0/0测试用) - 创建账号并设置密码
- 通过内网/网络连接(推荐内网 + 安全组控制)
💡 提示:新购 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天
❗ 重要提醒
- 生产环境严禁直接使用
root远程登录 - 定期升级 MySQL 小版本(关注 MySQL 官方公告)
- 开启 SSL 加密传输(尤其跨公网场景)
- 利用阿里云 云监控 + SLS 实时监控 QPS、连接数、CPU
如您告知具体场景(如:开发测试 / 小型业务 / 高并发电商),我可提供更定制化的配置建议。需要我生成一份完整的 my.cnf 优化模板或自动化部署脚本吗?
CLOUD云枢