在 Linux 云服务器上部署 MySQL 数据库是一个常见的任务。以下是详细的步骤指南,适用于大多数主流 Linux 发行版(如 Ubuntu、Debian、CentOS/RHEL)。
✅ 前提条件
- 已登录服务器:通过 SSH 连接到你的 Linux 云服务器。
- 拥有 sudo 权限:确保你当前用户具有 root 或 sudo 权限。
- 更新系统包索引:
sudo apt update # Ubuntu/Debian sudo yum update # CentOS/RHEL
📦 步骤一:安装 MySQL Server
🔹 Ubuntu / Debian 系统
sudo apt install mysql-server -y
🔹 CentOS / RHEL 8+(使用 MariaDB 作为默认替代)
注意:CentOS 8+ 默认不再提供 MySQL,而是使用 MariaDB。如果你坚持用 MySQL,需添加官方 YUM 源。
方法 A:安装 MariaDB(推荐,兼容性好)
sudo yum install mariadb-server -y
sudo systemctl start mariadb
sudo systemctl enable mariadb
方法 B:安装 Oracle MySQL(需配置官方源)
# 下载 MySQL YUM 仓库配置
sudo wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
sudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm
# 安装 MySQL Server
sudo yum install mysql-community-server -y
sudo systemctl start mysqld
sudo systemctl enable mysqld
🔐 步骤二:初始化 MySQL 安全设置
运行安全脚本,设置 root 密码、移除匿名用户等:
sudo mysql_secure_installation
按提示操作:
- 设置 root 密码
- 删除匿名账户
- 禁止 root 远程登录(建议后续单独创建用户)
- 删除测试数据库
- 刷新权限表
⚠️ 对于 MySQL 8.x,
mysql_secure_installation可能不会自动设置 root 密码。你可以手动设置:
sudo mysql -u root
进入 MySQL 后执行:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourStrongPassword';
FLUSH PRIVILEGES;
EXIT;
🌐 步骤三:允许远程访问(可选但重要)
默认情况下,MySQL 只允许本地连接。如需从外部连接(如本地 Navicat、DBeaver 等),需修改配置并开放端口。
1. 编辑 MySQL 配置文件
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf # Ubuntu
# 或
sudo nano /etc/my.cnf # CentOS
找到 bind-address 行,将其改为:
bind-address = 0.0.0.0
2. 重启 MySQL 服务
sudo systemctl restart mysql # Ubuntu
sudo systemctl restart mysqld # CentOS
3. 创建允许远程访问的用户
sudo mysql -u root -p
-- 创建新用户(推荐不要直接用 root 远程)
CREATE USER 'remoteuser'@'%' IDENTIFIED BY 'YourStrongPassword';
-- 授权所有数据库(或指定库)
GRANT ALL PRIVILEGES ON *.* TO 'remoteuser'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
4. 开放防火墙端口(3306)
Ubuntu (UFW)
sudo ufw allow 3306/tcp
sudo ufw reload
CentOS (firewalld)
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload
✅ 步骤四:验证安装
本地测试
mysql -u root -p
输入密码后应能成功进入 MySQL 命令行。
远程测试(从本机或其他机器)
mysql -h <your_server_ip> -P 3306 -u remoteuser -p
如果连接成功,说明部署完成!
🛡️ 安全建议
- 禁用 root 远程登录:始终使用专用用户进行远程访问。
- 强密码策略:使用复杂密码。
- 定期备份:使用
mysqldump或工具如 Percona XtraBackup。 - 启用 SSL/TLS:加密远程连接(可选高级配置)。
- 限制 IP 访问:通过云安全组或防火墙仅允许特定 IP 访问 3306 端口。
🧪 常用命令汇总
| 操作 | 命令 |
|---|---|
| 启动 MySQL | sudo systemctl start mysql |
| 停止 MySQL | sudo systemctl stop mysql |
| 重启 MySQL | sudo systemctl restart mysql |
| 查看状态 | sudo systemctl status mysql |
| 登录 MySQL | mysql -u root -p |
| 查看版本 | mysql --version |
❓ 常见问题
Q:忘记 root 密码怎么办?
A:以 skip-grant-tables 模式启动 MySQL,重置密码后恢复正常模式。
Q:如何卸载 MySQL?
A:
sudo apt remove --purge mysql-server mysql-client mysql-common
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql
如有特定需求(如主从复制、集群、Docker 部署等),可进一步说明,我会提供对应方案。
云知识CLOUD