mysql数据库不能远程连接

合集下载

Navicatformysql远程连接mySql数据库10061、1045错误

Navicatformysql远程连接mySql数据库10061、1045错误

Navicatformysql远程连接mySql数据库10061、1045错误有朋友可能会碰到使⽤Navicat for mysql 远程连接 mySql数据库会提⽰10061、1045错误或 2003-Can’t connect to MySQL on’192.168.1.2’(10061),这个原因是因为MySQL不准许远程连接。

最简单的办法是MySQL远程配置代码如下复制代码GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY 'your paaa'; %表⽰多有机器。

打开3306端⼝,为防⽕墙设置例外,放⾏3306.但你必须有root权限了,还可以如下⽅法修改:1:在服务端MySQL⽂件夹下找到my.ini⽂件。

修改bind-address=127.0.0.1 为 bind-address=0.0.0.0 (在MySQL 5的my.ini中未发现此项)2:重新启动MySQL服务。

测试连接情况:如果没有给远程登录⽤户添加所有机器都能访问的权限,将会出现“1045- denied for user root@IT(using password:NO)”,这表明需要添加权限;添加命令如下:代码如下复制代码1)grant all on *.* to ⽤户名@"%" identified by "密码";2)flush privileges;完成以上步骤,就可以远程访问MySQL了。

如果上⾯办法不能解决我们可以开启MySQL远程访问权限允许远程连接1、登陆mysql代码如下复制代码mysql -u root -p查看user表代码如下复制代码mysql> use mysql;Database changedmysql> host,user,password from user;+--------------+------+-------------------------------------------+| host | user | password |+--------------+------+-------------------------------------------+| localhost | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E || 192.168.1.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |+--------------+------+-------------------------------------------+2 rows in set (0.00 sec)可以看到在user表中已创建的root⽤户。

无法远程访问数据库的原因

无法远程访问数据库的原因

无法远程访问数据库的原因
当我们尝试远程访问数据库时,有时会遇到无法连接的问题。

这可能是由于多种原因导致的。

以下是几个常见的原因:
1. 防火墙配置:防火墙是一种用于保护计算机网络安全的安全机制。

如果你的计算机或服务器上运行着防火墙,并且没有正确配置以允许数据库远程访问,那么你将无法连接到数据库。

在这种情况下,你需要检查防火墙配置,并确保允许数据库的远程访问。

2. 网络连接问题:在进行远程数据库访问时,网络连接是至关重要的。

如果服务器与客户端之间存在网络连接问题,那么你将无法建立连接。

首先,确保你的网络连接是正常的,然后检查是否存在网络故障或连接问题。

3. IP地址和端口配置:数据库服务器通常使用特定的IP地址和端口号进行连接。

如果你尝试使用错误的IP地址或端口号连接数据库,将导致连接失败。

确保你使用正确的IP地址和端口号,并且在连接时没有输入错误。

4. 访问权限:数据库服务器通常需要授权才能进行访问。

如果你没有正确的用户名和密码进行远程访问,将无法连接到数据库。

确保你已经获得了正确的访问权限,并且输入了正确的用户名和密码。

若遇到无法远程访问数据库的情况,以上列举的原因可能是导致连接失败的主要因素。

通过仔细检查这些可能原因,你应该能够解决访问数据库的问题,并成功建立远程连接。

MySQL8.0设置远程访问权限的方法

MySQL8.0设置远程访问权限的方法

MySQL8.0设置远程访问权限的⽅法上⼀篇⽂章讲解了重置 MySQL 的密码,有同学反馈⽆法程连接到数据库,这是因为 MySQL 安装完成后只⽀持 localhost 访问,我们必须设置⼀下才可以远程访问,另外还有⼀些 MySQL 8.0 连接时的⼀些问题,本⽂也会⼀并进⾏讲解如何解决。

1.登录MySQLmysql -u root -p输⼊您的密码2.选择 mysql 数据库use mysql;因为 mysql 数据库中存储了⽤户信息的 user 表。

3.在 mysql 数据库的 user 表中查看当前 root ⽤户的相关信息select host, user, authentication_string, plugin from user;执⾏完上⾯的命令后会显⽰⼀个表格查看表格中 root ⽤户的 host,默认应该显⽰的 localhost,只⽀持本地访问,不允许远程访问。

4.授权 root ⽤户的所有权限并设置远程访问GRANT ALL ON *.* TO 'root'@'%';GRANT ALL ON 表⽰所有权限,% 表⽰通配所有 host,可以访问远程。

