在CentOS系统上设置MySQL的安全性的方法如下:
安装MySQL- 确保系统是最新的:
sudo yum update
- 添加MySQL Yum仓库并安装MySQL服务器:
sudo wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpmssudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpmsudo yum install mysql-community-server -y
- 启动MySQL服务并设置开机自启:
sudo systemctl start mysqldsudo systemctl enable mysqld
安全设置- 查看初始密码:
grep 'temporary password' /var/log/mysqld.log
- 修改初始密码:
mysql -uroot -p 临时密码
- 运行安全配置脚本:
mysql_secure_installation
- 配置防火墙:
sudo firewall-cmd --permanent --zone public --add-port 3306/tcpsudo firewall-cmd --reload
- 创建新用户并授权:
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';GRANT SELECT, INSERT, UPDATE, DELETE ON mydatabase.* TO 'myuser'@'localhost';FLUSH PRIVILEGES;
- 修改MySQL配置文件:
sudo vi /etc/my.cnf
在 [mysqld]
部分添加或修改以下设置:
bind-address = 127.0.0.1max_connections = 500datadir=/var/lib/mysqlchown -R mysql:mysql /var/lib/mysqlchmod -R 700 /var/lib/mysql
保存更改并重启MySQL服务:
sudo systemctl restart mysqld
用户权限管理- 查看用户:
use mysql;show grants for current_user();
- 创建用户:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
- 授予权限:
GRANT SELECT, INSERT ON mydatabase.* TO 'newuser'@'localhost';FLUSH PRIVILEGES;
- 撤销权限:
REVOKE SELECT, INSERT ON mydatabase.* FROM 'newuser'@'localhost';FLUSH PRIVILEGES;
- 删除用户:
DROP USER 'olduser';
- 更改用户密码:
SET PASSWORD FOR 'olduser'@'localhost' = PASSWORD('newpassword');