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

mysql遠程無法訪問

發布時間: 2022-08-06 14:45:30

A. mysql無法遠程連接,本地可以

查看MySQL進程是否正常,可以阿里雲伺服器 ECS 伺服器上輸入:ps -ef|grep mysqld

mysqld_safe和mysqld都在,說明MySQL進程是正常,若沒有這兩進程,執行/etc/init.d/mysqld start,啟動msyql。
MySQL在本地能連接上,遠程連接不上的解決辦法

查看mysql監聽IP和埠是否正常。

使用:netstat -anpt

監聽得地址如果是:::3306或者是0.0.0.0:3306,表示監聽所有IP地址,這監聽狀態是正常。若出現127.0.0.0:3306,說明監聽的本地地址,需要在mysql配置文件中將bind-address選項設置為bind-address = 0.0.0.0,重啟mysql。
MySQL在本地能連接上,遠程連接不上的解決辦法

查看用於遠程訪問的mysql用戶許可權是否正確。

在本地登入mysql伺服器,

use mysql;

SELECT user, host from mysql.user; 查看用於遠程訪問的mysql用戶host的許可權,%表示允許所有機器訪問。若host為127.0.0.1/localhost,那麼這個用戶就只能本機訪問,則需要將host改為%,可以使用update user set host='%' where user='root';
MySQL在本地能連接上,遠程連接不上的解決辦法
MySQL在本地能連接上,遠程連接不上的解決辦法

若以上操作都正常,還是遠程還是不能訪問的話,可以使用tcpmp在伺服器端抓一下3306埠,看是否有數據包,排查以下網路原因。

在服務上輸入抓包命令:tcpmp port 3306

然後遠程連接mysql資料庫,看一下服務端是否有數據包。
MySQL在本地能連接上,遠程連接不上的解決辦法

如果沒有數據包,查一下阿里雲伺服器 ECS下的安全組件中的配置
MySQL在本地能連接上,遠程連接不上的解決辦法

若安全組件中的配置中,入口未對資料庫服務監聽的3306埠放開,則需要將3306埠放開。如下圖,並沒有3306埠,則表示未放開該埠。
MySQL在本地能連接上,遠程連接不上的解決辦法
MySQL在本地能連接上,遠程連接不上的解決辦法

在阿里雲伺服器 ECS下的安全組件中的配置,放開3306埠。單擊添加安全組規則,如下圖:
MySQL在本地能連接上,遠程連接不上的解決辦法
MySQL在本地能連接上,遠程連接不上的解決辦法

B. 不能對Mysql伺服器進行遠程連接,怎麼回事

你在遠程訪問的時候,用戶名
不能是
root用戶,必須由你訪問的那個機器
上的MySQL
分配個用戶,用那個用戶名和密碼就可以連接成功了,,連接地址是IP的形式

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

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

D. 解決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身份登錄啦!

E. MySQL連接遠程伺服器資料庫連接不上

這個遇到過,是因為你的mysql沒有開啟ip訪問許可權。
解決方案:
1。授權法:
use
mysql;
grant
all
privileges
on
*.*
to
leo@'%'
identified
by
"leo";
以leo用戶在任何地方都可以訪問;
2。改表法:
可以實現以root用戶在任何地方訪問資料庫
update
user
set
host
=
'%'
where
user
=
'root';
這樣就可以了

F. 無法連接遠程MySQL資料庫哪,如何解決

一、配置mysql允許遠程鏈接
默認情況下,mysql帳號不允許從遠程登陸,只能在localhost登錄。這里提供了二種方法設置mysql可以通過遠程主機進行連接。
1、改表法
在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;
2、授權法
例如:
你想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
連接遠程資料庫(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:

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

H. 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是要訪問的某個資料庫中的某張表,如果是所有的,則可以用*。

I. 怎麼遠程訪問不了mysql資料庫

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

1
2
3
4

mysql -u root -p
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;

2、授權法
在安裝mysql的機器上運行:
1、d:\mysql\bin\>mysql -h localhost -u root

J. 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身份登錄啦。

熱點內容
演算法牛 發布:2024-05-05 22:43:40 瀏覽:718
grublinux引導 發布:2024-05-05 22:37:56 瀏覽:214
unix高級編程第三版pdf 發布:2024-05-05 22:32:09 瀏覽:958
手機wap網站源碼 發布:2024-05-05 22:27:44 瀏覽:259
python修改文件某一行 發布:2024-05-05 22:18:22 瀏覽:457
md5加密64 發布:2024-05-05 21:59:30 瀏覽:527
259pp頁面訪問升級 發布:2024-05-05 21:47:51 瀏覽:89
迅雷阻止上傳 發布:2024-05-05 21:26:19 瀏覽:914
資料庫運維題 發布:2024-05-05 21:21:47 瀏覽:962
RM魔塔編程 發布:2024-05-05 21:21:47 瀏覽:286