wss1051 发表于 2018-10-8 09:21:19

在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@'%'>  提示:如果有防火墙开启,那就必须在防火墙放行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 用户名@"%">  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 privilegeson *.* to 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 privilegeson *.* to 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

页: [1]
查看完整版本: 在windows下使用Navicat for mysql 远程连接linux系统下的 mySql数据库会提示10061、1045错误