5.刷新权限所有操作后,应执⾏flush privileges;6.查看 root ⽤户的 host再次执⾏步骤 2,你会发现 root ⽤户的 host 已经变成 %,说明我们的修改已经成功,可以远程访问了。

7.访问数据库远程访问数据库的可视化⼯具⽐较多如:Navicat、SQLyog、MySQL workbench 等,我这⾥使⽤ Navicat输⼊访问的 host 和密码,报 2059 错误,这是因为 MySql8.0 版本和 5.0 的加密规则不⼀样,⽽现在的可视化⼯具只⽀持旧的加密⽅式。

此问题有两种⽅法,⼀种是更新 Navicat 驱动来解决此问题,另⼀种是将 MySQL ⽤户登录的加密规则修改为mysql_native_password,第⼀种⽅法我试过了没有起作⽤,我这⾥采⽤第⼆种⽅法。

Centos7下无法远程连接mysql数据库的原因是什么

Centos7下无法远程连接mysql数据库的原因是什么

Centos7下无法远程连接mysql数据库的原因是什么防火墙主要由服务访问规则、验证工具、包过滤和应用网关4个部分组成,防火墙就是一个位于计算机和它所连接的网络之间的软件或硬件。

下面这篇文章主要给大家介绍了关于在Centos7下无法远程连接mysql数据库的原因与解决方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。

原因分析有两种原因数据库没有授权服务器防火墙没有开放3306端口一、数据库没有授权对于mysql数据库没有授权,只需要用一条命令就可以了。

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;//远程连接数据库的时候需要输入用户名和密码用户名:root密码:123456指点ip:%代表所有Ip,此处也可以输入Ip来指定Ip输入后使修改生效还需要下面的语句mysql>FLUSH PRIVILEGES;二、服务器防火墙没有开放3306端口centos 有两种防火墙 FirewallD和iptables防火墙centos7 使用的是FirewallD防火墙。

FirewallD 是iptables 的前端控制器,用于实现持久的网络流量规则。

它提供命令行和图形界面,在大多数Linux 发行版的仓库中都有。

与直接控制 iptables 相比,使用 FirewallD 有两个主要区别:1.FirewallD 使用区域和服务而不是链式规则。

2.它动态管理规则集,允许更新规则而不破坏现有会话和连接。

FirewallD 是iptables 的一个封装,可以让你更容易地管理iptables 规则 - 它并不是 iptables 的替代品。

虽然 iptables 命令仍可用于 FirewallD,但建议使用 FirewallD 时仅使用 FirewallD 命令。

linux中MySQL本地可以连接,远程连接不上问题

linux中MySQL本地可以连接,远程连接不上问题

linux中MySQL本地可以连接,远程连接不上问题1.⽹络或防⽕墙问题(1)检查⽹络直接ping你的远程服务器,ping 182.61.22.107,可以ping通说明⽹络没问题(2)看端⼝号3306是不是被防⽕墙挡住了,telnet 182.61.22.107 3306下图这样就是防⽕墙挡住了3306端⼝不允许访问配置防⽕墙,开启3306端⼝vi /etc/sysconfig/iptables //防⽕墙配置-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT //允许3306端⼝通过service iptables restart //重启防⽕墙配置如下:2.MySQL配置在你开启防⽕墙以后发现还是telnet失败,我去,报错如下:这⾥的原因是因为你的数据库只允许root⽤户在本地登录,你可以设置允许访问的⽤户跟地址(1)进⼊数据库查看⽤户表mysql -u root -p //登录数据库use mysql //进⼊mysql数据库select Host,User from user; //查看可以访问数据库的ip结果如下:(2)设置可以访问的ipupdate user set host='%' where host='localhost'; //允许所有访问flush privileges; //刷新⽣效当然也可以只允许⼀些ip访问,或者ip段访问:GRANT ALL PRIVILEGES ON *.* TO 'root'@'182.61.*.*' IDENTIFIED BY 'password' WITH GRANT OPTION; //允许182.61段在root账号登录。

Navicat远程连接mysql时,报错误“CantconnecttoMySQLserve。。。

Navicat远程连接mysql时,报错误“CantconnecttoMySQLserve。。。

Navicat远程连接mysql时,报错
误“CantconnecttoMySQLserve。

