無法遠端訪問Mysql的解決方案

2021-09-08 23:57:39 字數 2343 閱讀 5941

在網上有很多關於這個的解決方案,我也採用了

寫的比較詳細的如:

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

code:mysql -u root -p123

mysql>use mysql;

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

mysql>select host, user from user;

2. 授權法。例如,你想kevin使用mypassword從任何主機連線到mysql伺服器的話。

code:grant all privileges on *.* to 'kevin'@'%' identified by 'mypassword' with grant option;

如果你想允許使用者kevin從ip為192.168.101.234的主機連線到mysql伺服器,並使用mypassword作為密碼

code:grant all privileges on *.* to 'kevin'@'192.168.101.234' identified by 'mypassword' with grant option;

3.如果按照上面這樣做還不行(一般好像在windows下那樣就可以了)那就修改下面這個配置檔案吧(我是在linux環境下 大家可以找到自己mysql安裝目錄下的相應配置檔案)

code:vi /etc/mysql/my.cnf

注釋掉code:#bind-address = 127.0.0.1

大功告成!!!

然後我採用的是第一種方法,然後在執行完最後一句話後出了個錯誤error 1062 (23000): duplicate entry '%-root' for key 'primary' 

於是又去找解決方案,發現先

mysql> select host from user where user = 'root'; 

+-----------------------+ 

| host | 

+-----------------------+ 

| % | 

| 127.0.0.1 | 

| localhost.localdomain | 

+-----------------------+ 

3 rows in set (0.00 sec) 

host已經有了%這個值,所以直接執行命令: 

mysql>flush privileges; 

果然還行的通,由於對mysql不是很深入的了解,通過php果然可以遠端訪問了,但是我忽略了一點

這裡將host = '%'後,是可以遠端訪問了,但是我們使用root不能訪問本地了

這是由於%的意思就是允許除本機外的所有都可以訪問

如果前面已經如上操作了,那麼你再在本地訪問的時候

#mysql -u root -p

輸入密碼後會提示

error 1045 (28000): access denied for user 'root'@'localhost' (using password: yes) 

這就很鬱悶,本機已經無法登陸了,這時我們需要安全模式進入(個人理解為安全模式)

首先,將mysql服務停止

#/etc/init.d/mysql stop   或者  #sudo service mysqld stop

然後再執行

# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

記住  後面那個  &是需要的

等出現一些提示後  應該是在starting...之後

直接輸入  mysql 即可進入資料庫了  (這裡其實也可以是忘記密碼後進行修改密碼的方法)

進入後,修改密碼的語句為:

mysql> use mysql;   

進入資料庫修改密碼

mysql> update user set password = password('你的新密碼') where user='root'

如果是要解決上面修改了host的方法就是執行

mysql> update user set host='localhost' where user='root' and host='%'

將host改回來

但是改回來豈不是又無法遠端訪問了?

其實我們可以新增乙個使用者,把必要的許可權授予於這個使用者,且將這個使用者的host設為%

過程**現的錯誤要仔細檢視,要注意防火牆的狀態,可能影響資料庫的遠端連線。

mysql無法遠端訪問解決

mysql資料庫不允許從遠端訪問怎麼辦?本文提供了三種解決方法 1 改表法。可能是你的帳號不允許從遠端登陸,只能在localhost。這個時候只要在localhost的那台電腦,登入mysql後,更改 mysql 資料庫裡的 user 表裡的 host 項,從 localhost 改稱 mysql ...

解決MySQL無法遠端訪問的3方案

收藏 分享在解決mysql無法遠端訪問的實際操作中我們經常會選擇的方案,除了改表法與授權法,在安裝mysql的機器上執行這一方法也是比較好用的方案,以下就是文章對解決mysql無法遠端訪問的一些解決方案的描述。mysql無法遠端訪問方法1 改表法。可能是你的帳號不允許從遠端登陸,只能在localho...

解決MySQL無法遠端訪問的方法

關閉 開啟red hat防火牆 關閉防火牆 service iptables stop 開啟防火牆 service iptables start 預設關閉防火牆 chkconfig iptables off 授權法。例如,你想myuser使用mypassword從任何主機連線到mysql伺服器的話。...