当前位置:首页 » 密码管理 » 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身份登录啦。

热点内容
bil格式存储的作用 发布:2024-05-16 07:14:33 浏览:293
井水存储 发布:2024-05-16 07:11:48 浏览:425
wps加密文档怎么解密 发布:2024-05-16 07:11:26 浏览:625
pid控制的算法 发布:2024-05-16 07:11:20 浏览:170
androidsleep 发布:2024-05-16 06:57:49 浏览:399
华为全屋智能尊享版有什么配置 发布:2024-05-16 06:41:19 浏览:771
优酷如何清除缓存 发布:2024-05-16 06:18:59 浏览:143
我喜欢的服务器ip在哪里找 发布:2024-05-16 06:08:08 浏览:688
手机如何更改无线网密码 发布:2024-05-16 06:04:43 浏览:564
服务器dtu是什么 发布:2024-05-16 05:53:24 浏览:792