问题:
安装完mysql,添加完远程⽤户并赋予权限后,使⽤Navicat⼯具远程连接时报错误提⽰
解决⽅法:
1、检查端⼝53309是否填写错误,要与f中的端⼝保持⼀致----发现保持⼀致
2、检查登录⽤户('root'@'%')的密码是否填写错误-----发现填写正确
3、检查mysql服务是否已经启动-----发现已经启动
4、检查防⽕墙是否开放了端⼝53309:# firewall-cmd --list-ports-----发现未开放,找到连接失败原因:
添加防⽕墙开放端⼝:# firewall-cmd --zone=public --add-port=53309/tcp --permanent
重启防⽕墙⽣效:# firewall-cmd --reload
再次查看是否开放了端⼝53309:# firewall-cmd --list-ports-----开放成功
Navicat重新连接测试------测试成功,问题解决
---------结束------------。

解决网络无法连接到远程数据库的问题

解决网络无法连接到远程数据库的问题

解决网络无法连接到远程数据库的问题在今天的数字化时代,网络连接是我们工作和生活中必不可少的一部分。

然而,有时我们可能会遇到无法连接到远程数据库的问题。

这不仅会对我们的工作效率造成影响,还可能导致数据丢失和其他风险。

本文将介绍一些解决网络无法连接到远程数据库的常见问题的方法,以帮助您恢复正常的工作状态。

1. 检查网络连接第一步是检查网络连接是否正常。

确保您的电脑或设备已连接到正确的Wi-Fi网络或有可靠的有线连接。

您可以尝试重启路由器或调整网络设置来解决连接问题。

2. 防火墙设置防火墙可以保护我们的网络安全,但有时也会阻止远程数据库的连接。

检查您的防火墙设置,确保允许数据库程序通过防火墙进行通信。

您可以在防火墙设置中添加数据库程序的例外规则或禁用防火墙进行测试。

当然,在禁用防火墙之前,请确保您的计算机和网络得到足够的保护。

3. IP地址和端口检查您的数据库配置文件或连接字符串中的IP地址和端口设置。

确保它们正确且与远程数据库的设置匹配。

如果您不确定正确的IP地址和端口,请咨询数据库管理员或网络管理员以获取准确的信息。

4. 网络权限有时,网络权限限制可能会导致无法连接到远程数据库。

如果您是在公司或组织的网络中工作,尝试联系网络管理员,确认您是否具有足够的网络权限来访问远程数据库。

他们可能需要对您的帐户进行特殊设置或提供访问权限。

5. DNS设置域名系统(DNS)是将域名转换为IP地址的系统。

如果您无法通过域名连接到远程数据库,可能是由于DNS设置问题。

您可以尝试直接使用远程数据库的IP地址进行连接,以绕过可能存在的DNS问题。

6. 网络速度和稳定性网络速度和稳定性也可能是导致无法连接到远程数据库的问题之一。

如果您的网络连接不稳定,可能会导致连接中断或超时。

在这种情况下,您可以尝试更换网络环境,例如切换到更可靠的Wi-Fi网络或使用有线连接。

7. 更新数据库驱动程序最后,确保您的数据库驱动程序是最新版本。

mysql 开启远程连接的三种方法

mysql 开启远程连接的三种方法

方法一样给mysql开启远程连接功能?首先链接本机的mysql(用ssh登录终端,输入如下命令):mysql -uroot -p输入密码登陆进去后,输入如下的语句,执行。

grant all privileges on *.* to ‘user‘@’%‘identified by ‘password‘with grant option; 其中,user是用户名,mysql默认的是root ,password是密码自己设置。

%表示任意主机。

这样就允许远程任意一台主机访问了。

方法二开启mysql远程功能方法如下:进入mysql,创建一个新用户itbc:格式:grant 权限on 数据库教程名.表名用户@登录主机identified by "用户密码";grant select,update,insert,delete on *.* to itbc@192.168.88.234 identified by "itbc1234";查看结果,执行:use mysql;select host,user,password from user;可以看到在user表中已有刚才创建的itbc用户。

host字段表示登录的主机,其值可以用ip,也可用主机名,将host字段的值改为%就表示在任何客户端机器上能以itbc用户登录到mysql服务器,建议在开发时设为%。

update user set host = ’%’where user = ’itbc’;方法三mysql默认是不可以通过远程机器访问的,通过下面的配置可以开启远程访问.我的mysql环境是ubuntu+mysql51.修改/etc/mysql/my.conf,修改bind-address,指定为本机实际ip地址,你的my.con修改完大概是如下的样子[mysqld]## * basic settings#default-character-set=utf8default-storage-engine=innodbbind-address = 192.168.1.107user = mysqlpid-file = /var/run/mysqld/mysqld.pidsocket = /var/run/mysqld/mysqld.sockport = 3306basedir = /usrdatadir = /var/lib/mysqltmpdir = /tmplanguage = /usr/share/mysql/englishskip-external-locking2.用root登陆mysql执行如下命令grant all on sonardb.* to sonar@'%' identified by '123456';grant all on sonardb.* to sonar@localhost identified by '123456';sonardb替换为你想访问的数据库名,sonar是你的想使用的用户名,123456替换为你的密码,这样就开启了远程访问功能.。

