在2核2G的服务器上安装MySQL 5.7是完全可行的,以下是详细步骤:
1. 系统准备
# 更新系统
sudo apt update && sudo apt upgrade -y # Ubuntu/Debian
# 或
sudo yum update -y # CentOS/RHEL
# 安装必要工具
sudo apt install wget curl vim -y # Ubuntu/Debian
# 或
sudo yum install wget curl vim -y # CentOS/RHEL
2. 安装MySQL 5.7
Ubuntu/Debian:
# 添加MySQL官方仓库
wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.23-1_all.deb
sudo dpkg -i mysql-apt-config_*.deb
# 更新包列表
sudo apt update
# 安装MySQL 5.7
sudo apt install mysql-server-5.7 -y
CentOS/RHEL:
# 添加MySQL Yum仓库
sudo rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
# 安装MySQL 5.7
sudo yum install mysql-community-server -y
3. 启动MySQL服务
# 启动服务
sudo systemctl start mysqld
sudo systemctl enable mysqld
# 检查状态
sudo systemctl status mysqld
4. 获取临时密码并安全配置
# 获取临时密码(Ubuntu/Debian)
sudo grep 'temporary password' /var/log/mysql/error.log
# 获取临时密码(CentOS/RHEL)
sudo grep 'temporary password' /var/log/mysqld.log
# 安全配置向导
sudo mysql_secure_installation
按提示操作:
- 输入临时密码
- 设置新密码(强密码策略)
- 删除匿名用户
- 禁止root远程登录(生产环境建议)
- 删除test数据库
- 重新加载权限表
5. 优化配置(重要!)
编辑配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf (Ubuntu) 或 /etc/my.cnf (CentOS):
[mysqld]
# 基础配置
port = 3306
bind-address = 127.0.0.1 # 仅本地访问,更安全
# 内存优化(适合2G内存)
key_buffer_size = 64M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
sort_buffer_size = 256K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 64M
# InnoDB优化
innodb_buffer_pool_size = 512M # 物理内存的25-30%
innodb_log_file_size = 128M
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 2 # 性能优先
innodb_file_per_table = 1
# 连接数优化
max_connections = 100 # 根据实际需求调整
max_connect_errors = 100
open_files_limit = 65535
# 查询缓存(可选)
query_cache_type = 1
query_cache_size = 64M
重启MySQL:
sudo systemctl restart mysqld
6. 验证安装
# 登录MySQL
mysql -u root -p
# 查看版本
SELECT VERSION();
# 查看内存使用情况
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
SHOW STATUS LIKE 'Threads_connected';
7. 监控和维护建议
查看资源使用:
# 实时监控
watch -n 1 'mysql -e "SHOW STATUS LIKE "Threads_connected"; SHOW STATUS LIKE "Innodb_buffer_pool_reads";"'
# 系统资源
htop # 或 top
创建普通用户:
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT SELECT,INSERT,UPDATE,DELETE ON your_database.* TO 'appuser'@'localhost';
FLUSH PRIVILEGES;
注意事项:
- 内存限制:2G内存建议
innodb_buffer_pool_size不超过512M - 连接数:
max_connections设置为100-150足够 - 定期备份:设置自动备份计划
- 监控日志:关注
/var/log/mysql/error.log - 安全加固:禁用远程root登录,使用防火墙限制访问
这样配置后,MySQL 5.7就能在2核2G环境下稳定运行了!
云知识