mysql拒绝连接

出现 "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;
相关推荐
kirs_ur1 小时前
ECC & LDPC — SSD 的数据卫士
服务器·数据库·性能优化
是三一seven1 小时前
Sql注入基础
数据库·安全·网络安全
Sirens.2 小时前
MySQL表设计进阶-约束范式连接索引与事务
android·数据库·mysql
字节跳动开源3 小时前
火山引擎开源 Agent 驱动的搜索自迭代技术
数据库·开源·agent
Oo大司命oO5 小时前
藏在正则表达式里的陷阱
数据库·mysql·正则表达式
_oP_i6 小时前
mysql统计数据库使用存储大小
数据库
会编程的土豆6 小时前
MySQL 入门:库、表、行、主键是什么
linux·数据库·网络协议·http
jjjava2.06 小时前
系统日志:从入门到精通的完整指南
网络·数据库
写代码的强哥7 小时前
云原生数据库与传统数据库相比“新”在哪里
数据库·云原生·架构