在阿里云2核4G的ECS上手动安装MySQL,需要注意以下几点以确保性能、安全和稳定性:
一、系统资源优化
-
内存分配:2核4G内存较小,建议:
- 设置
innodb_buffer_pool_size = 1-2G(占物理内存50-70%) - 调整
key_buffer_size = 64-128M - 控制连接数:
max_connections = 100-150
- 设置
-
SWAP空间:确保有2-4G Swap空间
# 创建Swap文件 sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile
二、安装选择
-
版本选择:
- 推荐MySQL 5.7或8.0,避免使用过旧版本
- 考虑Percona Server或MariaDB(对资源更友好)
-
安装方式:
# Ubuntu/Debian sudo apt update sudo apt install mysql-server # CentOS/RHEL sudo yum install mysql-server
三、配置优化
-
基础配置调整:
# /etc/mysql/my.cnf 或 /etc/my.cnf [mysqld] # 禁用DNS反向解析 skip-name-resolve # 禁用性能模式(节省内存) performance_schema=OFF # 调整InnoDB日志 innodb_log_file_size = 128M innodb_flush_log_at_trx_commit = 2 # 查询缓存(MySQL 8.0已移除) # query_cache_type = 0 -
连接管理:
wait_timeout = 300 interactive_timeout = 300 max_connect_errors = 1000
四、安全设置
-
基础安全:
# 运行安全脚本 sudo mysql_secure_installation # 修改默认端口(可选) port = 3307 -
防火墙配置:
# 阿里云安全组 + 系统防火墙 sudo ufw allow 3306/tcp # 或使用阿里云控制台设置安全组规则 -
访问限制:
- 绑定内网IP:
bind-address = 内网IP - 避免使用root远程登录
- 绑定内网IP:
五、监控与维护
-
资源监控:
# 安装监控工具 sudo apt install sysstat # 包含iostat, mpstat # 常用命令 top -p $(pgrep mysqld) mysqladmin processlist -
日志配置:
slow_query_log = 1 slow_query_log_file = /var/log/mysql/slow.log long_query_time = 2 log_error = /var/log/mysql/error.log
六、备份策略
-
自动备份:
# 使用mysqldump定时备份 0 2 * * * /usr/bin/mysqldump -u backup_user -p密码 数据库名 | gzip > /backup/db_$(date +%Y%m%d).sql.gz -
备份保留:
- 保留最近7天备份
- 定期测试恢复流程
七、阿里云特定注意事项
-
磁盘选择:
- 系统盘:ESSD云盘,至少40G
- 数据盘:单独挂载ESSD云盘到
/var/lib/mysql
-
性能优化:
# 调整磁盘调度器(ESSD云盘) echo 'mq-deadline' > /sys/block/vdb/queue/scheduler # 禁用透明大页 echo never > /sys/kernel/mm/transparent_hugepage/enabled -
安全组配置:
- 仅开放必要端口(3306)
- 限制访问源IP
八、故障排查准备
-
常用命令:
SHOW STATUS LIKE '%onn%'; SHOW ENGINE INNODB STATUS; SHOW PROCESSLIST; -
应急方案:
- 内存不足时:临时重启MySQL
- 连接数满时:
mysqladmin flush-hosts
建议总结
- 优先使用阿里云RDS:小规格ECS手动维护成本高
- 如果必须自建:
- 使用MySQL 5.7或Percona Server 5.7
- 定期进行压力测试
- 设置监控告警(可使用阿里云云监控)
- 考虑使用Docker部署便于迁移
这样的配置可以在2核4G环境下平衡性能和稳定性,但需注意数据量增长后的扩容计划。
CLOUD技术笔记