mysql远程访问权限的配置方法

mysql远程访问权限的配置方法

mysql远程访问权限的配置方法MySQL是一款广泛使用的关系型数据库管理系统,它具有强大的功能和灵活的配置选项。

在实际应用中,有时需要从远程位置访问MySQL数据库,这涉及到配置MySQL的远程访问权限。

为了确保数据的安全性,MySQL默认情况下禁止远程访问。

本文将一步一步介绍如何配置MySQL 的远程访问权限。

1. 确保MySQL服务器监听远程连接:默认情况下,MySQL服务器只监听本地连接。

要允许远程连接,首先需要确保MySQL服务器在所有网络接口上都监听连接。

打开MySQL配置文件myf(或my.ini),找到bind-address选项,并将其设置为服务器的IP地址或0.0.0.0以监听所有接口。

2. 添加远程连接用户:MySQL服务器通过用户名和密码验证远程连接。

要创建一个可以从远程访问的用户,请使用以下命令登录到MySQL服务器上的命令行工具:mysql -u root -p在命令行工具中,创建一个新用户并授予其远程访问权限:CREATE USER 'username''' IDENTIFIED BY 'password';GRANT ALL PRIVILEGES ON *.* TO 'username''' WITH GRANT OPTION;FLUSH PRIVILEGES;其中,'username'是新用户的用户名,'password'是密码。

表示允许来自任何IP地址的远程连接。

如果只允许特定IP地址的远程连接,可以将替换为具体的IP地址。

3. 配置防火墙:如果服务器上启用了防火墙,还需要配置防火墙以允许MySQL的远程连接。

如果使用的是iptables,请使用以下命令允许MySQL流量通过:iptables -A INPUT -p tcp dport 3306 -j ACCEPT如果使用的是ufw,请使用以下命令允许MySQL流量通过:ufw allow 3306/tcp4. 重启MySQL服务:在完成上述配置后,需要重启MySQL服务以使更改生效。

docker中安装的mysql无法远程连接问题解决

docker中安装的mysql无法远程连接问题解决

docker中安装的mysql⽆法远程连接问题解决
背景:
在ubuntu1804的docker中安装了mysql,版本是5.7.34。

因为有复杂的数据要插⼊到数据库中,所以从宿主机通过pycharm和DBeaver连接,但是⼀直报错:Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.
解决⽅法分为两步⾛
第⼀步:
修改mysql配置⽂件中的bind_address
vim /etc/mysql/mysql.conf.d/f
数据库不能远程访问多半是因为绑定了本地地址127.0.0.1.
第⼆步:
开启⽤户的远程访问权限。

以root⽤户为例。

如果⽤户没有远程访问权限则即使数据库能远程访问但因为⽤户权限限制也会失败。

开启远程访问权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
强制刷新权限:
flush privileges;
完成这两步就可以远程访问到docker中的数据库了。

Linux系统下怎么实现远程连接MySQL数据库

Linux系统下怎么实现远程连接MySQL数据库

Linux系统下怎么实现远程连接MySQL数据库通常MySQL不能远程连接管理mysql数据库,但是有用户需要在Linux下实现,怎么操作呢?下面这篇文章主要给大家介绍了在Linux系统下实现远程连接MySQL数据库的方法教程,需要的朋友可以参考借鉴,下面来一起看看吧。

