在一台 2核2G 的服务器(如云服务器)上安装 MySQL 5.7 是完全可行的,不过需要注意资源限制,避免配置过高导致系统卡顿或OOM(内存不足)。以下是详细的安装步骤,适用于 CentOS 7/8 系统:
✅ 一、检查系统环境
# 查看系统版本
cat /etc/redhat-release
确保你使用的是 CentOS 7 或 CentOS 8。
✅ 二、添加 MySQL 5.7 官方 YUM 源
- 下载并安装 MySQL 的 YUM 源配置文件:
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
sudo rpm -Uvh mysql57-community-release-el7-11.noarch.rpm
注意:如果你用的是 CentOS 8,请将上面的
el7替换为el8,否则可能报错。
✅ 三、安装 MySQL 5.7
sudo yum install -y mysql-community-server
等待安装完成。
✅ 四、启动 MySQL 并设置开机自启
# 启动服务
sudo systemctl start mysqld
# 设置开机启动
sudo systemctl enable mysqld
# 查看状态
sudo systemctl status mysqld
✅ 五、获取临时密码并登录 MySQL
MySQL 5.7 初始安装后会生成一个临时密码,保存在日志文件中:
grep 'temporary password' /var/log/mysqld.log
输出示例:
2025-04-05T10:00:00.123456Z 1 [Note] A temporary password is generated for root@localhost: abcdefg123!
复制这个密码,然后登录 MySQL:
mysql -u root -p
输入刚才的临时密码。
✅ 六、修改 root 密码(首次登录必须改)
进入 MySQL 后执行以下命令:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
密码需满足默认策略:至少8位,包含大小写、数字和特殊字符。如果想降低密码复杂度要求,可以继续阅读下面的“可选配置”。
✅ 七、(可选)关闭密码复杂度验证
SET GLOBAL validate_password_policy=LOW;
SET GLOBAL validate_password_length=6;
或者直接关闭插件:
UNINSTALL PLUGIN validate_password;
✅ 八、(可选)优化 MySQL 配置(适合2核2G)
编辑 MySQL 配置文件:
sudo vi /etc/my.cnf
在 [mysqld] 区域加入以下内容以优化内存使用:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
# 小内存优化
innodb_buffer_pool_size = 512M
key_buffer_size = 64M
max_allowed_packet = 32M
table_open_cache = 64
sort_buffer_size = 512K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
query_cache_type = 0
query_cache_size = 0
tmp_table_size = 16M
max_connections = 100
innodb_log_file_size = 48M
skip-name-resolve
保存退出,重启 MySQL:
sudo systemctl restart mysqld
✅ 九、(可选)创建远程访问用户
CREATE USER 'youruser'@'%' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON *.* TO 'youruser'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
同时开放防火墙端口:
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload
✅ 十、连接测试
你可以使用 Navicat、DBeaver 或其他工具远程连接 MySQL 测试是否正常。
🧠 温馨提示(针对小内存服务器)
- 不要开启过多并发连接。
- 不建议运行大型数据库或高并发场景。
- 可考虑关闭不必要的服务(如 Apache/Nginx)来释放内存。
- 如果频繁出现 OOM,可以增加 swap 分区。
📌 常见问题
Q:安装时提示冲突?
A:可能是有旧版本残留,先卸载干净:
sudo yum remove mysql mysql-server
Q:无法远程连接?
A:检查:
- 是否创建了
%用户; - 是否开放了 3306 端口;
- 是否放行了防火墙;
- 是否绑定了
bind-address = 0.0.0.0(默认是127.0.0.1);
如果你告诉我具体的操作系统版本(如 CentOS 7 还是 8),我可以给出更精确的安装命令。
需要我帮你写一个完整的安装脚本吗?
CLOUD技术博