在 2核4G 的服务器上安装 MySQL 5.7 是完全可行的,这种配置适合中小型应用或开发测试环境。以下是详细的安装步骤(以 CentOS 7/8 或 Ubuntu 20.04 为例)。
✅ 一、准备工作
1. 更新系统
# CentOS/RHEL
sudo yum update -y
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
2. 检查内存和 CPU
free -h # 查看内存(应有约3.7G可用)
lscpu # 查看CPU核心数
2核4G 足够运行 MySQL 5.7,但需适当优化配置避免 OOM。
✅ 二、安装 MySQL 5.7
方法一:CentOS 7/8 安装 MySQL 5.7(推荐使用官方 Yum 源)
1. 添加 MySQL 官方 Yum 源
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
sudo rpm -ivh mysql57-community-release-el7-11.noarch.rpm
注意:
el7适用于 CentOS 7,如果是 CentOS 8,请使用el8版本(如果存在),或继续用 el7 源。
2. 安装 MySQL Server
sudo yum install -y mysql-community-server
3. 启动并设置开机自启
sudo systemctl start mysqld
sudo systemctl enable mysqld
4. 获取临时 root 密码
MySQL 5.7 首次启动会生成一个临时密码:
grep 'temporary password' /var/log/mysqld.log
输出示例:
A temporary password is generated for root@localhost: abc123!XYZ
5. 初始化安全设置
sudo mysql_secure_installation
按提示操作:
- 输入临时密码
- 设置新密码(需包含大小写、数字、特殊字符)
- 删除匿名用户
- 禁止 root 远程登录(可选)
- 删除 test 数据库
- 重新加载权限表
方法二:Ubuntu 20.04 安装 MySQL 5.7
Ubuntu 默认源可能提供的是 MySQL 8.0,需手动添加 MySQL 5.7 源。
1. 添加 MySQL APT 源
wget https://dev.mysql.com/get/mysql-apt-config_0.8.16-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.16-1_all.deb
在弹出的界面中选择:
- Choose MySQL Server & Cluster → Select
mysql-5.7 - 保持其他默认 → OK
2. 更新并安装
sudo apt update
sudo apt install -y mysql-server
3. 启动并设置
sudo systemctl start mysql
sudo systemctl enable mysql
4. 安全初始化
sudo mysql_secure_installation
如果提示需要密码,可先免密登录修改。
✅ 三、(可选)配置远程访问
1. 修改配置文件(允许远程连接)
编辑 MySQL 配置文件:
# CentOS:
sudo vi /etc/my.cnf
# Ubuntu:
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
找到 bind-address,改为:
bind-address = 0.0.0.0
⚠️ 注意:开放远程需确保防火墙和安全组配置正确,避免暴露到公网。
2. 授权远程用户
登录 MySQL:
mysql -u root -p
执行:
-- 创建远程用户(例如 user1,密码为 Passw0rd!)
CREATE USER 'user1'@'%' IDENTIFIED BY 'Passw0rd!';
-- 授予所有权限(生产环境请按需授权)
GRANT ALL PRIVILEGES ON *.* TO 'user1'@'%' WITH GRANT OPTION;
-- 刷新权限
FLUSH PRIVILEGES;
3. 开放防火墙端口
# CentOS 7+ (firewalld)
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload
# Ubuntu (ufw)
sudo ufw allow 3306
✅ 四、MySQL 5.7 适配 2核4G 的优化建议(重要!)
编辑 /etc/my.cnf(或对应配置文件),添加以下内容:
[mysqld]
# 基础设置
port = 3306
socket = /var/lib/mysql/mysql.sock
datadir = /var/lib/mysql
symbolic-links = 0
# 性能优化(针对 2C4G)
innodb_buffer_pool_size = 1G # 推荐设为物理内存的 50%~70%
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 2 # 提高性能,轻微降低持久性
max_connections = 100 # 根据实际需求调整
table_open_cache = 400
tmp_table_size = 64M
max_heap_table_size = 64M
query_cache_type = 1
query_cache_size = 64M
# 日志
log-error = /var/log/mysqld.log
pid-file = /var/run/mysqld/mysqld.pid
修改
innodb_buffer_pool_size后需重启 MySQL 生效。
重启 MySQL:
sudo systemctl restart mysqld
# 或
sudo systemctl restart mysql
✅ 五、验证安装
mysql -u root -p -e "SELECT VERSION();"
输出应类似:
+-----------+
| VERSION() |
+-----------+
| 5.7.44 |
+-----------+
✅ 六、常见问题
| 问题 | 解决方法 |
|---|---|
Can't connect to local MySQL server |
检查服务是否运行:systemctl status mysqld |
| 密码错误 | 使用 skip-grant-tables 模式重置密码 |
| 内存不足崩溃 | 检查 innodb_buffer_pool_size 是否过大 |
✅ 总结
- ✅ 2核4G 可以稳定运行 MySQL 5.7
- ✅ 建议使用官方源安装
- ✅ 必须进行安全配置和性能调优
- ✅ 生产环境建议开启日志监控和定期备份
如需我提供一键安装脚本或自动优化配置文件,也可以告诉我你的系统版本(如 CentOS 7、Ubuntu 20.04 等),我可以为你生成。
ECLOUD博客