本文目錄一覽:
- 1、Mysql無法遠程連接,要如何解決
- 2、怎麼解決mysql遠程連接報10038的錯誤
- 3、怎麼解決mysql不允許遠程連接的錯誤
- 4、連接mysql資料庫失敗怎麼辦
- 5、MySQL Control Center遠程連接資料庫報錯10060
- 6、資料庫MySQL要遠程連接,出現這個錯誤是什麼原因?
Mysql無法遠程連接,要如何解決
原因是MySQL默認不支持遠程連接,(那麼phpMyAdmin為什麼可以連接呢?那是因為phpMyadmin的環境是上傳到伺服器的,其本身訪問資料庫是相當於本機localhost訪問的),如果想遠程訪問,可以使用下面的方法來解決。
遠程連接mysql資料庫時出現如下提示信息:「MYSQL CONNECT ERROR – 1130:Host 』202.43.**.**』 is not allowed to connect to this MySQL server」
在創建mysql賬戶時,限制連接賬戶遠程登錄。也就是說,除了當前mysql所在的安裝伺服器外,其他的ip(主機)都是不允許訪問的,即使你的用戶名和密碼是正確的。這時候就要修改用戶的訪問許可權。
首先是用root用戶登錄到mysql的安裝主機,然後進入mysql:
mysql -u root -p
root是mysql的最高授權用戶名,這時會提示你輸入密碼,正確輸入密碼後回車,進入mysql。回車
然後輸入如下命令:
grant all on 資料庫名.* to 『資料庫賬戶名』@』%』 identified by 『密碼』 with grant option;
回車
flush privileges;
回車
注意:上面的單引號不能省,資料庫名.* 表示要開放的資料庫下所有表,如果該連接的所有資料庫都要開放,可以用 *.* 代替。
『資料庫賬戶名』@』%』 這裡表示要開放的賬戶,百分號表示在任何主機都允許訪問。
如果以上兩步均顯示 「Query OK, 0 rows affected (0.00 sec)」,那麼說明命令已經成功執行,現在就可以遠程連接你的mysql資料庫了。
(1).如果想賦予所有操作的許可權
grant all on … to 用戶名……
(2).如果想賦予操作所有資料庫的所有表的許可權
grant … on *.* to 用戶名……
(3).如果想賦予某個資料庫的所有表
grant … on 資料庫名稱.’*’ to 用戶名…… ([ * ]兩邊一定要加單引號)
(4).如果想賦予某個資料庫的某張表
grant … on 資料庫名稱.表名 to 用戶名……
(5).如果想任何客戶端都能通過該用戶名遠程訪問
grant … on … to 用戶名@% ……. (要把IP地址改成[ % ])
(6).改完了以後一定要重新啟動MySQL服務
用戶會存到Mysql伺服器上的user表中,所以下面的兩種方法都可以解決這個問題:
1。 改表法。可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那台電腦,登入mysql後,更改 “mysql” 資料庫里的 “user” 表裡的 “host” 項,從”localhost”改稱”%”
mysql -u root -p
mysqluse mysql;
mysqlupdate user set host = 』%』 where user = 』root』;mysqlselect host, user from user;
mysqlflush privileges;
2. 授權法。例如,你想myuser使用mypassword從任何主機連接到mysql伺服器的話。
GRANT ALL PRIVILEGES ON *.* TO 』myuser』@』%』 IDENTIFIED BY 』mypassword』 WITH GRANT OPTION;
如果你想允許用戶myuser從ip為192.168.1.3的主機連接到mysql伺服器,並使用mypassword作為密碼
GRANT ALL PRIVILEGES ON *.* TO 』myuser』@』192.168.1.3』 IDENTIFIED BY 』mypassword』 WITH GRANT OPTION;
如果還是無法遠程我們可參考
1、Mysql的埠是否正確,通過netstat -ntlp查看埠佔用情況,一般情況下埠是3306。在用工具連接MySQl是要用到埠。例如My AdminMy Query BrowserMySQl Front等。
2、檢查用戶許可權是否正確。
例如:用戶Tester,user表裡有兩條記錄:host分別為localhost和%(為了安全,%可以換成你需要外部連接的IP)。
3、查看/etc/my.cnf中,skip-networking 是否已被注掉,需要注掉。
報錯:ERROR 2003 (HY000): Can’t connect to MySQL server on ‘192.168.51.112’ (111)
4、查看iptables是否停掉,沒關的情況下,無法連接。
通過:service iptables stop臨時關閉。
報錯:ERROR 2003 (HY000): Can’t connect to MySQL server on ‘192.168.51.112’ (113)
另外,我們還可以通過配置http通道來使Navicat遠程連接到資料庫,這樣做的好處是不需要前面繁雜的配置。在主機名IP地址那裡填寫LocalHost
用戶名與密碼一欄則填寫你所在的資料庫用戶名與密碼。
這時候還不能連接資料庫的,需要通過Http通道的形式進行資料庫連接。
點擊連接屬性標籤欄中的Http,如下圖所示:
勾選使用Http通道後,在通道地址一欄輸入你的網址與後台文件地址。
怎麼解決mysql遠程連接報10038的錯誤
1、首先確認網路配置沒有問題。
2、確認資料庫連接參數正確。
3、確保資料庫用戶擁有所有主機訪問許可權。在本地連接mysql執行如下命令:
GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;
上述語句意思是將root用戶賦予可以訪問任何主機的任何資料庫許可權,注意password為你設置的root用戶密碼。
怎麼解決mysql不允許遠程連接的錯誤
最近使用Navicat for MySQl訪問遠程mysql資料庫,出現報錯,顯示「1130 – Host’xxx.xxx.xxx.xxx’ is not allowed to connect to this MySQL server「。解決辦法如下:
方法/步驟
首先看報錯窗口。
經查閱,錯誤原因是:本地IP(xxx.xxx.xxx.xxx)沒有訪問遠程資料庫的許可權。
於是下面開啟本地IP(xxx.xxx.xxx.xxx)對遠程mysql資料庫的訪問許可權。
首先遠程連接進入伺服器,在cms中輸入mysql -u root -p,然後回車,輸入密碼後回車進入mysql命令行。
輸入use mysql;
輸入select user,password,host from user;
可以看到host中只有localhost主機。我們需要將xxx.xxx.xxx.xxx也添加到這裡才對。
添加方法如下:
輸入
grant all privileges on *.* to root@”xxx.xxx.xxx.xxx” identified by “密碼”;
這相當於是給IP-xxx.xxx.xxx.xxx賦予了所有的許可權,包括遠程訪問許可權。
然後再輸入
flush privileges;
這相當於是重新載入一下mysql許可權,這一步必須有。
再次輸入select user,password,host from user;
可以看到host中已經有了新加的IP。
現在再次用Navicat for MySQl訪問遠程mysql資料庫,已經能正常打開了。
問題解決。
不過還有一個問題,發現雙擊打開某張表的時候很慢,至少要3秒。
原因是:
當遠程訪問mysql時, mysql會解析域名, 所以會導致訪問速度很慢, 會有2,3秒延時!
解決辦法:
修改mysql安裝目錄下的my.ini,加上下面這個配置可解決此問題。在[mysqld]下加入:skip-name-resolve
保存退出後重啟mysql服務。
然後訪問速度就和本地一樣快啦。
連接mysql資料庫失敗怎麼辦
1 mysql 錯誤 ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’
解決辦法:關閉防火牆,linux下命令
[root@etl01 bin]# chkconfig –list | grep -i iptables ====check fire wall
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@etl01 bin]# /sbin/service iptables stop ====stop fire wall
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: nat filter [ OK ]
Unloading iptables modules: [ OK ]
2 報錯:1130-host … is not allowed to connect to this MySql server
解決辦法:
授權形式
比如賬戶為root,密碼為root
use mysql;
用root賬戶從任何主機上訪問mysql資料庫了
GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ IDENTIFIED BY ‘root’ WITH GRANT OPTION;
如果你想允許用戶zz從ip為192.168.1.3的主機連接到mysql伺服器,並使用123456作為密碼
GRANT ALL PRIVILEGES ON *.* TO ‘root’@’192.168.1.3’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;
MySQL Control Center遠程連接資料庫報錯10060
1,mysql版本問題
在mysql4。1之前
和mysql4.1之後
所用的密碼校驗方式方式不同
如果你用舊版本的mysql登錄新版的話
就有可能出現登錄不上的提示
這種提示內容通常是什麼校驗或者驗證錯誤的
解決辦法是請管理員給你改下密碼
改的時候使用
old_password
函數
或者你裝新版的mysql
不過如果你不想動你的phpmysql
還是採用上一種
2,給你的地址或者埠錯誤?或者你的防火牆擋住了mysql
假設給你的地址是1.2.3.4
埠是3306
你可以telnet
1.2.3.4
3306
看看連接能不能通
如果不通
關防火牆再試一次看通不通
資料庫MySQL要遠程連接,出現這個錯誤是什麼原因?
Mysql
遠程連接Mysql伺服器的資料庫,錯誤代碼是1130,ERROR 1130: Host xxx.xxx.xxx.xxx is not allowed to connect to this MySQL server
猜想是無法給遠程連接的用戶許可權問題。
這樣子操作mysql庫,即可解決。
在本機登入mysql後,更改 「mysql」 資料庫里的 「user」 表裡的 「host」 項,從」localhost」改稱’%’即可
mysql -u root -p
mysql;use mysql;
mysql;select ‘host’ from user where user=’root’;
mysql;update user set host = ‘%’ where user =’root’;
mysql;flush privileges;
mysql;select ‘host’ from user where user=’root’;
第一句:以許可權用戶root登錄
第二句:選擇mysql庫
第三句:查看mysql庫中的user表的host值(即可進行連接訪問的主機/IP名稱)
第四句:修改host值(以通配符%的內容增加主機/IP地址),當然也可以直接增加IP地址
第五句:刷新MySQL的系統許可權相關表
第六句:再重新查看user表時,有修改。。
重起mysql服務即可完成。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/280682.html