CentOS6 5下MySQL無法遠端連線的問題

2021-07-24 08:59:54 字數 4661 閱讀 7447

我在centos6.5上部署openstack的時候,無法用mysql gui tool連線到mysql資料庫,為了解決這個問題,方法如下:

(1)先將mysql服務停掉

# /etc/init.d/mysqld stop

(2)檢視mysql配置檔案

# vi /etc/my.cnf

特別要留意其中的兩項:bind_address和skip_networking,bind_address一定不能為127.0.0.1,否則只能在本地連線,skip_networking一定不能出現,否則只接受unix socket而不能提供tcp socket服務,建議將bind_address和skip_networking直接都注釋掉。

(3)重啟mysql服務

# /etc/init.d/mysqld start

(4)對使用者授權,允許指定使用者遠端訪問,最簡單的方式是將mysql庫中user表中的對應的使用者的host設定為%,亦即允許該使用者從任意ip遠端訪問

# mysql -u root -ppassword    //進入mysql控制台

# mysql>use mysql;

# mysql>update user set host = '%' where user = 'root';    //這個命令執行錯誤時可略過

# mysql>flush privileges;

# mysql>select host, user from user; //檢查『%』 是否插入到資料庫中

#mysql>quit

(5)一般情況下此時就能滿足遠端訪問的要求,但對於某些系統還需要檢查防火牆設定,和ip訪問策略,以防系統對網路訪問的限制造成無法遠端訪問mysql

對於centos系統而言,最好檢測iptables設定。具體步驟如下

5.1 暫停iptables服務

# service iptables stop

5.2 檢視iptables配置檔案

# vi /etc/sysconfig/iptables

5.3  也許會看到如下內容

# firewall configuration written by system-config-firewall

# manual customization of this file is not recommended.

*filter

:input accept [0:0]

:forward accept [0:0]

:output accept [0:0]

-a input -m state --state established,related -j accept

-a input -p tcp -m tcp --dport 3306 -j accept

-a input -p icmp -j accept

-a input -i lo -j accept

-a input -m state --state new -m tcp -p tcp --dport 22 -j accept

-a input -j reject --reject-with icmp-host-prohibited

-a forward -j reject --reject-with icmp-host-prohibited

commit

~5.4 重啟iptables服務

# service iptables start

-----------------------------許可權管理-----------------------------------

阿里雲伺服器linux環境下設定mysql支援遠端連線資料庫

分享有兩種方法: 

一是:改表法(這個方法我沒有試) 

因為在linux環境下,預設是關閉3306埠遠端連線的,需要開啟,這個後面說! 

可能是你的帳號不允許從遠端登陸,只能在localhost。這個時候只要在localhost的那台電腦,登入mysql後,更改 「mysql」 資料庫 裡的 「user」(遠端資料庫的名稱) 表裡的 「host」 項,從」localhost」改稱」%」

mysql -u root -pvmwaremy

sql>use mysql;

mysql>update user set host = '%' where user = 'root';

mysql>select host, user from user;

二是:授權法 

例如,你想myuser(遠端連線的使用者名稱)使用mypassword(遠端連線的密碼)從任何主機連線到mysql伺服器的話。

grant all privileges on *.* to 』myuser』@』%』identified by 』mypassword』 wi th grant option;
如果你想允許使用者myuser(遠端連線的使用者名稱)從ip為192.168.1.6(你測試電腦上的ip)的主機連線到mysql伺服器,並使用 mypassword(遠端連線的密碼)作為密碼

grant all privileges on *.* to 』myuser』@』192.168.1.6』identified by 』mypassword』 with grant option;
開始用的第乙個方法,剛開始發現不行,在網上查了一下,少執行乙個語句 mysql>flush rivileges使修改生效,就可以了。 

方法是在安裝mysql的機器上執行:

1、d:\mysql\bin\>mysql -h localhost -u root   //這樣應該可以進入mysql伺服器   

