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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

问题:使用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,如需转载请自行联系原作者



相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
17天前
|
关系型数据库 MySQL Linux
MySQL数据库下载安装教程(Windows&Linux)
本文档详细介绍了MySQL的安装步骤,包括安装前的准备工作、下载安装包、Windows和Linux系统下的具体安装流程,以及如何配置MySQL服务、设置环境变量、启动服务和连接数据库等关键操作。
|
1月前
|
Android开发 数据安全/隐私保护 虚拟化
安卓手机远程连接登录Windows服务器教程
安卓手机远程连接登录Windows服务器教程
60 4
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
140 2
|
2月前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
87 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
2月前
|
Java 关系型数据库 MySQL
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
这篇文章是关于如何使用Spring Boot框架通过JdbcTemplate操作MySQL数据库的教程。
77 0
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
|
2月前
|
弹性计算 安全 网络安全
阿里云国际版无法远程连接Windows服务器的解决方法
阿里云国际版无法远程连接Windows服务器的解决方法
|
2月前
|
Oracle 关系型数据库 MySQL
Mysql(1)—简介及Windows环境下载安装
MySQL 是一个流行的关系型数据库管理系统(RDBMS),基于 SQL 进行操作。它由瑞典 MySQL AB 公司开发,后被 Sun Microsystems 收购,现为 Oracle 产品。MySQL 是最广泛使用的开源数据库之一,适用于 Web 应用程序、数据仓库和企业应用。
64 2
|
2月前
|
弹性计算 数据安全/隐私保护 Windows
阿里云国际版无法远程连接Windows服务器的排查方法
阿里云国际版无法远程连接Windows服务器的排查方法
|
2月前
|
关系型数据库 MySQL Linux
Navicat 连接 Windows、Linux系统下的MySQL 各种错误,修改密码。
使用Navicat连接Windows和Linux系统下的MySQL时可能遇到的四种错误及其解决方法,包括错误代码2003、1045和2013,以及如何修改MySQL密码。
277 0
|
2月前
|
弹性计算 安全 关系型数据库
阿里云国际版远程连接Windows系统的ECS服务器时提示协议错误
阿里云国际版远程连接Windows系统的ECS服务器时提示协议错误
下一篇
DataWorks