mysql5.7 auth_socket 导致 Access denied for user ‘root‘@‘localhost‘

  1. 登录mysql后,分析存储登录信息的user表,分析下为何root之前登录失败。

use mysql

show tables;

select host,user,authentication_string,plugin from user;

不难看出,root这个用户的密码串为空,校验plugin方式为“auth_socket”,查阅mysql官方文档(https://dev.mysql.com/doc/refman/5.7/en/socket-pluggable-authentication.html#socket-pluggable-authentication-usage),

对 auth_socket 校验方式的说明如下:

auth_socket方式下,client端通过socket方式访问mysql,server端通过socket file的方式校验,对client端的username进行校验即可,也就是说,这种方式不是本地密码登录使用的。

因此,将该方式修改为“mysql_native_password”,并配置root的登录密码,即可使用root用户本地密码的方式进行mysql访问。

ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘test’;

当您在MySQL 8.1中尝试使用用户'root'@'localhost'登录时,可能会遇到"Access denied"错误。这通常是因为默认情况下,MySQLroot用户使用了auth_socket插件进行验证,该插件只允许本地连接。 要解决此问题,您可以按照以下步骤更改root用户的身份验证方式: 1. 打开MySQL命令行或任何MySQL客户端。 2. 使用以下命令以root用户身份登录MySQL: ``` mysql -u root -p ``` 3. 输入您当前的root密码以登录。 接下来,您可以选择执行以下两种方法之一: 方法一:使用ALTER USER命令更改root用户的身份验证方式: 4. 在MySQL命令行中,使用以下命令更改root用户的身份验证方式,并设置一个新密码: ``` ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new-password'; ``` 请将'new-password'替换为您想要设置的新密码。 方法二:使用UPDATE语句手动更改root用户的身份验证方式: 4. 在MySQL命令行中,使用以下命令更改root用户的身份验证方式,并设置一个新密码: ``` UPDATE mysql.user SET authentication_string=PASSWORD('your-password'), plugin='mysql_native_password' WHERE user='root'; ``` 请将'your-password'替换为您想要设置的新密码。 5. 执行以下命令以使更改生效: ``` FLUSH PRIVILEGES; ``` 现在,您应该能够使用新密码成功登录MySQLroot用户。请确保将'your-password'替换为您实际设置的新密码。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [mysql连接时出现ERROR1698(28000):Access denied for user root@localhost错误解决方法](https://blog.csdn.net/qq_42393859/article/details/120527739)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [解决mysql连接Error 1698: Access denied for userroot‘@‘localhost‘ 问题](https://blog.csdn.net/temptationnnnn/article/details/130822908)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值