本文目錄一覽:
mysql-front 無法遠程連接mysql資料庫
不允許遠程連接這個資料庫,你看下mysql埠是否打開,另外查看一下mysql是否允許遠程連接
幾個解決方案,自己看下
1.修改改mysql配置文件(/etc/mysql/my.cnf),注釋以下行:
#bind-address
=
127.0.0.1
2.重啟mysql資料庫,對於ubuntu系統,執行如下命令
sudo
/etc/init.d/mysql
restart
3.以root用戶登錄mysql後,執行如下命令:
grant
all
privileges
on
*.*
to
root@』允許登錄的遠程機器ip』
identified
by
『密碼』
或者
grant
all
privileges
on
*.*
to
‘myuser’@’%’
identified
by
‘mypassword’
with
grant
option;
如果你想允許用戶myuser從ip為168.160.12.50的主機連接到mysql伺服器,並使用mypassword作為密碼
grant
all
privileges
on
*.*
to
‘myuser’@’168.160.12.50’
identified
by
‘mypassword’
with
grant
option;
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資料庫哪,如何解決
一、連接遠程資料庫:
1、顯示密碼
如:MySQL
連接遠程資料庫(192.168.5.116),埠「3306」,用戶名為「root」,密碼「123456」
C:/mysql -h
192.168.5.116 -P 3306 -u root -p123456
2、隱藏密碼
如:MySQL 連接本地資料庫,用戶名為「root」,
C:/mysql -h
localhost -u root -p
Enter password:
二、配置mysql允許遠程鏈接
默認情況下,mysql帳號不允許從遠程登陸,只能在localhost登錄。本文提供了二種方法設置mysql可以通過遠程主機進行連接。
一、改表法
在localhost登入mysql後,更改 “mysql” 資料庫里的 “user” 表裡的 “host”
項,將”localhost”改稱”%”
例如:
#mysql -u root
-p
Enter password:
……
mysql
mysqlupdate user
set host = ‘%’ where user = ‘root’;
mysqlselect host,
user from user;
二、授權法
例如:
你想myuser使用mypassword(密碼)從任何主機連接到mysql伺服器的話。
mysqlGRANT ALL
PRIVILEGES ON *.* TO ‘myuser’@’%’IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;
如果你想允許用戶myuser從ip為192.168.1.6的主機連接到mysql伺服器,並使用mypassword作為密碼
mysqlGRANT ALL
PRIVILEGES ON *.* TO ‘myuser’@’192.168.1.3’IDENTIFIED BY
‘mypassword’ WITH GRANT OPTION;
mysqlFLUSH
PRIVILEGES
使修改生效,就可以了
常見問題:
1、在採用法二授權法之後,無法在本地登錄mysql(如:#mysql -u root -p -h
192.168.5.116
Enter password:
ERROR 1045 (28000): Access denied for user
‘root’@’loadb116’ (using password: YES)
上例中loadb116是主機名.
解決方法:
1、這時可以使用:mysql -u
root -p 登錄,進入到mysql後。
mysql grant all privileges on *.* to ‘root’@’loadb116’
identified by ‘123456’ with grant option;
Query OK, 0 rows affected
(0.00 sec)
mysql flush
privileges;
Query OK, 0 rows affected (0.00
sec)
2、在本地使用ip地址登錄
#
mysql -u root -p -h
192.168.5.116
Enter password:
Welcome to the MySQL
monitor. Commands end with ; or /g.
Your MySQL connection id is 60
Server
version: 5.1.45 MySQL Community Server (GPL)
Type ‘help;’ or ‘/h’ for
help. Type ‘/c’ to clear the buffer.
mysql
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/306994.html