過程
安裝
1、通過以下命令,使用最新的包管理器安裝MySQL(安裝過程中一直yes/y即可)
sudo dnf install @mysql
2、設置MySQL自動啓動
sudo systemctl enable --now mysqld
3、檢查MySQL是否在運行
sudo systemctl status mysqld
結果:
(如圖顯示active,則表明MySQL已經安裝成功且正在運行,接下來進行安全性、遠程連接等配置)
安全性配置
4、運行mysql_secure_installation腳本,進行密碼設置、允許遠程連接等安全性設置。
sudo mysql_secure_installation
(1)第一步是進行密碼設置,問是否VALIDATE PASSWORD component?輸入y;密碼有三個等級low=0、medium=1、strong=2,直接選擇0即可;再輸入兩次相同的密碼(這個密碼是登錄mysql的密碼)。確認是否繼續使用提供的密碼?輸入y ,回車即可。
(2)第二步移除匿名用戶? 輸入y ,回車。
(3)第三步設置爲不允許root遠程登陸? 我們肯定需要遠程登錄,所以輸入n ,回車。
(4)移除test數據庫? 輸入y ,回車
(5)重新載入權限表? 輸入y ,回車
設置root用戶權限
5、從服務器登錄MySQL,將root用戶的host字段設爲’%’,使得用戶root可以從任意IP的機器上登錄(若root用戶的host字段爲localhost,則只能本機登錄)。
(1)輸入以下命令,從本機登錄MySQL:
mysql -uroot -p
(2)輸入密碼進入mysql中,結果如下圖
(3)輸入以下命令,選擇mysql數據庫:
use mysql;
(4)輸入以下命令,進行host字段(主機IP)賦值:
update user set host='%' where user='root';
(5)輸入以下命令,刷新系統權限
flush privileges;
(6)通過以下命令,驗證是否設置成功
use mysql;
select user,host from user;
若mysql數據庫的user表出現以下字段則設置成功
防火牆設置
6、輸入以下命令,檢查防火牆是否開啓:
systemctl status firewalld
若結果如下圖顯示dead,則是未開啓;
若結果如下圖顯示running,則是開啓
7、處於安全性考慮,若你的防火牆是關閉的,則推薦你開啓防火牆,通過以下命令開啓防火牆
systemctl start firewalld
8、輸入以下命令,查看防火牆允許哪些端口被訪問:
firewall-cmd --list-ports
9、若無3306這個被用作數據庫訪問的默認端口,則通過以下命令開啓系統防火牆的3306端口:
sudo firewall-cmd --add-port=3306/tcp --permanent
10、輸入以下命令重啓防火牆:
sudo firewall-cmd --reload
(若無意外防火牆部分設置到此就ok了,接下來就是服務器安全組設置)
安全組設置
11、進入控制檯查看該服務器的安全組設置,查看入方向是否開放3306端口,若無則開啓3306端口。
(至此MySQL的遠程連接設置已完成)
12、輸入以下命令重啓MySQL服務,然後就可以愉快的在自己電腦上進行遠程連接了。
sudo systemctl restart mysqld
若第一次連接速度很慢,則關閉MySQL主機查詢DNS
MySQL會反向解析遠程連接地址的DNS記錄,如果MySQL主機無法連接外網,則DNS可能無法解析成功,導致第一次連接MySQL速度很慢,所以在配置中可以關閉該功能。通過以下命令到/etc/my.cnf文件中關閉該功能。
(1)先輸入以下命令,到etc目錄下
cd /etc/
(2)通過vim命令進入編輯器中修改文件配置
vim my.cnf
(3)在文件中添加以下命令
[mysqld]
skip-name-resolve
bind-address=0.0.0.0 #此配置非必須,可以防止限定IP訪問MySQL服務
(4)保存退出即可
總結
CentOS服務器安裝很簡單,一條命令即可,但想要遠程訪問服務器上的MySQL,則需要配置多個地方,包括設置用戶root權限、防火牆端口設置、安全組端口設置等。