在本地远程云服务器的MySQL时报1045 - Access denied for user ‘root‘@‘xxx‘ (using password: YES)错误。
远程用户没有连接授权,进行授权:
GRANT ALL PRIVILEGES ON *.* TO 'mysql用户名'@'%' IDENTIFIED BY 'mysql密码' WITH GRANT OPTION;
发现报错:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY 'root@123456' WITH GRANT OPTION' at line 1
原因是MySQL 8.0版本以后,不再支持在GRANT语句中直接指定密码,并且WITH GRANT OPTION也需要通过单独的语句来设置。因此,需要分别执行两条SQL语句来完成权限授权和设置密码:
(1)首先,使用以下语句授予’root’@'%'用户所有权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
发现又报错了:
ERROR 1410 (42000): You are not allowed to create a user with GRANT
原因是从 MySQL8开始,不再能够(隐式地)使用 GRANT 命令创建用户。改为使用 CREATE USER,后跟 GRANT 语句:
mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'PASSWORD';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
完成!
然后Navicat远程ssh连接报错:

原因是known_hosts文件的原因:
文件在C:\Users\你的用户名\.ssh,把它删除即可。

连接成功!真不容易啊
Comments NOTHING