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

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

使用navicat连接远程的mysql数据报错:

在这里插入图片描述

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

最简单的办法是

MySQL配置文件修改
在windows服务端MySQL文件夹下找到my.ini文件。修改或者注释掉bind-address=127.0.0.1 为 bind-address=0.0.0.0 (在MySQL 5的my.ini中未发现此项)
在Linux服务端修改
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

在这里插入图片描述

重启mysql服务
MySQL远程配置
# mysql -u用户名 -p密码 (-h端口:本机可以不写)
mysql -uroot -p123456

use mysql

# 8.0版本以上的mysql 需要先写
update mysql.user set host = '%' where user = 'root';

// MySQL8.0以下版本使用语句 %表示多有机器。
GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY 'your password'; 

// MySQL8.0以上新的语句
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your password';

# 刷新权限
flush privileges;

对于允许远程访问,有两种角色,一种是我们的root用户,还有一种是非root用户,从安全的角度(我也不知道什么角度,听别人说的,暂且相信着吧),远程访问最好不要用root用户
// 切换数据库
use mysql;

// 创建用户(user1:用户名;%:任意ip,也可以指定,root默认就是localhost;123456:登录密码)

CREATE USER 'user1'@'%' IDENTIFIED BY '123456';

// 授权,默认创建的用户权限是usage,就是无权限,只能登录而已,
//(all:所有权限,这里有select,update等等权限,可以去搜一下;
// 后面的*.*:指定数据库.指定表,这里是所有;to后面就是你刚才创建的用户)

GRANT ALL ON *.* to 'user1'@'%';

// 注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令: 

GRANT all ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

// 刷新权限
FLUSH PRIVILEGES;
然后可以查看是否已经修改成功
select user,host from user

在这里插入图片描述

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

注意
1.修改好mysql配置文件一定要重启mysql服务
2.修改好mysql远程配置一定要刷新权限
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值