在阿里云2核4G的ECS上手动安装MySQL需要注意什么?

在阿里云2核4G的ECS上手动安装MySQL,需要注意以下几点以确保性能、安全和稳定性:

一、系统资源优化

  1. 内存分配:2核4G内存较小,建议:

    • 设置 innodb_buffer_pool_size = 1-2G(占物理内存50-70%)
    • 调整 key_buffer_size = 64-128M
    • 控制连接数:max_connections = 100-150
  2. SWAP空间:确保有2-4G Swap空间

    # 创建Swap文件
    sudo fallocate -l 2G /swapfile
    sudo chmod 600 /swapfile
    sudo mkswap /swapfile
    sudo swapon /swapfile

二、安装选择

  1. 版本选择

    • 推荐MySQL 5.7或8.0,避免使用过旧版本
    • 考虑Percona Server或MariaDB(对资源更友好)
  2. 安装方式

    # Ubuntu/Debian
    sudo apt update
    sudo apt install mysql-server
    
    # CentOS/RHEL
    sudo yum install mysql-server

三、配置优化

  1. 基础配置调整

    # /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
  2. 连接管理

    wait_timeout = 300
    interactive_timeout = 300
    max_connect_errors = 1000

四、安全设置

  1. 基础安全

    # 运行安全脚本
    sudo mysql_secure_installation
    
    # 修改默认端口(可选)
    port = 3307
  2. 防火墙配置

    # 阿里云安全组 + 系统防火墙
    sudo ufw allow 3306/tcp
    # 或使用阿里云控制台设置安全组规则
  3. 访问限制

    • 绑定内网IP:bind-address = 内网IP
    • 避免使用root远程登录

五、监控与维护

  1. 资源监控

    # 安装监控工具
    sudo apt install sysstat   # 包含iostat, mpstat
    
    # 常用命令
    top -p $(pgrep mysqld)
    mysqladmin processlist
  2. 日志配置

    slow_query_log = 1
    slow_query_log_file = /var/log/mysql/slow.log
    long_query_time = 2
    log_error = /var/log/mysql/error.log

六、备份策略

  1. 自动备份

    # 使用mysqldump定时备份
    0 2 * * * /usr/bin/mysqldump -u backup_user -p密码 数据库名 | gzip > /backup/db_$(date +%Y%m%d).sql.gz
  2. 备份保留

    • 保留最近7天备份
    • 定期测试恢复流程

七、阿里云特定注意事项

  1. 磁盘选择

    • 系统盘:ESSD云盘,至少40G
    • 数据盘:单独挂载ESSD云盘到 /var/lib/mysql
  2. 性能优化

    # 调整磁盘调度器(ESSD云盘)
    echo 'mq-deadline' > /sys/block/vdb/queue/scheduler
    
    # 禁用透明大页
    echo never > /sys/kernel/mm/transparent_hugepage/enabled
  3. 安全组配置

    • 仅开放必要端口(3306)
    • 限制访问源IP

八、故障排查准备

  1. 常用命令

    SHOW STATUS LIKE '%onn%';
    SHOW ENGINE INNODB STATUS;
    SHOW PROCESSLIST;
  2. 应急方案

    • 内存不足时:临时重启MySQL
    • 连接数满时:mysqladmin flush-hosts

建议总结

  1. 优先使用阿里云RDS:小规格ECS手动维护成本高
  2. 如果必须自建
    • 使用MySQL 5.7或Percona Server 5.7
    • 定期进行压力测试
    • 设置监控告警(可使用阿里云云监控)
    • 考虑使用Docker部署便于迁移

这样的配置可以在2核4G环境下平衡性能和稳定性,但需注意数据量增长后的扩容计划。

云服务器