1. MySQL环境安装与初始化配置
在云服务器安装MySQL推荐使用系统包管理器或Docker容器化部署。Ubuntu系统可通过sudo apt-get install mysql-server
完成安装,CentOS系统建议采用yum install mysql-server
命令。安装完成后需执行安全初始化脚本:
sudo mysql_secure_installation sudo systemctl enable mysqld sudo systemctl start mysqld
关键配置项包括设置root密码、移除匿名用户、禁用远程root登录等安全策略。Docker部署需创建数据挂载目录并配置my.cnf
文件,注意设置bind-address=0.0.0.0
以允许远程连接。
2. 远程访问权限配置
开启远程访问需完成三个关键步骤:
- 修改MySQL配置文件中的绑定地址为
0.0.0.0
- 创建远程访问用户并授权:
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%';
- 配置云服务器安全组开放3306端口
建议使用FLUSH PRIVILEGES
刷新权限表,并通过netstat -tulnp
验证端口监听状态。
3. 用户权限分级管理
通过权限分配实现最小化授权原则:
- 只读用户授权:
GRANT SELECT ON dbname.* TO 'readonly_user'@'%';
- 读写用户授权:
GRANT SELECT,INSERT,UPDATE,DELETE ON dbname.* TO 'rw_user'@'%';
- 权限回收操作:
REVOKE DROP ON *.* FROM 'user'@'%';
建议通过SHOW GRANTS FOR 'user'@'%';
查询权限配置。
4. 安全加固与优化建议
安全配置应包含:修改默认端口、启用SSL加密、限制连接频率等。关键措施包括:
- 在
my.cnf
中设置port=3307
修改默认端口 - 配置防火墙规则限制访问IP段
- 启用二进制日志实现数据恢复:
[mysqld] log-bin=mysql-bin server-id=1
- 设置自动备份脚本:
mysqldump -u root -p dbname > backup.sql
定期执行mysqlcheck
进行数据库完整性验证,建议使用fail2ban
防御暴力破解。