开发者社区> 技术小胖子> 正文

在windows下使用Navicat for mysql 远程连接linux系统下的 mySql数据库会提示10061、1045错误

简介:
+关注继续查看

问题:使用Navicat for mysql 远程连接 mySql数据库会提示10061、1045错误或 2003-Can’t connect to MySQL on ’192.168.1.2’(10061),这个原因是因为MySQL不准许远程连接。


方法:1

最简单的办法是

MySQL远程配置

1.在mysql命令行下运行如下命令

GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY '这里是要设置用户的密码(your paaaword)';           %表示多有机器,我这里是使用root用户

提示:如果有防火墙开启,那就必须在防火墙放行mysql的3306端口

>>>  CentOS 7.0默认使用的是firewall作为防火墙,使用iptables必须重新设置一下
(1)、直接关闭防火墙
systemctl stop firewalld.service           #停止firewall
systemctl disable firewalld.service     #禁止firewall开机启动

(2)、设置 iptables service
yum -y install iptables-services
如果要修改防火墙配置,如增加防火墙端口3306
vi /etc/sysconfig/iptables 
增加规则
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

保存退出后
systemctl restart iptables.service #重启防火墙使配置生效
systemctl enable iptables.service #设置防火墙开机启动
最后重启系统使设置生效即可。



方法:2

2.还可以如下方法修改:

(1):在服务端MySQL文件夹下找到my.ini文件。修改bind-address=127.0.0.1 为 bind-address=0.0.0.0 (在MySQL 5的my.ini中未发现此项)

(2):重新启动MySQL服务。

测试连接情况:

如果没有给远程登录用户添加所有机器都能访问的权限,将会出现“1045-Access denied for user root@IT(using password:NO)”,这表明需要添加权限;

添加命令如下:

 代码如下    复制代码

1)grant all on *.* to 用户名@"%" identified by "密码";

2)flush privileges;

完成以上步骤,就可以远程访问MySQL数据库了。


方法:3

3.如果上面办法不能解决我们可以开启MySQL远程访问权限 允许远程连接

(1)、登陆mysql数据库   

 代码如下    复制代码

mysql -u root -p

查看user表

 代码如下    复制代码

mysql> use mysql;

Database changed

mysql> select host,user from user;

+--------------+------

| host         | user | 

+--------------+------+

| localhost    | root | 

| 192.168.1.1 | root | 

+--------------+------+

2 rows in set (0.00 sec)

 

   可以看到在user表中已创建的root用户。host字段表示登录的主机,其值可以用IP,也可用主机名,

   (1)有时想用本地IP登录,那么可以将以上的Host值改为自己的Ip即可。

(2)、实现远程连接(授权法)

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

   update user set host = ’%’ where user = ’root’;

   将权限改为ALL PRIVILEGES

 代码如下    复制代码

mysql> use mysql;

Database changed

mysql> grant all privileges  on *.* to root@'%' identified by "root";

Query OK, 0 rows affected (0.00 sec)

mysql> select host,user from user;

+--------------+------+

| host         | user |

+--------------+------+

| localhost    | root |

| 192.168.1.1 | root | 

| %            | root | 

+--------------+------+

3 rows in set (0.00 sec)

这样机器就可以以用户名root密码root远程访问该机器上的MySql.

(3)、实现远程连接(改表法)

 代码如下    复制代码

use mysql;

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

这样在远端就可以通过root用户访问Mysql

如果上面办法不能解决我们可以开启MySQL远程访问权限 允许远程连接

1)、登陆mysql数据库   

 代码如下    复制代码

mysql -u root -p

查看user表

 代码如下    复制代码

mysql> use mysql;

Database changed

mysql> select host,user from user;

+--------------+------

| host         | user | 

+--------------+------+

| localhost    | root | 

| 192.168.1.1 | root | 

+--------------+------+

2 rows in set (0.00 sec)

 

   可以看到在user表中已创建的root用户。host字段表示登录的主机,其值可以用IP,也可用主机名,

   (1)有时想用本地IP登录,那么可以将以上的Host值改为自己的Ip即可。

2)、实现远程连接(授权法)

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

   update user set host = ’%’ where user = ’root’;

   将权限改为ALL PRIVILEGES

 代码如下    复制代码

mysql> use mysql;

Database changed

mysql> grant all privileges  on *.* to root@'%' identified by "root";

Query OK, 0 rows affected (0.00 sec)

mysql> select host,user from user;

+--------------+------+

| host         | user |

+--------------+------+

| localhost    | root |

| 192.168.1.1 | root | 

| %            | root | 

+--------------+------+

3 rows in set (0.00 sec)

这样机器就可以以用户名root密码root远程访问该机器上的MySql.

3)、实现远程连接(改表法)

 代码如下    复制代码

use mysql;

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

这样在远端就可以通过root用户访问Mysql




      本文转自xinrenbaodao  51CTO博客,原文链接:http://blog.51cto.com/11832904/1951408,如需转载请自行联系原作者



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
蚂蚁集团自研数据库 OceanBase 在中华财险业务系统投入使用
中华财险车险系统已经在全国 29 省成功上线蚂蚁集团自研数据库 OceanBase。
408 0
windows和linux系统下远程连接mysql
windows和linux系统下远程连接mysql
52 0
[20180302]使用find命令小错误.txt
[20180302]使用find命令小错误.txt --//上午一台机器磁盘空间爆满,腾出磁盘空间顺便清理adump目录文件,再次遇到小问题.做一个记录. --//我使用find遇到的问题还不少,链接:http://blog.
949 0
SQL使用链接服务器执行远程数据库上的存储过程
原文:SQL使用链接服务器执行远程数据库上的存储过程   --创建链接服务器 exec sp_addlinkedserver'server_tmp','','SQLOLEDB','远程服务器名或ip地址' exec sp_addlinkedsrvlogin'server_tmp','fa...
1258 0
【MyEcplise】导入项目后,会定时弹出一下错误MyEcplise tern was unable to complete your request in time.This couble happen if your project contains several large javaScr
Myecplise弹出错误如下:   错误代码: MyEcplise tern was unable to complete your request in time.This couble happen if your project contains several large javaScript libraies.
1042 0
使用 Google Analytics 跟踪 JavaScript 错误
  Google Analytics(谷歌分析)不仅仅是一个流量统计工具,你还可以用它来测量广告活动的有效性,跟踪用户多远到所需的页面流(从点击广告到购物车到结账页面)获取,并基于用户的信息设置浏览器和语言环境支持。
685 0
【spring 注解 错误】使用controller 作为后台给前台ajax交互数据出错
controller作为后台与前台的ajax进行交互,后台的方法处理完成返回一个boolean类型的值,想传给前台用来判断是否执行成功,BUT,问题来了: 1 严重: Servlet.service() for servlet rest threw exception 2 java.
729 0
21117
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载