linux中mysql报错1045_在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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: navicat连接LinuxMySQL1045可能是因为以下原因之一: 1. 用户名或密码错误:请确保您使用正确的用户名和密码登录MySQL。如果您不确定,请在终端尝试登录MySQL并尝试更改密码。 2. 权限问题:请检查您的MySQL用户是否具有足够的权限来连接MySQL。您可以使用以下命令来检查: ``` mysql> show grants for 'your_user'@'your_host'; ``` 3. 防火墙设置问题:请确保您的Linux服务器上的防火墙未阻止Navicat连接MySQL。请检查您的防火墙设置并确保允许MySQL连接。 4. MySQL配置问题:请检查您的MySQL配置文件并确保已启用远程连接。 希望这些解决方法能够帮助您解决问题。 ### 回答2: navicat连接linuxmysql1045是因为连接参数的用户名或密码输入错误,导致无法验证身份。解决这个问题的方法有以下几种: 1. 检查用户名和密码是否正确:在navicat连接参数确认所使用的用户名和密码是否与Linux上的MySQL配置相匹配。确保用户名和密码的大小写是否一致。 2. 检查MySQL是否允许远程连接:在LinuxMySQL配置文件,通常是/etc/mysql/my.cnf,找到bind-address项,并将其注释或设置为0.0.0.0,以允许其他主机远程连接。 3. 检查防火墙设置:确保Linux的防火墙或其他安全软件没有阻止从navicat连接MySQL的访问。可以临时关闭防火墙进行测试,或者配置防火墙允许MySQL连接端口(默认为3306)的访问。 4. 检查MySQL授权表:连接LinuxMySQL服务器,使用正确的用户名和密码登录MySQL,执行命令SHOW GRANTS FOR 'username'@'localhost';(将username替换为实际的用户名)来查看该用户是否具有从navicat连接MySQL的权限。 5. 重置MySQL密码:如果以上方法都无效,可以尝试重置MySQL用户的密码。在MySQL执行命令SET PASSWORD FOR 'username'@'localhost' = PASSWORD('newpassword');(将username替换为实际的用户名,newpassword替换为新的密码)来重置密码,然后使用新密码尝试连接。 通过以上方法,应该能够解决navicat连接LinuxMySQL1045的问题,使连接成功。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值