在轻量级服务器(如阿里云ECS、腾讯云CVM、AWS EC2等)上安装 MySQL 数据库是一个常见需求。以下是针对 Ubuntu/Debian 和 CentOS/RHEL 系统的详细安装步骤,适用于轻量级服务器环境(如1核2G配置)。
✅ 一、选择合适的 MySQL 版本
推荐使用 MySQL Community Server,它是免费且功能完整的版本。也可以考虑更轻量的替代方案:
- MariaDB:MySQL 的一个分支,性能更好,资源占用更低,适合轻量服务器。
- Percona Server:优化版 MySQL,适合高负载场景。
这里以 MySQL Community Server 为例。
✅ 二、Ubuntu / Debian 系统安装 MySQL
1. 更新系统包
sudo apt update && sudo apt upgrade -y
2. 安装 MySQL 服务器
sudo apt install mysql-server -y
注意:Ubuntu 默认仓库中的
mysql-server包通常会自动安装 MariaDB 或 MySQL,具体取决于版本。确认是否为官方 MySQL。
如果要安装 官方最新版 MySQL,建议添加 MySQL 官方 APT 源:
添加 MySQL 官方源(可选)
# 下载并安装 MySQL APT 配置包
wget https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.24-1_all.deb
安装过程中选择 MySQL 8.0(或 5.7),然后继续。
sudo apt update
sudo apt install mysql-server -y
3. 启动并设置开机自启
sudo systemctl start mysql
sudo systemctl enable mysql
4. 运行安全初始化(强烈建议)
sudo mysql_secure_installation
按提示设置:
- root 密码强度
- 删除匿名用户
- 禁止 root 远程登录
- 删除 test 数据库
- 重新加载权限表
✅ 三、CentOS / RHEL / AlmaLinux / Rocky Linux
1. 更新系统
sudo yum update -y
或(CentOS 8+ 使用 dnf):
sudo dnf update -y
2. 添加 MySQL Yum 源
前往 MySQL 下载页面 获取对应版本的 repo 包。
例如 CentOS 7/8:
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
启用 MySQL 8.0 源(或修改为 5.7):
sudo yum-config-manager --disable mysql80-community
sudo yum-config-manager --enable mysql57-community
3. 安装 MySQL
sudo yum install mysql-server -y
4. 启动服务
sudo systemctl start mysqld
sudo systemctl enable mysqld
5. 获取临时 root 密码(仅首次启动)
sudo grep 'temporary password' /var/log/mysqld.log
6. 安全初始化
sudo mysql_secure_installation
输入临时密码后,设置新密码并完成安全配置。
✅ 四、基础配置优化(适合轻量服务器)
编辑 MySQL 配置文件,减少内存占用:
Ubuntu 路径:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
CentOS 路径:
sudo nano /etc/my.cnf
在 [mysqld] 段落中添加以下内容(适用于 1GB~2GB 内存服务器):
[mysqld]
# 基础设置
port = 3306
bind-address = 127.0.0.1 # 仅本地访问,提高安全性
# 内存优化
key_buffer_size = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 4
# InnoDB 优化(主要存储引擎)
innodb_buffer_pool_size = 128M # 根据内存调整,512MB~1GB 可设更大
innodb_log_file_size = 32M
innodb_flush_log_at_trx_commit = 2
# 其他
max_connections = 50 # 减少连接数,节省资源
table_open_cache = 200
query_cache_type = 1
query_cache_size = 16M
保存后重启 MySQL:
sudo systemctl restart mysql # Ubuntu
sudo systemctl restart mysqld # CentOS
✅ 五、远程访问配置(可选)
⚠️ 注意:开放远程访问有安全风险,请确保防火墙和密码强度。
-
修改配置文件,注释或改为:
bind-address = 0.0.0.0 -
创建远程访问用户:
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'StrongPassword123!'; GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; -
防火墙放行 3306 端口:
sudo ufw allow 3306/tcp # Ubuntu sudo firewall-cmd --add-port=3306/tcp --permanent # CentOS sudo firewall-cmd --reload -
云服务器还需在 安全组 中放行 3306 端口。
✅ 六、验证安装
mysql -u root -p
输入密码后进入 MySQL 命令行,执行:
SHOW DATABASES;
SELECT VERSION();
✅ 七、可选:使用 MariaDB 替代(更轻量)
# Ubuntu
sudo apt install mariadb-server mariadb-client
# CentOS
sudo yum install mariadb-server mariadb
后续操作类似,mysql_secure_installation 也适用。
✅ 总结
| 项目 | 推荐 |
|---|---|
| 系统 | Ubuntu 20.04/22.04 或 CentOS 7/8 |
| 数据库 | MySQL 8.0 或 MariaDB 10.6+ |
| 内存配置 | 128M~256M innodb_buffer_pool_size |
| 安全 | 设置强密码、禁用远程 root、定期更新 |
如有特定需求(如 LNMP 环境、Docker 安装、一键脚本等),可进一步说明,我可以提供定制化方案。
CDNK博客