MySQL远程链接问题

发布于 2024-06-10  21 次阅读


在本地远程云服务器的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,把它删除即可。

连接成功!真不容易啊

人生の意味は平凡ですか、それとも素晴らしいですか?
最后更新于 2024-06-10