在本地连接服务器的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,连接成功。

来源:51CTO
作者:飞翔吧_Bug
链接:https://blog.csdn.net/yang254143/article/details/100782259