第一:更改 “mysql” 數(shù)據(jù)庫里的 “user” 表里的 “host” 項,從”localhost”改稱'%'。 \x0d\x0a或者新加條記錄,“host” 項為要訪問的ip地址,并授權(quán)。重啟mysql服務(wù)。 \x0d\x0a第二:在系統(tǒng)防火墻添加例外端口:3306,并允許例外。 \x0d\x0a\x0d\x0a錯誤提示: \x0d\x0aERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL server \x0d\x0a的解決方法: \x0d\x0a1。改表法。可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql后,更改 "mysql" 數(shù)據(jù)庫里的 "user" 表里的 "host" 項,從"localhost"改稱"%" \x0d\x0a1.mysql -u root -pvmware\x0d\x0amysqluse mysql;\x0d\x0amysqlupdate user set host = '%' where user = 'root';\x0d\x0amysqlselect host, user from user; \x0d\x0a\x0d\x0a2. 授權(quán)法。例如,你想myuser使用mypassword從任何主機連接到mysql服務(wù)器的話。 \x0d\x0a\x0d\x0aGRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; \x0d\x0a如果你想允許用戶myuser從ip為192.168.1.3的主機連接到mysql服務(wù)器,并使用mypassword作為密碼 \x0d\x0aGRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; \x0d\x0a\x0d\x0a3.在window自帶的防火墻里的例外添加3306端口 \x0d\x0a\x0d\x0a總結(jié): \x0d\x0amysql -u root -p \x0d\x0amysqluse mysql; \x0d\x0amysqlselect 'host' from user where user='root'; \x0d\x0amysqlupdate user set host = '%' where user ='root'; \x0d\x0amysqlflush privileges; \x0d\x0amysqlselect 'host' from user where user='root'; \x0d\x0a第一句是以權(quán)限用戶root登錄 \x0d\x0a第二句:選擇mysql庫 \x0d\x0a第三句:查看mysql庫中的user表的host值(即可進行連接訪問的主機/IP名稱) \x0d\x0a第四句:修改host值(以通配符%的內(nèi)容增加主機/IP地址),當然也可以直接增加IP地址 \x0d\x0a第五句:刷新MySQL的系統(tǒng)權(quán)限相關(guān)表 \x0d\x0a第六句:再重新查看user表時,有修改。。 \x0d\x0a重起mysql服務(wù)即可完成。
為津南等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及津南網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為做網(wǎng)站、成都做網(wǎng)站、津南網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
mysql(mariadb)通過遠程訪問,需要在數(shù)據(jù)庫中配置用來遠程訪問的賬號、密碼、IP地址
通過命令:
其中:
remoteuser是用來遠程訪問的用戶名,你可以自己定義,也建議自己定義而不要用默認的root。
123.123.123.%是你客戶端的IP地址段,也可以直接給定具體的IP地址,看你的需求。我這里是家庭寬帶,有可能每次上網(wǎng)IP不同,但基本上都在一個段內(nèi),所以我這里采用IP地址段。
password替換成你的密碼。
flush privileges;用來刷新數(shù)據(jù)庫。
這樣,在遠程的客戶端,在訪問工具里配置好遠程的信息,就可以訪問遠程數(shù)據(jù)庫服務(wù)器了。
比如用Navicat:
賬號:remoteuser
密碼:password
ip:服務(wù)器的IP
端口:3306
以上是在數(shù)據(jù)庫層面打開遠程訪問,如果在服務(wù)器層面有對端口的限制,也需要打開相應(yīng)的設(shè)置。
原文鏈接:
一、連接遠程數(shù)據(jù)庫:
1、顯示密碼
如:MySQL 連接遠程數(shù)據(jù)庫(192.168.5.116),端口“3306”,用戶名為“root”,密碼“123456”
C:/mysql -h 192.168.5.116 -P 3306 -u root -p123456
2、隱藏密碼
如:MySQL 連接本地數(shù)據(jù)庫,用戶名為“root”,
C:/mysql -h localhost -u root -p
Enter password:
二、配置mysql允許遠程鏈接
默認情況下,mysql帳號不允許從遠程登陸,只能在localhost登錄。本文提供了二種方法設(shè)置mysql可以通過遠程主機進行連接。
一、改表法
在localhost登入mysql后,更改 "mysql" 數(shù)據(jù)庫里的 "user" 表里的 "host" 項,將"localhost"改稱"%"
例如:
#mysql -u root -p
Enter password:
……
mysql
mysqlupdate user set host = '%' where user = 'root';
mysqlselect host, user from user;
二、授權(quán)法
例如: 你想myuser使用mypassword(密碼)從任何主機連接到mysql服務(wù)器的話。
mysqlGRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允許用戶myuser從ip為192.168.1.6的主機連接到mysql服務(wù)器,并使用mypassword作為密碼
mysqlGRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY
'mypassword' WITH GRANT OPTION;
mysqlFLUSH PRIVILEGES
使修改生效,就可以了
常見問題:
1、在采用法二授權(quán)法之后,無法在本地登錄mysql(如:#mysql -u root -p -h 192.168.5.116
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'loadb116' (using password: YES)
上例中l(wèi)oadb116是主機名.
解決方法:
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
Mysql默認是不可以通過遠程機器訪問的,通過下面的配置可以開啟遠程訪問
在MySQL Server端:
執(zhí)行mysql 命令進入mysql 命令模式,
Sql代碼
mysql use mysql;
mysql GRANT ALL ON *.* TO admin@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION;
#這句話的意思 ,允許任何IP地址(上面的 % 就是這個意思)的電腦 用admin帳戶 和密碼(admin)來訪問這個MySQL Server
#必須加類似這樣的帳戶,才可以遠程登陸。 root帳戶是無法遠程登陸的,只可以本地登陸
mysql use mysql;
mysql GRANT ALL ON *.* TO admin@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION;
#這句話的意思 ,允許任何IP地址(上面的 % 就是這個意思)的電腦 用admin帳戶 和密碼(admin)來訪問這個MySQL Server
#必須加類似這樣的帳戶,才可以遠程登陸。 root帳戶是無法遠程登陸的,只可以本地登陸
那么如何遠程訪問呢?
在另一臺MySQL 客戶端(裝有mysql程序包的pc ,windows或者是linux均可)
執(zhí)行命令:
Sql代碼
mysql -h172.21.5.29 -uadmin -padmin 即可了
//172.21.5.29就是MySQL Server的IP地址,admin admin就是剛才在 172.21.5.29上設(shè)置的遠程訪問帳戶
mysql -h172.21.5.29 -uadmin -padmin 即可了
//172.21.5.29就是MySQL Server的IP地址,admin admin就是剛才在 172.21.5.29上設(shè)置的遠程訪問帳戶
引用
mysql use mysql;
mysql GRANT ALL ON *.* TO admin@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION;
#這句話的意思 ,允許任何IP地址(上面的 % 就是這個意思)的電腦 用admin帳戶 和密碼(admin)來訪問這個MySQL Server
#必須加類似這樣的帳戶,才可以遠程登陸。 root帳戶是無法遠程登陸的,只可以本地登陸
我發(fā)現(xiàn)一個問題, 如果上面的命令你執(zhí)行完畢, 你在 本地就是localhost , 執(zhí)行 :
Sql代碼
mysql -hlocalhost -uadmin -padmin
mysql -hlocalhost -uadmin -padmin
結(jié)果是失敗的。
原來 上面的 % 竟然不包括localhost
所以你還必須加上這樣的 命令
mysqlGRANT ALL ON *.* TO admin@'localhost' IDENTIFIED BY 'admin' WITH GRANT OPTION;