03.05 Centos 7上安裝MySQL 8.0「Network refused」錯誤解決

1、環境準備

本地:Windows 10 服務器:Centos 7.6(華為雲)


2、下載yum repo源:https://dev.mysql.com/downloads/repo/yum/

Centos 7上安裝MySQL 8.0「Network refused」錯誤解決

下載repo,根據自身環境下載相應的項即可

3、下載到本地後,使用xftp工具上傳至服務器中,這裡我上傳到了/opt目錄

Centos 7上安裝MySQL 8.0「Network refused」錯誤解決

上傳源至服務器中

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註釋即可。可我這個文件不存在該參數:


Centos 7上安裝MySQL 8.0「Network refused」錯誤解決

my.cnf配置文件

手動將該參數添加上去後,導致MySQL服務啟動不了(這時候估計是搞錯了地方)。

c.從數據庫(是否設定了允許遠程訪問)、防火牆(是否開放了3306端口)、端口(是否正常監聽)、安全組策略(是否允許放行)一一排查,使用telnet檢查端口是否正常可以訪問,一切都沒有問題。那問題確實是在配置文件上了。

d.後來發現在本地使用命令行的方式卻可以訪問到服務器數據庫,這讓我感覺被Navicat坑了


Centos 7上安裝MySQL 8.0「Network refused」錯誤解決

使用命令行成功訪問

經過查閱相關論壇資料,MySQL默認不監聽來自ipv6的消息(emmmmmmm...),好吧,只能進入服務器修改配置文件了(沒錯,又是bind-address)


Centos 7上安裝MySQL 8.0「Network refused」錯誤解決

修改配置文件,使mysql監聽ipv6消息

一切搞定:systemctl restart mysqld 重啟服務


Centos 7上安裝MySQL 8.0「Network refused」錯誤解決

連接成功


分享到:


相關文章: