當前位置:首頁 » 密碼管理 » mysql遠程訪問不了

mysql遠程訪問不了

發布時間: 2022-12-11 12:30:45

A. 伺服器的Mysql不能遠程訪問

添加配置:
確定使用的mysql版本,如果為5.0以上的版本需要在mysql的配置文件 (windows下my.ini,linux下my.cnf)中添加如下代碼:
[mysqld]
skip-name-resolve
注意配置完成後重啟mysql服務,5.0一下的就不需要添加了。
分配許可權:
這里我們建議單獨創建一個用戶,不要使用root用戶,這個用戶最好是指定需要連接的計算機。
代碼如下:
MySQL> use MySQL;
Database changed
MySQL> grant all privileges on *.* to 『yourUser』@'%' identified by 『yourPassword』;
Query OK, 0 rows affected (0.00 sec)
*.*標示所有資料庫下的所有表,』*』.*標示資料庫*下的所有表
MySQL> grant all on *.* to 『yourUser』@'%' identified by 『yourPassword』;
Query OK, 0 rows affected (0.00 sec)
%號出可以填寫允許訪問的IP地址或者主機名,%標示所有的IP
Flush privileges;
Query OK, 0 rows affected (0.00 sec)
Mysql> exit;
Bye
啟動連接:
C:\Program Files\MySQL\bin> mysql –h 需要遠程連接的IP或者是主機名 –u 分配的遠程連接賬戶 –p
Enter password:密碼

B. 無法連接遠程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>

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

mysql>select host,
user from user;

二、授權法

例如:
你想myuser使用mypassword(密碼)從任何主機連接到mysql伺服器的話。

mysql>GRANT ALL
PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

如果你想允許用戶myuser從ip為192.168.1.6的主機連接到mysql伺服器,並使用mypassword作為密碼

mysql>GRANT ALL
PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY

'mypassword' WITH GRANT OPTION;

mysql>FLUSH
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>

C. 怎麼解決mysql不允許遠程連接的錯誤

如果mysql不支持遠程連接,會出現提示:錯誤代碼是1130,ERROR 1130: Host * is not allowed to connect to this MySQL server

解決方案:

將需要被訪問的mysql伺服器的localhost值改成%,進入mysql的BIN目錄

運行代碼如下:

--打開mysql資料庫服務
mysql-uroot-p

--打開mysql資料庫文件
mysql>usemysql;

--將mysql資料庫中user表中user欄位下的root用戶的host值改為通配符%(默認是localhost)
mysql>UPDATEuserSEThost='%'WHEREuser='root';

--修改之後再刷新一下許可權
mysql>flushprivileges;


具體分析

1、在本機登入mysql後,更改「mysql」資料庫里的「user」表裡的「host」項,從」localhost」改為'%'。

代碼如下:

mysql>
mysql>usemysql;
mysql>select'host'fromuserwhereuser='root';

#查看mysql庫中的user表的host值(即可進行連接訪問的主機/IP名稱)


代碼如下:

mysql>updateusersethost='%'whereuser='root';

#修改host值(以通配符%的內容增加主機/IP地址,當然也可以直接增加某個特定IP地址,如果執行update語句時出現ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY' 錯誤,需要select host from user where user = 'root';

查看一下host是否已經有了%這個值,如果有了直接執行下面的flush privileges;即可)


代碼如下:

mysql>flushprivileges;
mysql>selecthost,userfromuserwhereuser='root';
mysql>quit

D. mysql遠程連接無法訪問表

改表法。
請使用mysql管理工具,如:SQLyog Enterprise
可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那台電腦使用mysql管理工具登入mysql後,更改 "mysql" 資料庫里的 "user" 表裡的 "host" 項,從"localhost"改稱"%"

E. MySQL資料庫不允許從遠程訪問怎麼辦

本文提供了三種解決方法:
1、改表法。可能匙你d帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhostd那台電腦,登入mysql後,更改
"mysql"
資料庫里d
"user"
表裡d
"host"
項,從"localhost"改稱"%"
mysql
-u
root
-pvmwaremysql>use
mysql;
mysql>update
user
set
host
=
'%'
where
user
=
'root';
mysql>select
host,
user
from
user;
2、授權法。
GRANT
ALL
PRIVILEGES
ON
*.*
TO
'myuser'@'%'IDENTIFIED
BY
'mypassword'
WI
TH
GRANT
OPTION;
如果你想允許用戶myuser從ip為192.168.1.6d主機連接到mysql伺服器,並使用mypassword作為密碼
GRANT
ALL
PRIVILEGES
ON
*.*
TO
'myuser'@'192.168.1.3'IDENTIFIED
BY
'mypassword'
WITH
GRANT
OPTION;
我用d第一個方法,剛開始發現不行,在網上查了一下,少執行一個語句
mysql>FLUSH
RIVILEGES
使修改生效,就可以了
另外一種方法:
在安裝mysqld機器上運行:
1、d:/mysql/bin/>mysql
-h
localhost
-u
root
//這樣應該可以進入MySQL伺服器
2、mysql>GRANT
ALL
PRIVILEGES
ON
*.*
TO
'root'@'%'WITH
GRANT
OPTION
//賦予任何主機訪問數據d許可權
3、mysql>FLUSH
PRIVILEGES
//修改生效
4、mysql>EXIT
//退出MySQL伺服器
這樣就可以在其它任何d主機上以root身份登錄啦。

F. windows遠程連接MySQL失敗

MySQL我用的是apt安裝的,有很多問題,建議大家用二進製程序安裝。

問題描述
在伺服器上登錄MySQL只能用本地的127.0.0.1地址,用伺服器本身地址會提示拒絕訪問

嘗試修改MySQL遠程訪問許可權

修改後發現沒有用,MySQL依然拒絕遠程訪問
查看3306埠
root@sfpql:~# netstat -an|grep 3306

修改MySQL服務地址:

嘗試遠程連接
telnet sfpql 3306

結語
MySQL遠程連接不上是常見問題,一般設置好MySQL的遠程訪問許可權就可以了。
apt安裝的MySQL會自己將啟動地址設置在本地,同時apt安裝的MySQL的服務查看命令是 systemctl status mysql 其他安裝方式的常看命令是 systemctl status mysqld

G. 解決MySQL不允許從遠程訪問的方法有哪些

解決方法:

1。 改表法。

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

mysql -u root -pvmwaremysql>use mysql;

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

mysql>select host, user from user;

2. 授權法。

例如,你想myuser使用mypassword從任何主機連接到mysql伺服器的話。

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

FLUSH PRIVILEGES;

如果你想允許用戶myuser從ip為192.168.1.6的主機連接到mysql伺服器,並使用mypassword作為密碼

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

FLUSH PRIVILEGES;

如果你想允許用戶myuser從ip為192.168.1.6的主機連接到mysql伺服器的dk資料庫,並使用mypassword作為密碼

GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

FLUSH PRIVILEGES;

我用的第一個方法,剛開始發現不行,在網上查了一下,少執行一個語句 mysql>FLUSH RIVILEGES 使修改生效.就可以了

另外一種方法,不過我沒有親自試過的,在csdn.net上找的,可以看一下.

在安裝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伺服器

這樣就可以在其它任何的主機上以root身份登錄啦!

H. MySQL8遠程連接不上的原因

執行 ./bin/mysqld --defaults-file=xxx --initialize-insecure 初始化data目錄

./bin/mysqld_safe --defaults-file=/home/xxx/mysql/my.cnf &

運行後netstat -anlp | grep mysql 發現mysqld進程使用的是unix domain socket,沒使用tcp/tcp6,沒監聽埠,看配置文件裡面有一行 --skip-grant-tables,看官方文檔,如果開啟了--skip-grant-tables默認啟用--skip-networking,這樣就不允許遠程連接了,因為--skip-grant-tables不安全。
https://www.oreilly.com/library/view/mysql-8-cookbook/9781788395809/6ea03335-6ff2-4d4f-a008-48c8cf88fd01.xhtml#:~:text=In%20this%20method%2C%20you%20stop,to%20connect%20to%20the%20server .

./bin/mysqladmin shutdown

I. 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

mysql>use mysql;

mysql>update user set host = 』%』 where user = 』root』;mysql>select host, user from user;

mysql>flush 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通道後,在通道地址一欄輸入你的網址與後台文件地址。

J. mysql連接不上遠程伺服器,如何解決

遠程伺服器連接MySQL,需要創建一個允許遠程訪問的用戶。
創建用戶:
CREATE USER'username'@'host' IDENTIFIED BY 'password';
其中username 是用戶名,host是可以進行遠程訪問資料庫的伺服器地址
給用戶授權:
GRANT privileges ONdatabasename.tablename TO 'username'@'host';
給'username'@'host'用戶進行授權,其中privileges是要授予的許可權,可以是all privileges、select、update等。databasename.tablename是要訪問的某個資料庫中的某張表,如果是所有的,則可以用*。

熱點內容
php辦公系統 發布:2025-07-19 03:06:35 瀏覽:895
奧德賽買什麼配置出去改裝 發布:2025-07-19 02:53:18 瀏覽:37
請與網路管理員聯系請求訪問許可權 發布:2025-07-19 02:37:34 瀏覽:185
ipad上b站緩存視頻怎麼下載 發布:2025-07-19 02:32:17 瀏覽:839
phpcgi與phpfpm 發布:2025-07-19 02:05:19 瀏覽:523
捷達方向機安全登錄密碼是多少 發布:2025-07-19 00:57:37 瀏覽:689
夜魔迅雷下載ftp 發布:2025-07-19 00:39:29 瀏覽:97
增值稅票安全接入伺服器地址 發布:2025-07-19 00:20:45 瀏覽:484
solidworkspcb伺服器地址 發布:2025-07-18 22:50:35 瀏覽:820
怎麼在堆疊交換機里配置vlan 發布:2025-07-18 22:42:35 瀏覽:628