MySQL远程数据库异常

匿名 (未验证) 提交于 2019-12-02 22:06:11

在本地连接服务器的mysql时,报2003 - Cant't connect to MySQL server on 'ip'(10060 "Unknown error")错误。

经过网上查阅资料,是端口问题

解决方案:

再次登录,报另一种错误:

1130 is not allowed to connect to this MySql server

解决方案:

运行命令:mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

eg:mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY 'root' WITH GRANT OPTION;

用户名和密码、IP换成自己的

但因为我是用的是mysql8 ,又出现了:

查询mysql具体版本

SELECT @@VERSION
1
问题分析:mysql版本8.0.13,在给新用户授权时,发生了变化:


1
出错的语句:


1
修正后的语句:分开三次执行

#创建账户

#赋予权限,with grant option这个选项表示该用户可以将自己拥有的权限授权给别人
grant all privileges on *.* to 'root'@'172.16.10.203' with grant option

#改密码&授权超用户,flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里
flush privileges;

原因分析 :此版的的mysql版本把将创建账户和赋予权限分开了。

创建账户::create user ‘用户名’@‘访问主机’ identified by ‘密码’;
赋予权限:grant 权限列表 on 数据库 to ‘用户名’@‘访问主机’ ;
with grant option这个选项表示该用户可以将自己拥有的权限授权给别人

用navicat 连接发现报

Mysql 8连接报错 2059 - Authentication plugin 'caching_sha2_password' cannot be loaded:

使用Navicat 12远程连接Mysql 8.0.11时会提示如下报错信息,从错误信息可知caching_sha2_password不能加载。

以上报错是由于目前已有的客户端连接软件还不支持Mysql8新增加的加密方式caching_sha2_password,所以我们需要修改用户的加密方式,将其改为老的加密验证方式。

大安装Mysql数据库的主机上登录Mysql对应的用户,上面连接时用的用户为root,所以我们登录root用户。

执行命令

use mysql;

select user,plugin from user where user='root';

可以看到当前用户的加密方式为caching_sha2_password

执行命令

alter user 'root'@'%' identified with mysql_native_password by 'Admin@123';

将用户的加密方式改为mysql_native_password。

执行命令flush privileges使权限配置项立即生效。

再次尝试连接Mysql,连接成功。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!