安装MySQL后root用户连接localhost:3306报错1698无法登录求助
MySQL ERROR 1698 (28000) 问题解决指南
根因定位
- 首先排除路由器封禁端口的可能:本地连接localhost走的是回环网卡,流量不会经过路由器,该场景完全不影响本地登录
- root用户无需额外创建,是MySQL安装完成后默认内置的管理员账号,你提到的未执行CREATE USER的操作不是故障诱因
- 99%以上的该类报错是因为Debian/Ubuntu系系统安装的MySQL默认对
root@localhost用户启用auth_socket身份验证插件,而非密码验证模式,因此即便安装时设置了密码,用密码登录也会被拒绝 - 额外注意你执行的登录命令存在语法错误:小写
-p是密码参数,指定端口需要用大写-P,你多写了一个-p参数,正确的端口指定命令为mysql -u root -p -h localhost -P 3306
修复步骤
- 停止正常运行的MySQL服务
systemctl stop mysql - 以跳过权限验证、禁用网络的模式启动MySQL,避免其他用户远程登录
mysqld_safe --skip-grant-tables --skip-networking & - 无密码直接登录MySQL命令行
mysql - 加载权限表后修改root用户的验证规则,将下方
自定义root密码替换为你要设置的登录密码
FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '自定义root密码'; FLUSH PRIVILEGES; exit
- 杀死跳过权限模式的MySQL进程,重启正常服务
killall mysqld_safe systemctl start mysql
- 验证登录
mysql -u root -p
输入你设置的密码即可正常登录
内容的提问来源于stack exchange,提问作者bobthebuilder
相关产品推荐
相关产品推荐