2、mysql>grant all privileges on *.* to 'root』@ '%』with grant option

//賦予任何主機訪問資料的許可權

3、mysql>flush privileges //修改生效

4、mysql>exit //退出mysql伺服器

這個時候還沒結束呢,一般的伺服器上安裝的都有防火牆之類的東西,也需要我們開啟3306埠才能用了 

在linux下要開啟防火牆 開啟3306 埠,編輯這個檔案

vim /etc/sysconfig/iptables
輸入

-a rh-firewall-1-input -m state --state new -m tcp -p tcp --dport 3306 -j accept
儲存後在控制台輸入 /etc/rc.d/init.d/iptables restart 重啟防火牆,記得一定要重啟哦,我就是因為沒有重啟防火牆導致一直連線不上,最後終於找到答案了

快速讓mysql資料庫伺服器支援遠端連線

在centos上安裝mysql資料庫伺服器後,系統出於安全性考慮,預設不支援使用者通過非本機連線上資料庫伺服器,如果想讓使用者通過另外一台機器連線上資料庫伺服器必須手動進行修改:

1、在控制台執行 mysql -u root -p mysql,系統提示輸入資料庫root使用者的密碼,輸入完成後即進入mysql控制台,這個命令的第乙個mysql是執行命令,第二個mysql是系統資料名稱,不一樣的。

2、在mysql控制台執行

grant all privileges on *.* to 'root'@'%' identified by 'mypassword' with grant option;
3、 在mysql控制台執行命令中的 『root』@』%』 可以這樣理解: root是使用者名稱,%是主機名或ip位址,這裡的%代表任意主機或ip位址,你也可替換成任意其它使用者名稱或指定唯一的ip位址;』mypassword』 是給授權使用者指定的登入資料庫的密碼;另外需要說明一點的是我這裡的都是授權所有許可權,可以指定部分許可權

4、不放心的話可以在mysql控制台執行 select host, user from user; 檢查一下使用者表裡的內容

開啟mysql遠端訪問許可權

1.以 root 帳戶登陸 mysql

mysql -u root -p 123456 

注:123456 為 root 使用者的密碼。

2.建立遠端登陸使用者並授權

grant all privileges on discuz.* to ted@'123.123.123.123' identified by '123456';
注:上面的語句表示將 discuz 資料庫的所有許可權授權給 ted 這個使用者,允許 ted 使用者在 123.123.123.123 這個 ip 進行遠端登陸,並設定 ted 使用者的密碼為 123456 。

改表法可能是你的帳號不允許從遠端登陸,只能在localhost。這個時候只要在localhost的那台電腦,登入mysql後,更改 「mysql」 資料庫裡的 「user」 表裡的 「host」 項,從」localhost」改稱」%」

mysql -u root -p 

mysql>use mysql;

mysql>update user set host = '%' where user = 'root';

mysql>select host, user from user;

**:

Centos6 5 下安裝 Mysql步驟

1.需要檢測系統是否自帶安裝mysql yum list installed grep mysql2.如果發現有系統自帶mysql,果斷這麼幹 yum y remove mysql libs x86 64 此步不行直接下一步 wget com mysql community release el6 ...

CentOS6 5下MySQL無法遠端連線的問題

我在centos6.5上部署openstack的時候,無法用mysql gui tool連線到mysql資料庫,為了解決這個問題,方法如下 1 先將mysql服務停掉 etc init.d mysqld stop 2 檢視mysql配置檔案 vi etc my.cnf 特別要留意其中的兩項 bind...

CentOS6 5下MySQL無法遠端連線的問題

我在centos6.5上部署openstack的時候,無法用mysql gui tool連線到mysql資料庫,為了解決這個問題,方法如下 1 先將mysql服務停掉 etc init.d mysqld stop 2 檢視mysql配置檔案 vi etc my.cnf 特別要留意其中的兩項 bind...