1、環境準備
本地:Windows 10 服務器:Centos 7.6(華為雲)
2、下載yum repo源:https://dev.mysql.com/downloads/repo/yum/
3、下載到本地後,使用xftp工具上傳至服務器中,這裡我上傳到了/opt目錄
4、安裝源
rpm -ivh /opt/mysql80-community-release-el7-3.noarch.rpm
5、安裝 MySQL 服務
yum -y install mysql-community-server
6、登入MySQL
因為我使用的是華為雲,裡面初始化時已經創建了mysql用戶以及用戶組,若沒有該用戶,可以單獨創建該用戶和用戶組,作為數據庫的專用用戶,並將mysql的目錄文件擁有者更改為其。
第一次登錄需要查詢mysql默認生成的密碼:grep "password" /var/log/mysqld.log
登入:mysql -u root -p
若mysql 服務沒有啟動,則將其啟動:systemctl start mysqld
第一次登錄後請務必更改默認密碼,且密碼需符合包含數字大小寫字母以及特殊字符的要求。
7、開放3306端口並啟用遠程訪問
a.開放3306端口:firewall-cmd --zone=public --add-port=3306/tcp --permanent,重啟防火牆:firewall-cmd --reload
b.允許遠程訪問(進入mysql中):grant all privileges on *.* to root@'%' identified by '數據庫密碼';
flush privileges;//這一步的%號指訪問的ip,若要限定訪問ip,在此輸入即可。
8、解決遇到的問題【Network refused】
a.當MySQL安裝好後,在windows使用navicat premium創建連接,但報錯"Network refused"。
b.有解決方案說:在配置文件中,將bind-address註釋即可。可我這個文件不存在該參數:
手動將該參數添加上去後,導致MySQL服務啟動不了(這時候估計是搞錯了地方)。
c.從數據庫(是否設定了允許遠程訪問)、防火牆(是否開放了3306端口)、端口(是否正常監聽)、安全組策略(是否允許放行)一一排查,使用telnet檢查端口是否正常可以訪問,一切都沒有問題。那問題確實是在配置文件上了。
d.後來發現在本地使用命令行的方式卻可以訪問到服務器數據庫,這讓我感覺被Navicat坑了
經過查閱相關論壇資料,MySQL默認不監聽來自ipv6的消息(emmmmmmm...),好吧,只能進入服務器修改配置文件了(沒錯,又是bind-address)
一切搞定:systemctl restart mysqld 重啟服務
閱讀更多 稍稍有點冷 的文章