mysql 输入密码后报错,[mysql]root用户登录mysql,输入密码后报错:Access denied for user 'root'@'localhost&#...

问题如下:

wangju@wangju-HP-348-G4:~$ mysql -u root -p

Enter password:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

解决办法: 分2步

配置mysql不用密码也能登录

重新配置mysql用户名密码

首先:配置mysql不用密码也能登录

step1:

使用find全局搜索mysql配置文件

root@wangju-HP-348-G4:/home/wangju# find / -name mysqld.cnf

/etc/mysql/mysql.conf.d/mysqld.cnf

step2:

在mysql的配置文件[mysqld]中加入下面这句话:

skip-grant-tables    

4593a9106ef1517df40db7061ee38d7e.png

作用:就是让你可以不用密码登录进去mysql。

step3:

保存修改,重新启动mysql

service mysql restart

step4:

在终端上输入mysql -u root -p,遇见输入密码的提示直接回车即可进入mysql

1728686bf738469f5c6422db39f861f1.png

然后:重新配置mysql用户名密码

step1:

进入mysql后分别执行下面三句话配置root用户密码

use mysql; 然后敲回车

update user set authentication_string=password("你的密码") where user="root"; 然后敲回车

flush privileges; 然后敲回车

结果如下:

mysql> use mysql;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> update user set authentication_string=password("admin123456") where user="root";

Query OK, 1 row affected, 1 warning (0.02 sec)

Rows matched: 2 Changed: 1 Warnings: 1

mysql> flush privileges;

Query OK, 0 rows affected (0.01 sec)

然后输入quit,退出mysql。

step2:

重新进入到mysqld.cnf文件中去把刚开始加的skip-grant-tables这条语句给注释掉。

d4e7a93ee95e21d134ffee809f9db08e.png

再返回终端输入mysql -u root -p,报错:

root@wangju-HP-348-G4:/home/wangju# mysql -u root -p

Enter password:

ERROR 1524 (HY000): Plugin 'auth_socket' is not loaded

再把刚才注释掉的skip-external-locking取消注释,然后重启mysql

执行下面的命令:

use mysql;

#切换数据库

select user,plugin from user;

#查询user表 user列,plugin列的值

#从查询结果可以看出plugin root的字段是auth_socket,把它改为mysql_native_password

update user set authentication_string=password("admin123456"),plugin='mysql_native_password' where user='root';

#更新user表plugin root

执行结果:

mysql> usemysql;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> select user,plugin from user;+------------------+-----------------------+

| user | plugin |

+------------------+-----------------------+

|root |auth_socket |

| mysql.session | mysql_native_password |

| mysql.sys | mysql_native_password |

| debian-sys-maint | mysql_native_password |

| root | mysql_native_password |

| tester | mysql_native_password |

+------------------+-----------------------+

6 rows in set (0.00 sec)

mysql> update user set authentication_string=password("admin123456"),plugin='mysql_native_password' where user='root';

Query OK, 1 row affected, 1 warning (0.00 sec)

Rows matched: 2 Changed: 1 Warnings: 1

再输入select user,plugin from user;回车,我们能看到root用户的字段改成功了。

mysql> select user,plugin from user;+------------------+-----------------------+

| user | plugin |

+------------------+-----------------------+

| root | mysql_native_password |

| mysql.session | mysql_native_password |

| mysql.sys | mysql_native_password |

| debian-sys-maint | mysql_native_password |

| root | mysql_native_password |

| tester | mysql_native_password |

+------------------+-----------------------+

6 rows in set (0.00 sec)

step3:

quit退出,再执行step3,重启mysql

结果:

再用mysql -u root -p,回车,输入密码之后,就可以登录成功了

参考文档:

标签:plugin,报错,user,mysql,password,root,native

来源: https://www.cnblogs.com/kaerxifa/p/11911234.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当你在终端上使用默认密码登录MySQL时,出现"Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password)"错误的原因是你的密码不正确。这个错误提示说明你提供的密码无法MySQL接受,导致登录被拒绝。 要解决这个问题,你可以按照以下步骤操作: 1. 打开你在创建MySQL容器时挂载的conf目录下的mysqld.cnf文件。在这个文件中,你可以找到MySQL的配置信息。 2. 在mysqld.cnf文件中查找"skip-grant-tables"这一行。如果存在这一行,将其注释掉(在行前面加上#符号),然后保存文件。 3. 重启MySQL服务,让修改生效。你可以使用以下命令重启MySQL服务: - 对于Docker容器:docker restart <容器名称> - 对于本地安装的MySQL服务器:sudo service mysql restart 4. 现在你可以使用默认密码登录MySQL。在终端中键入以下命令: mysql -u root -p 5. 当提示输入密码时,输入默认密码并按下回车键。 6. 成功登录后,你可以修改密码以避免以后再次出现登录问题。使用以下命令修改密码(将"your_new_password"替换为你想要设置的新密码): mysql> ALTER USER &#39;root&#39;@&#39;localhost&#39; IDENTIFIED BY &#39;your_new_password&#39;; 7. 修改密码后,退出MySQL并重新登录以验证新密码是否生效。 通过以上步骤,你应该能够解决"ERROR 1045 (28000): Access denied for user &#39;root&#39;@&#39;localhost&#39;"错误,并成功登录MySQL数据库。请记住,在实际操作中,确保你按照正确的格式和语法进行命令输入,以避免出现其他错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值