
出现 "1698 - Access denied for user 'root'@'192.168.10.52'" 错误,通常是因为 MySQL 的 root 用户默认采用了 "auth_socket" 认证方式,仅允许本地通过 socket 连接,不支持远程密码认证。解决方法如下:
步骤 1:修改 root 用户认证方式
登录数据库
mysql -u root -p
使用命令并更改身份验证方法以root ALTER USER
身份登录 MySQL :
% 是允许所有IP。
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密码';
FLUSH PRIVILEGES;
再为远程连接授权:
CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的新密码';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
步骤 2:重启 MySQL 服务
执行systemctl restart mysql
。
之后在 Navicat 中使用新设置的密码重新连接即可。
如果出现报错,先看是不是已经创建好root了。已经建好了,直接授权就行。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
