在CentOS系統上設置MySQL的安全性的方法如下:
sudo yum update
sudo wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpms
sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm
sudo yum install mysql-community-server -y
sudo systemctl start mysqld
sudo 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/tcp
sudo firewall-cmd --reload
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
GRANT SELECT, INSERT, UPDATE, DELETE ON mydatabase.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
sudo vi /etc/my.cnf
在 [mysqld] 部分添加或修改以下設置:
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
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');