在云服务器上手动安装和配置 MySQL 数据库是一个常见且重要的任务。以下是详细的步骤指南,适用于主流 Linux 发行版(以 Ubuntu/Debian 和 CentOS/RHEL 为例)。
🛠️ 前提准备
- 已有一台云服务器(如阿里云、腾讯云、AWS、华为云等)
- 操作系统:Ubuntu 20.04+/CentOS 7+/Rocky Linux 8+
- 具备
root或具有sudo权限的用户 - 网络通畅,可访问软件源
✅ 步骤一:更新系统包管理器
Ubuntu / Debian:
sudo apt update && sudo apt upgrade -y
CentOS / Rocky Linux:
sudo yum update -y
# 或对于使用 dnf 的新版本:
sudo dnf update -y
✅ 步骤二:安装 MySQL
方法 1:使用系统默认仓库安装(推荐初学者)
Ubuntu 安装 MySQL:
sudo apt install mysql-server -y
CentOS / Rocky Linux 安装 MySQL:
注意:CentOS 默认仓库可能包含 MariaDB,若要安装官方 MySQL,建议添加 MySQL 官方仓库。
添加 MySQL 官方 Yum 仓库(以 MySQL 8.0 为例):
sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
sudo yum install mysql-server -y
或使用 DNF(适用于 CentOS 8+/Rocky 9+):
sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
sudo dnf install mysql-server -y
✅ 步骤三:启动并设置开机自启
# 启动服务
sudo systemctl start mysqld
# 或在某些系统中是 mysql
sudo systemctl start mysql
# 设置开机自启
sudo systemctl enable mysqld
提示:可通过
systemctl status mysqld查看运行状态。
✅ 步骤四:安全初始化(强烈建议)
运行 MySQL 自带的安全脚本,设置 root 密码、移除匿名用户等。
sudo mysql_secure_installation
按提示操作:
- 设置 root 用户密码(选择强密码)
- 移除匿名用户
- 禁止 root 远程登录(生产环境建议禁用)
- 移除 test 数据库
- 重新加载权限表
⚠️ 如果提示“无法连接到本地 MySQL 服务器”,可能是未运行或 socket 问题,请先确保服务已启动。
✅ 步骤五:登录 MySQL 并验证
sudo mysql -u root -p
输入你设置的密码后进入 MySQL 命令行。
查看当前用户:
SELECT user, host FROM mysql.user;
✅ 步骤六:(可选)创建新用户并授权
避免直接使用 root 远程连接,建议创建专用用户。
-- 创建用户(例如用户名为 myuser,密码为 StrongPass123!)
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'StrongPass123!';
-- 授予数据库权限(例如对数据库 mydb 的所有权限)
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
-- 刷新权限
FLUSH PRIVILEGES;
若要允许远程连接,将
'localhost'改为'%',但需注意防火墙和绑定地址设置。
✅ 步骤七:配置远程访问(如需)
1. 修改 MySQL 配置文件
编辑 MySQL 主配置文件:
Ubuntu 路径:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
CentOS 路径:
sudo nano /etc/my.cnf
# 或
sudo nano /etc/my.cnf.d/mysql-server.cnf
找到 bind-address 行:
bind-address = 127.0.0.1
改为:
bind-address = 0.0.0.0
⚠️ 开放 0.0.0.0 存在安全风险,建议配合防火墙限制 IP。
保存并退出。
2. 重启 MySQL
sudo systemctl restart mysqld
3. 防火墙放行 3306 端口
Ubuntu(UFW):
sudo ufw allow 3306/tcp
CentOS(firewalld):
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload
4. 云服务器安全组配置
登录云平台控制台(如阿里云 ECS 安全组、腾讯云安全组),添加入站规则:
- 协议类型:TCP
- 端口范围:3306
- 源 IP:建议指定特定 IP(如
1.2.3.4/32),避免开放给0.0.0.0/0
✅ 步骤八:测试远程连接
使用客户端工具(如 Navicat、DBeaver)或命令行从另一台机器连接:
mysql -h <你的云服务器公网IP> -u myuser -p
✅ 常见问题排查
| 问题 | 解决方案 |
|---|---|
| 连接被拒 | 检查 MySQL 是否监听 0.0.0.0、防火墙、安全组 |
| 密码错误 | 使用 ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpass'; 修改 |
| Socket 错误 | 尝试 sudo mysql -u root(免密登录本地)再改密码 |
✅ 附加建议
- 定期备份:使用
mysqldump或自动化脚本 - 监控日志:查看
/var/log/mysql/error.log - 启用 SSL:提升安全性(适用于生产环境)
- 使用
.my.cnf配置文件存储密码(避免明文输入)
📌 总结
通过以上步骤,你已经成功在云服务器上:
- 安装了 MySQL
- 完成了基本安全配置
- 可选地开启了远程访问
只要遵循最小权限原则和安全组策略,即可安全使用。
如有具体发行版或报错信息,欢迎提供进一步帮助!
CLOUD云枢