在CentOS上设置MySQL的安全性的方法如下:
安装MySQL
- 下载MySQL的Yum配置:
yum install -y wget wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
- 安装下载的rpm包:
yum -y install mysql57-community-release-el7-11.noarch.rpm
- 使用yum方式安装MySQL:
yum -y install mysql-server --nogpgcheck
- 安装完成后,启动MySQL服务并检查状态:
systemctl start mysqld.service systemctl status mysqld.service
修改密码和开放端口
- 查看Linux安装的MySQL临时密码并修改密码:
grep 'temporary password' /var/log/mysqld.log mysql -uroot -p 临时密码 alter user 'root'@'localhost' identified by '新密码';
- 开放Linux防火墙特定端口并开通MySQL远程登录权限:
firewall-cmd --list-port firewall-cmd --list-services firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload
- 开通MySQL远程登录权限:
mysql -uroot -p use mysql; select host from user where user = 'root'; update user set host = '%' where user = 'root'; flush privileges; select host from user where user = 'root';
安全设置
- 运行
mysql_secure_installation
脚本:
mysql_secure_installation
这个脚本会引导你完成以下操作:
- 设置 root 密码
- 删除匿名用户
- 禁止 root 用户远程登录
- 删除测试数据库和访问权限
- 重新加载授权表。
- 修改MySQL配置文件:
sudo vi /etc/my.cnf
在 [mysqld]
部分添加或修改以下设置:
- 禁止远程 root 登录:
bind-address = 127.0.0.1
- 设置最大连接数:
max_connections = 500
- 设置数据目录的权限:
datadir=/var/lib/mysql chown -R mysql:mysql /var/lib/mysql chmod -R 700 /var/lib/mysql
保存更改并重启 MySQL 服务:
sudo systemctl restart mysqld
- 创建新用户并授权:
为每个需要访问数据库的用户创建一个新的 MySQL 用户,并为其分配适当的权限。例如,创建一个名为 myuser
的新用户,并授予对 mydb
数据库的所有权限:
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword'; GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost'; FLUSH PRIVILEGES;
如果需要允许此用户从其他主机访问,将 'localhost'
替换为相应的主机名或 IP 地址。
- 定期更新和打补丁:
确保定期更新系统和软件包,以修复已知的安全漏洞。可以使用以下命令更新系统:
sudo yum update
通过以上步骤,你可以提高 CentOS 上MySQL 的安全性。请根据实际需求调整配置设置。