首先更改插件然后设置密码将不起作用,它将再次回退到auth_socket。 ALTERUSER'root'@'localhost'IDENTIFIEDWITHmysql_native_passwordBY'test'; 以上参考:
发现一切都正常,再检查 plugin 字段,发现只有 root 用户是 auth_socket ,其它的用户都是 mysql_native_password,问题可能就出在这儿。 mysql> select user,host,plugin from mysql.user;+---+---+---+| user | host | plugin |+---+---+---+| lisi | % | mysql_native_password || mysql.sessio...
查看一下user表,错误的起因就是在这里, root的plugin被修改成了auth_socket,用密码登陆的plugin应该是mysql_native_password mysql> select user, plugin from mysql.user; +---+---+ | user | plugin | +---+---+ | root | auth_socket | | mysql.sys | mysql_native_password | | dev | mysql_...
SELECT `host`,`user`,`plugin` FROM mysql.user WHERE `user`='root'AND `host`='localhost'; 返回结果为: auth_socket 结果分析: 关于密码验证插件 auth_socket:1.这种验证方式不要求输入密码,即使输入了密码也不验证。2.只能用 UNIX 的 socket 方式登陆,只能本地登陆。3.操作系统的用户和 MySQL 数据库...
对于MySQL 8.0 版本及以上,root 用户默认使用了 “auth_socket” 插件进行认证。为了实现多重认证登录,我们需要为 root 用户设置一个默认的认证插件,比如使用 “mysql_native_password” 插件。 执行以下 SQL 命令来修改 root 用户的认证插件: ALTERUSER'root'@'localhost'IDENTIFIEDWITHmysql_native_passwordBY'your_...
ERROR 1698 (28000): Access denied for user 'root'@'localhost' 原因:是因为auth_socket的验证类型引起的。 解决方法: 1、通过sudo进入mysql(Ubuntu默认sudo不需要密码就可以进入) ubuntu@ubuntu:~$sudo mysql 2、进入mysql库(如果密码为空不需要1步,直接进入2步) ...
root用户在使用auth_socket插件 我们让他用mysql_native_password mysql> USE mysql; mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='你的用户名'; mysql> FLUSH PRIVILEGES; mysql> exit; $ sudo service mysql restart # 重启
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('xxxxx'); 如果修改完还是可以没有密码登录。 查看身份验证插件 SELECT host, user, plugin FROM mysql.user WHERE user='root'; 如果插件是auth_socket,则可能允许通过系统用户登录而不需要密码。您可以更改为mysql_native_password插件: ...
Access denied for user 'root@localhost' (using password:NO) 在此之后我尝试: mysql -u root -p 但是,它要求我没有密码。 更新:正如Bozho建议的那样,我做了以下事情: 我从Windows服务中停止了MySQL服务 开通CMD 将位置更改为c:\ program files \ mysql \ bin 执行以下命令 mysqld --defaults-file="C:...
第一步,把root账户的plugin列从“auth_socket”改成“mysql_native_password”。 顾名思义,就是把root账户的系统认证变成mysql密码认证。因为刚才已经选定mysql库了,直接用update命令就好: update user set plugin='mysql_native_password' where user='root'; ...