当前位置:首页 » 密码管理 » 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 浏览:900
奥德赛买什么配置出去改装 发布:2025-07-19 02:53:18 浏览:42
请与网络管理员联系请求访问权限 发布:2025-07-19 02:37:34 浏览:189
ipad上b站缓存视频怎么下载 发布:2025-07-19 02:32:17 浏览:844
phpcgi与phpfpm 发布:2025-07-19 02:05:19 浏览:527
捷达方向机安全登录密码是多少 发布:2025-07-19 00:57:37 浏览:693
夜魔迅雷下载ftp 发布:2025-07-19 00:39:29 浏览:99
增值税票安全接入服务器地址 发布:2025-07-19 00:20:45 浏览:486
solidworkspcb服务器地址 发布:2025-07-18 22:50:35 浏览:823
怎么在堆叠交换机里配置vlan 发布:2025-07-18 22:42:35 浏览:630