步骤1、在服务器端开启远程访问首先进入mysql数据库,然后输入下面两个命令:grant all privileges on *.* to 'root'@'%' identified by 'password';flush privileges;第一个*是数据库,可以改成允许访问的数据库名称第二个是数据库的表名称,代表允许访问任意的表root代表远程登录使用的用户名,可以自定义%代表允许任意ip登录,如果你想指定特定的IP,可以把%替换掉就可以了password代表远程登录时使用的密码,可以自定义flush privileges;这是让权限立即生效2、修改f配置文件这个是mysql的配置文件,如果你无标题文章找不到在哪里的话,可以输入find /* -name f 找到通过vim编辑该文件,找到bind-address = 127.0.0.1这一句,然后在前面加个#号注释掉,保存退出3、重启服务service mysql restart4、在本地远程连接在终端输入:mysql -h 服务器ip地址 -P 3306 -u root -p然后输入密码即可。

root是第1点设置的用户名,密码也是第1点设置的密码一些细节在网上找了很多文章,说要开启3306端口才能连接,但是我开启了却还是无法连接,后来又找到了一些文章,说要更改f,也就是上面的第2点,更改了然后重启服务器就可以了。

刚刚在另外一台服务器上面试了一下,没有配置过端口,通过上面三步,很快就连上了。

所以第二点非常重要,基本上每个人装mysql的时候都会去配置那个文件,因为字符集需要配置。

如何实现远程连接数据库服务器

如何实现远程连接数据库服务器

如何实现远程连接数据库服务器远程连接数据库服务器是一种管理和操作数据库的方法,允许用户通过网络连接到远程服务器,并执行各种数据库操作。

下面将介绍如何实现远程连接数据库服务器。

1.确认数据库服务器是否支持远程连接在开始之前,首先需要确认数据库服务器是否允许通过网络进行远程连接。

一些数据库服务器默认不允许远程连接,需要进行配置才能实现。

比如,MySQL数据库服务器需要在配置文件中开启远程连接选项。

如果数据库服务器不允许远程连接,需要进行相应的配置。

不同的数据库服务器有不同的配置方式,以下是一些常见数据库服务器的配置方法:-MySQL数据库服务器:- 在[mysqld]节中添加bind-address = 0.0.0.0(允许来自所有IP地址的连接)或指定特定的IP地址-保存并重新启动MySQL服务器- PostgreSQL数据库服务器:- 打开PostgreSQL配置文件(通常是postgresql.conf文件)- 找到listen_addresses项,将其设置为*或指定特定的IP地址- 保存并重新启动PostgreSQL服务器- SQL Server数据库服务器:- 打开SQL Server Configuration Manager- 在左侧导航栏中选择SQL Server Network Configuration- 选择一些协议(如TCP/IP),右击选择Properties- 在IP Addresses选项卡中,找到对应的IP地址(IPAll或特定的IP地址),将TCP Port设置为1433或其他指定的端口号- 保存并重新启动SQL Server服务3.配置服务器防火墙如果数据库服务器所在的计算机上有防火墙,需要将数据库服务器的监听端口开放,以便允许远程连接。

具体方法根据使用的防火墙软件而定,一般需要在防火墙设置中添加相应的规则或例外。

4.配置客户端工具在远程连接数据库服务器之前,还需要配置客户端工具来实现连接。

本地Windows远程连接服务器的MySQL数据库

本地Windows远程连接服务器的MySQL数据库

本地Windows远程连接服务器的MySQL数据库前⾔: 使⽤Windows窗⼝连接服务器上⾯的mysql,需要有以下的环境:1. Windows安装mysql,并且能够正常使⽤本机数据库2. Linux下安装好mysql,并且能够在xshell连接使⽤数据库这篇博客就是怎么使⽤本地Windows远程连接服务器的MySQL数据库步骤:看下error吧,这是Windows没有连接上服务器上⾯数据库报的错误:⽆法连接到上的MySQL服务器、=======服务器端进⾏修改===========必做~ 需要在阿⾥云ECS控制台中放⾏3306mysql的端⼝,如果有宝塔的⼩伙伴也记得在宝塔中开启相关的端⼝信息~1、关闭防⽕墙 # service iptables stop在关闭防⽕墙到时候,出现:Redirecting to /bin/systemctl stop iptables.serviceFailed to stop iptables.service: Unit iptables.service not loaded.解决⽅法:yum install iptables-services实际上,centos7后是使⽤的基于iptable的systemctl stop firewalld,使⽤下⾯命令即可:systemctl stop firewalld2、连接数据库 # mysql -u root -p3、进⼊数据库,查看当前数据允许登录的⽤户和主机 mysql > use mysql mysql > select host,user from user;mysql> select host,user from user;+-----------------+--------+| host | user |+-----------------+--------+| 127.0.0.1 | root || 127.0.0.1 | t_user || 127.0.0.1 | test || ::1 | root || izif45fzaj7j6lz | || izif45fzaj7j6lz | root || localhost | || localhost | root || localhost | t_user || localhost | test |+-----------------+--------+4、修改host的值将其中⼀个记录的host值改为"%",表⽰可以允许任何地⽅登录 mysql > update user set host = "%" where user = "root"mysql> select host,user from user;+-----------------+--------+| host | user |+-----------------+--------+| % | root || 127.0.0.1 | root || 127.0.0.1 | t_user || 127.0.0.1 | test || ::1 | root || izif45fzaj7j6lz | || izif45fzaj7j6lz | root || localhost | || localhost | t_user || localhost | test |+-----------------+--------+5、刷新权限表/重启mysql 刷新权限表:flush privileges;6、重启mysql服务service mysqld restart7、Windows连接服务器mysql。

解决navicat远程连接mysql报错10038的问题

解决navicat远程连接mysql报错10038的问题

解决navicat远程连接mysql报错10038的问题⽬录⼀:本地防⽕墙问题⼆:服务器3306端⼝未打开navicat远程连接mysql报错10038⼀般由以下两个原因:⼀:本地防⽕墙问题在本地安装了mysql、navicat并打开了mysql服务的情况下,来设置防⽕墙。

⾸先右击或者点击⼊站规则,找到新建规则,点击。

点击端⼝。

在特定本地端⼝中填⼊3306.⼀直点击下⼀步。

这⾥可以给⼀个好分别的名称即可。

之前再尝试连接即可,若仍然不可以,可能是服务器⽅⾯的问题。

⼆:服务器3306端⼝未打开⾸先需要在安全组开放端⼝。

我这⾥使⽤的是阿⾥云服务器。

⾸先需要进⼊云服务器,找到安全组。

进⼊⾥⾯找到配置规则。

然后进⾏快速添加,添加3306端⼝即可。

之后同样在云服务器下再进⼊实例列表,点击远程连接,进⼊服务器终端。

然后在命令⾏输⼊firewall-cmd --query-port=3306/tcp若这⾥显⽰的是no,那么需要让防⽕墙开启3306端⼝:1.开启端⼝3306firewall-cmd --zone=public --add-port=3306/tcp --permanent2.重启防⽕墙firewall-cmd --reload查看已经开放的端⼝firewall-cmd --list-ports接着需要让mysql开启远程访问权限:1.登陆mysql (若遗忘数据库密码,往下看)mysql -u root -p2.设置访问地址(本⼈实际操作的时候并没有设置就可以连接成功了)如果你想允许⽤户root从ip为192.168.1.123的主机连接到mysql服务器,并使⽤root作为密码GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.123'IDENTIFIED BY 'password' WITH GRANT OPTION;3.刷新flush privileges;如果在上⾯第1步登陆mysql的时候遗忘了密码,可以进⾏以下操作。

远程连接MySQL数据库报错:isnotallowedtoconnecttothisMYS。。。

远程连接MySQL数据库报错:isnotallowedtoconnecttothisMYS。。。

远程连接MySQL数据库报错:isnotallowedtoconnecttothisMYS。

1. 改表法。

可能是你的帐号不允许从远程登陆,只能在localhost。

这个时候只要在localhost的那台电脑,登⼊后,更改 "mysql" 数据库⾥的 "user"表⾥的 "host" 项,从"localhost"改称"%"mysql -u root -pmysql>use mysql;mysql>update user set host ='%'where user='root';mysql>select host, user from user; 注:个⼈觉得不太适⽤!【错误内容】:SQL Error (2013): Lost connection to MySQL server at 'waiting for initial communication packet', system error: 0【错产⽣经过】:链接MySQL时出现.【解决办法】:打开my.ini,找到[mysqld]项,在其后加⼊⼀句:skip-name-resolve,保存,重启mysql服务即可~以上就是解决MySQL Error (2013): Lost connection to MySQL server at waiting for initial communication packet的全⽂介绍,希望对您学习和使⽤数据库有所帮助.2. 授权法。

1)例如,你想myuser使⽤mypassword从任何主机连接到mysql服务器的话。

GRANT ALL PRIVILEGES ON*.*TO'myuser'@'%' IDENTIFIED BY'mypassword'WITH GRANT OPTION;FLUSH PRIVILEGES; 2)如果你想允许⽤户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; 3)如果你想允许⽤户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; 我⽤的第⽅法1),最后执⾏⼀个语句 mysql>FLUSH RIVILEGES 使修改⽣效.就可以了 另外⼀种⽅法,不过我没有亲⾃试过的,在上找的,可以看⼀下. 在安装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⾝份登录啦!。

Navicat出现无法远程连接MySql服务器问题的解决办法

Navicat出现无法远程连接MySql服务器问题的解决办法

Navicat出现⽆法远程连接MySql服务器问题的解决办法Navicat⽆法远程连接MySql服务器问题的解决⽅法写在前⾯:操作系统:中标麒麟4.0;数据库:MySQL5.7.26;JDK:采⽤中标麒麟系统⾃带的openjdk;客户端⼯具:Navicat;前置条件:MySQL服务安装完毕;情景:安装好mysql,本地访问正常,但同⼀个局域⽹内的机器都⽆法访问该服务器上的mysql数据库;原因:mysql默认是不可以通过远程机器访问的,只允许本地访问,通过下⾯的配置可以开启远程访问;排查思路:mysql设置远程访问主要从以下三个⽅⾯去检测:⾸先检查⽹络,两台计算机之间必须能ping通,这是基础;第⼆:检测3306端⼝,对于端⼝只允许本机访问,有两个地⽅启⽤,⼀个是mysql配置绑定本机地址,另⼀个就是防⽕墙启⽤3306;第三:mysql⽤户访问权限的问题。

根据思路逐⼀排查1.⽹络检测:ping mysql所在主机的ip地址看是否能ping通,如果能ping通,说明不是⽹络的问题;我的可以ping通,说明不是⽹络的问题;2.端⼝检测:检测3306端⼝:netstat -ntpl | grep 3306,如图:检测22端⼝:netstat -ntpl | grep 22,如图:综上可以看出22端⼝监听所有地址,⽽3306端⼝只监听了本地地址,所以远程⽆法访问。

对于端⼝只允许本机访问,有两个地⽅启⽤,⼀个是防⽕墙启⽤3306,另⼀个就是mysql配置绑定本机地址。

所以Navicat⽆法连接远程MySQL这个问题我们找到问题所在了,我们只需将3306端⼝允许远程访问即可;解决办法:⼀般情况下,我们只需要去修改/etc/mysql/f配置⽂件即可,将f配置⽂件中的bind-address=127.0.0.1改成bind-address=0.0.0.0,并且把skip-networking注释掉即可;但是我的f配置⽂件中并没有bind-address=127.0.0.1和skip-networking这两⾏代码,我就⾃⼰加上了bind-address=0.0.0.0这⾏代码,以为会好使,重启系统后,结果,并没有卵⽤再次检测3306端⼝,发现还是只允许本地访问,就在我百思不得其解的时候,配置⽂件中的⼀句注释引起了我的注意~此处有惊喜,问题马上就可以解决了 > . <然后我们再去看/etc/mysql/f配置⽂件,发现了⼀句话,如图:“从以下配置⽬录导⼊所有的以.cnf结尾的⽂件”,啧啧啧,有没有种恍然⼤悟的感觉?也就是说address=127.0.0.1这⾏配置没有在f配置⽂件中配置,可能在那两个⽬录下的某⼀个配置⽂件中配置了,所以我们就去找找看看呗,⽆论如何得把“address=127.0.0.1”这⾏代码找到。

远程连接mysql数据库失败:Can’tconnecttoMySQLserveron‘ro。。。

远程连接mysql数据库失败:Can’tconnecttoMySQLserveron‘ro。。。

远程连接mysql数据库失败:Can’tconnecttoMySQLserveron‘ro。

##远程连接mysql数据库失败:Can’t connect to MySQL server on ‘root'(10038)的解决办法下⾯是⼀些解决⽅案在我使⽤的最新LNMP环境包的时候遇到的情况是防⽕墙iptables 阻⽌了外⽹IP访问3306我的解决⽅案是清除iptables规则解放3306清除已有iptables规则iptables -Fiptables -X(我本⼈执⾏到这⼀步就可以了)1、设置⽤户权限修改⽤户远程登录权限:⽐如想给⽤户root(密码:123456)设置从任何主机连接到mysql服务器:连接linux,登录数据库:# mysql -uroot -p# Enter password:******MySQL [(none)]> use use mysql;MySQL [(mysql)]> GRANT ALL PRIVILEGES ON *.* TO ’root‘@'%' IDENTIFIED BY ‘123456’ WITH GRANT OPTION;MySQL [(mysql)]> flush privileges;MySQL [(mysql)]> quit;报这个错误的话 ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by "123456"' at line 1⽤下⾯这句create user root@'%' identified by '123456';grant all privileges on *.* to root@'%' with grant option;重启MySQL:# service mysqld restart2、检查防⽕墙有没有屏蔽掉3306端⼝。

解决Navicat远程连接MySQL出现10060unknowerror的方法

解决Navicat远程连接MySQL出现10060unknowerror的方法

解决Navicat远程连接MySQL出现10060unknowerror的⽅

前⾔:今天想远程连接⼀下⾃⼰服务器上的MySQL,⽤的⽤的软件是Navicat,服务器上的MySQL版本为5.7
第⼀次连接的时候就出意外了
⼤概意思是⽆法连接MySQL服务,解决步骤如下
第⼀:⾸先检查你的阿⾥或腾讯的服务器控制台是否开启3306端⼝访问权限,关于在哪⾥看,请⾃⾏百度,我的如下,可以看到,并没有允许远程连接
如果和我⼀样没开启,那就开启吧
开启允许所有连接后,再试试
⼜出错了,这次的⼤概意思是拒绝访问这个MySQL服务,解决如下
第⼀:进⼊MySQL,选择MySQL数据库,查看user=root 信息
可以看到,root的⽤户只允许本地访问,现在需要改成所有或者指定IP
我的是改成所有都⾏,别忘记刷新flush privileges 就是刷新权限,最后再试试能不能远程连接
可以看到,能远程连接了
总结:第⼀步,检查阿⾥或腾讯服务器后台是否开启允许连接3306端⼝
第⼆部,检查MySQL数据库MySQL表的root ⽤户是否允许远程连接
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

设置Mysql允许其他电脑远程访问

设置Mysql允许其他电脑远程访问

设置Mysql允许其他电脑远程访问
在实际应用中常常需要设置mysql,允许其他电脑远程访问,以便达到共享数据库的目的。

下面是店铺跟大家分享的是设置Mysql允许其他电脑远程访问,欢迎大家来阅读学习。

设置Mysql允许其他电脑远程访问
工具/原料
mysql
Windows
cmd
方法/步骤
打开mysql数据库,用root用户名登陆数据库。

查看数据库中名为mysql的数据库中user表的host、user、以及密码等,此时有user名为root的记录,如果想让远程电脑连接数据库,需添加一台user名为root,host为名“%”的记录,也可以再设置访问密码。

可以用cmd添加记录。

按住win+R键,回车,打开cmd
在cmd中输入如下红色框中的信息,每输入一行按下回车,完成后退出cmd即可。

在查看mysql,在mysql数据库的user表中会多出一条user名为root,host为“%”的记录,说明添加成功。

下面检验是否可以远程连接,可以在本机进行测试。

你可以打开eclipse,查看data source explorer中的任意数据库,单击右键选中properties中的driver properties,设置如图信息。

点击test connection,弹出如图信息,则设置正确。

MySQL数据库安全配置规范操作

MySQL数据库安全配置规范操作

MySQL数据库安全配置规范操作1.账号以普通帐户安全运⾏mysqld,禁⽌mysql以root帐号权限运⾏,攻击者可能通过mysql获得系统root超级⽤户权限,完全控制系统。

配置/etc/f[mysql.server]user=mysql补充操作说明直接通过本地⽹络之外的计算机改变⽣产环境中的数据库是异常危险的。

有时,管理员会打开主机对数据库的访问:> GRANT ALL ON *.* TO 'root'@'%';这其实是完全放开了对root的访问。

所以,把重要的操作限制给特定主机⾮常重要:> GRANT ALL ON *.* TO 'root'@'localhost';> GRANT ALL ON *.* TO 'root'@'myip.athome' ;> FLUSH PRIVILEGES;判定条件禁⽌以root账号运⾏mysqld;检测操作检查进程属主和运⾏参数是否包含--user=mysql类似语句:# ps –ef | grep mysqld#grep -i user /etc/f⽤户权限应按照⽤户分配账号,避免不同⽤户间共享账号创建⽤户设定指定ip地址登陆数据库create user vvera@'指定ip地址' identified by 'vv@122';这样就创建了⼀个名为:vvera 密码为:vv@122 的⽤户。

然后登录⼀下。

检测⽅法判定条件不⽤名称的⽤户可以连接数据库;使⽤不同⽤户连接数据库应删除或锁定与数据库运⾏、维护等⼯作⽆关的账号移除匿名账户和废弃的账户DROP USER语句⽤于删除⼀个或多个MySQL账户。

要使⽤DROP USER,必须拥有mysql数据库的全局CREATE USER权限或DELETE 权限。

账户名称的⽤户和主机部分与⽤户表记录的User和Host列值相对应。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1130 - Host XXX is not allowed to connect to t his MySQL server。

1.在用Navicat配置远程连接Mysql数据库时遇到如下报错信息,这是由于Mysql配置了不支持远程连接引起的。

2.在安装Mysql数据库的主机上登录root用户:
mysql -u root -p
3.依次执行如下命令:
e mysql;
2.
3.select host from user where user='root';
可以看到当前主机配置信息为localhost.
4.将Host设置为通配符%
Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。

这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。

user=root
Host=localhost,表示只能通过本机客户端去访问。

而%是个通配符,如果
Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。

如果Host=%,表示所有IP都有连接权限。

注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产环境的IP进行设置;
update user set host = '%'where user ='root';
Host设置了“%”后便可以允许远程访问。

5.Host修改完成后记得执行flush privileges使配置立即生效
flush privileges;
6.使用navicat 成功连接至mysql。

相关文档
最新文档