使用最新的包管理器安裝MySQL
sudo dnf install @mysql
開啟啟動#
安裝完成后集侯,運行以下命令來啟動MySQL服務(wù)并使它在啟動時自動啟動:
sudo systemctl enable --now mysqld
添加密碼及安全設(shè)置#
運行mysql_secure_installation腳本妹萨,該腳本執(zhí)行一些與安全性相關(guān)的操作并設(shè)置MySQL根密碼:
sudo mysql_secure_installation
解釋說明:
1.要求你配置VALIDATE PASSWORD component(驗證密碼組件): 輸入y ,回車進入該配置
2.選擇密碼驗證策略等級, 我這里選擇0 (low)竞膳,回車
3.輸入新密碼兩次
4.確認(rèn)是否繼續(xù)使用提供的密碼蹄殃?輸入y ,回車
5.移除匿名用戶袋倔? 輸入y 雕蔽,回車
6.不允許root遠(yuǎn)程登陸? 我這里需要遠(yuǎn)程登陸宾娜,所以輸入n 批狐,回車
7.移除test數(shù)據(jù)庫? 輸入y 前塔,回車
8.重新載入權(quán)限表嚣艇? 輸入y ,回車
9.如果需要設(shè)置root賬戶遠(yuǎn)程登陸华弓,上一步驟中食零,不允許root遠(yuǎn)程登陸?這一步需要設(shè)為n寂屏。
接下來本機登錄MySQL贰谣,將root用戶的host字段設(shè)為'%'娜搂,意為接受root所有IP地址的登錄請求:
本機登錄MySQL:
mysql -uroot -p<上面步驟中設(shè)置的密碼>
接著繼續(xù)執(zhí)行mysql語句,將將root用戶的host字段設(shè)為'%'
use mysql;
update user set host='%' where user='root';
flush privileges;
修改Mysql密碼策略
1吱抚、查看 mysql 初始的密碼策略百宇,
輸入語句 “ SHOW VARIABLES LIKE 'validate_password%'; ” 進行查看,
如下圖:
2秘豹、首先需要設(shè)置密碼的驗證強度等級携御,設(shè)置 validate_password_policy 的全局參數(shù)為 LOW 即可,
輸入設(shè)值語句 “ set global validate_password.policy=LOW; ” 進行設(shè)值憋肖,
3因痛、當(dāng)前密碼長度為 8 ,如果不介意的話就不用修改了岸更,按照通用的來講鸵膏,設(shè)置為 6 位的密碼,設(shè)置 validate_password_length 的全局參數(shù)為 6 即可怎炊,
輸入設(shè)值語句 “ set global validate_password.length=6; ” 進行設(shè)值谭企,
flush privileges;
本次使用的Msyql root密碼為:
///////////////////////////////////////////////////////////
創(chuàng)建一個redmine的數(shù)據(jù)庫
>
create database redmine character set utf8
給redmine數(shù)據(jù)庫創(chuàng)建一個用戶并設(shè)置密碼
>
create user 'redmine'@'localhost' identified by '111111';
給新用戶授權(quán)>
grant all privileges on redmine.* to 'redmine'@'localhost';
>flush privileges;
查看用戶表
select user,host from mysql.user;
查看用戶授權(quán)表
SHOW GRANTS FOR 'redmine'@'localhost';
防火墻設(shè)置
設(shè)置完成后輸入exit退出mysql,回到終端shell界面评肆,接著開啟系統(tǒng)防火墻的3306端口:
sudo firewall-cmd --add-port=3306/tcp --permanent
sudo firewall-cmd --reload
下面是為開啟Apache下端口80及ssh端口443
sudo firewall-cmd --permanent --zone=public --add-port=443/tcp
sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
sudo firewall-cmd --reload
關(guān)閉MySQL主機查詢dns#
MySQL會反向解析遠(yuǎn)程連接地址的dns記錄债查,如果MySQL主機無法連接外網(wǎng),則dns可能無法解析成功瓜挽,導(dǎo)致第一次連接MySQL速度很慢盹廷,所以在配置中可以關(guān)閉該功能。
打開/etc/my.cnf文件久橙,添加以下配置:
[mysqld]
skip-name-resolve
重啟服務(wù)
sudo systemctl restart mysqld
//////////////////======================================
grant? all on? hellodb.*? to? test2@'192.168.34.%' identified by 'centos'; 創(chuàng)建test2用戶俄占,允許其在所有主機通過centos密碼登錄,對hellodb庫的所有表有所有權(quán)限
grant? select(name,age) on? hellodb.students? to? test3@'192.168.34.%' identified by 'centos'; 創(chuàng)建test3用戶淆衷,允許其在所有主機通過centos密碼登錄缸榄,對hellodb庫的name和age有查看權(quán)限。
show grants? for? test2@'192.168.34.%' \G? 可以查看當(dāng)前用戶的授權(quán)情況祝拯,\G換行顯示
回收授權(quán):
REVOKE priv_type, ... ON db_name.tb_name FROM 'user'@'host
示例: revoke? select on? *.*? from? test3@'192.168.34.%'; 收回test3的select 權(quán)限
revoke? delete? on? *.*? from? test3@'192.168.34.%';? 收回test3? 的delete 權(quán)限
查看指定用戶獲得的授權(quán)
Help SHOW GRANTS
SHOW GRANTS FOR 'user'@'host';
SHOW GRANTS FOR CURRENT_USER[()];