云服务器MySQL部署与远程安全访问
云服务器安装 MySQL
在云服务器上安装 MySQL,是搭建网站、后台系统、数据分析平台以及各类业务应用的常见需求。MySQL 作为成熟稳定的关系型数据库,具备性能优秀、生态完善、部署简单等特点,适合部署在阿里云、腾讯云、华为云、AWS、Azure 等云服务器环境中。下面以 Linux 云服务器为例,介绍 MySQL 的安装、初始化、远程访问配置、安全加固和基础维护方法。
一、安装前准备
在安装 MySQL 之前,需要确认云服务器已经满足以下条件:
- 云服务器系统为 Linux,例如 Ubuntu、Debian、CentOS、Rocky Linux 等。
- 已经通过 SSH 登录服务器。
- 云服务器安全组已开放必要端口,例如 SSH 端口和 MySQL 默认端口
3306。 - 服务器具备足够的磁盘空间和内存资源。
- 建议使用普通用户配合
sudo权限执行命令。
可以通过以下命令查看系统信息:
cat /etc/os-release
查看 MySQL 是否已经安装:
mysql --version
二、Ubuntu / Debian 系统安装 MySQL
如果云服务器使用的是 Ubuntu 或 Debian 系统,可以直接通过系统包管理器安装 MySQL。
更新软件源:
sudo apt update
安装 MySQL 服务端:
sudo apt install mysql-server -y
安装完成后,MySQL 服务通常会自动启动。可以执行以下命令查看服务状态:
systemctl status mysql
如果服务没有启动,可以使用:
sudo systemctl start mysql
sudo systemctl enable mysql
三、CentOS / Rocky Linux 系统安装 MySQL
如果使用的是 CentOS、Rocky Linux 或类似系统,可以使用系统仓库安装 MariaDB,也可以安装官方 MySQL。这里以安装 MySQL 为例。
首先安装 MySQL 官方仓库:
sudo yum install -y mysql-community-release
如果系统中没有该仓库包,也可以从 MySQL 官方下载对应版本的 repository 包进行安装。
安装 MySQL 服务:
sudo yum install -y mysql-server
启动 MySQL:
sudo systemctl start mysqld
sudo systemctl enable mysqld
查看服务状态:
systemctl status mysqld
四、MySQL 安全初始化
MySQL 安装完成后,建议立即执行安全初始化脚本:
sudo mysql_secure_installation
执行过程中,系统会提示你设置安全策略,例如:
- 是否启用密码强度检查;
- 是否删除匿名用户;
- 是否禁止 root 远程登录;
- 是否删除测试数据库;
- 是否重新加载权限表。
一般情况下,建议全部选择安全选项。这样可以有效减少数据库被攻击的风险。
五、登录 MySQL
安装完成后,可以使用以下命令登录 MySQL:
sudo mysql
进入 MySQL 命令行后,可以看到类似提示符:
mysql>
如果想使用密码登录,需要先为 root 用户设置密码。可以执行:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的强密码';
FLUSH PRIVILEGES;
之后可以使用:
mysql -u root -p
六、创建数据库和用户
为了业务安全,不建议直接使用 root 用户连接数据库。更推荐为每个应用单独创建数据库和用户。
例如,创建一个名为 myapp 的数据库:
CREATE DATABASE myapp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
创建数据库用户:
CREATE USER 'myapp_user'@'localhost' IDENTIFIED BY '你的强密码';
授权用户访问指定数据库:
GRANT ALL PRIVILEGES ON myapp.* TO 'myapp_user'@'localhost';
FLUSH PRIVILEGES;
如果应用需要远程连接 MySQL,可以授权指定 IP 访问:
CREATE USER 'myapp_user'@'%' IDENTIFIED BY '你的强密码';
GRANT ALL PRIVILEGES ON myapp.* TO 'myapp_user'@'%';
FLUSH PRIVILEGES;
其中 % 表示允许来自任意地址的连接,生产环境中不建议随意开放,最好限制为应用服务器的固定 IP。
七、开放云服务器安全组端口
即使 MySQL 已经安装成功,如果云服务器安全组没有开放 3306 端口,外部仍然无法访问。
需要在云服务商控制台中配置安全组规则:
- 协议:TCP
- 端口:3306
- 来源:建议填写应用服务器 IP 或固定公网 IP
- 不建议对所有 IP 开放
如果服务器内部也启用了防火墙,还需要放行端口。
Ubuntu 使用 UFW:
sudo ufw allow from 应用服务器IP to any port 3306 proto tcp
CentOS 使用 firewalld:
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload
八、配置 MySQL 监听地址
默认情况下,MySQL 可能只监听本地地址 127.0.0.1。如果需要远程连接,需要修改配置文件。
Ubuntu 系统配置文件通常在:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
找到以下配置:
bind-address = 127.0.0.1
可以修改为:
bind-address = 0.0.0.0
或者修改为云服务器的内网 IP,安全性更高。
CentOS 系统配置文件通常在:
sudo vi /etc/my.cnf
修改后重启 MySQL:
sudo systemctl restart mysql
或:
sudo systemctl restart mysqld
九、测试远程连接
在应用服务器或本地电脑中测试连接:
mysql -h 云服务器公网IP -P 3306 -u myapp_user -p
如果连接成功,说明 MySQL 安装、用户授权、安全组和防火墙配置均正常。
如果连接失败,可以依次检查:
- MySQL 服务是否运行;
- 用户是否允许远程登录;
- 云服务器安全组是否开放
3306; - 服务器防火墙是否拦截;
- MySQL 是否监听正确地址;
- 密码是否正确。
十、MySQL 基础维护建议
为了保证数据库稳定运行,建议做好以下维护工作:
1. 定期备份数据库
可以使用 mysqldump 备份数据库:
mysqldump -u root -p myapp > myapp_backup.sql
恢复数据库:
mysql -u root -p myapp < myapp_backup.sql
2. 使用强密码
数据库密码应包含大小写字母、数字和特殊字符,避免使用简单密码。
3. 限制远程访问
生产环境不建议将 MySQL 端口对所有公网 IP 开放,最好只允许应用服务器访问。
4. 监控资源占用
关注 CPU、内存、磁盘 I/O、连接数和慢查询日志,及时发现性能问题。
5. 开启慢查询日志
可以在配置文件中开启慢查询日志,用于分析执行较慢的 SQL 语句。
6. 合理分配内存
MySQL 的内存参数需要根据服务器配置调整,避免设置过高导致系统内存不足。
总结
在云服务器上安装 MySQL,主要流程包括:安装 MySQL 服务、启动服务、执行安全初始化、创建数据库和用户、配置远程访问、开放安全组端口以及做好日常维护。相比直接在公网开放数据库,更推荐采用最小权限原则,只允许指定 IP 访问,并配合强密码、定期备份和日志监控,提升数据库安全性与稳定性。按照以上步骤操作,就可以完成云服务器 MySQL 的基础部署。