首页 > 编程知识 正文

重置root管理员密码,怎么找到自己mysql密码

时间:2023-05-04 22:06:59 阅读:161414 作者:1775

因为很久没玩数据库了,还是忘记了mysql的root密码,每次操作都重置,啪嗒啪嗒地报告错误,并记录下来。 说明重置: mysql口令实际上是更改数据库mysql下user表中的口令字段。

但是,没有密码连接怎么办?

一.启动安全免认证模式停止服务:

sudo service mysql stop 无需安全模式验证即可启动服务

sudo/usr/zydxh/mysqld _ safe-- skip-grant-tables正常启动后,可以进入步骤2。

当然我做得不好。 这里遇到了误报。

mysqld _ safe directory '/var/run/mysqld ' forunixsocketfiledon ' t exists。

名为"/var/run/mysqld "的目录不存在吗? 这个目录是做什么的? 我不知道详细情况,但我只知道在程序启动期间对这个目录读写什么。

解决方法:创建目录并修改权限。

sudo mkdir/var/run/mysqldsudochmod 777/var/run/mysqld重新启动mysql,启动成功~

二、连接服务器,修改密码的第一步成功后,无需验证与服务器的连接。

制作新终端,连接服务器:

用于mysql -u root的show databases; 查看数据库,服务器上有几个数据库。

开头mysql的密码实际上存储在名为" mysql "的数据库中,所以切换到mysql数据库。

切换到mysql数据库:

use mysql; 修改密码

在此处,根据版本执行不同的SQL语句。 根据版本的不同,存储密码的字段可能会不同。 在5.7之前的版本中,可以使用以下语句更新根口令:

pdateusersetpassword=password (123456 ) ) where user='root; 如果顺利的话,root的密码应该被修改为“123456”。 不用往下看。

但是我的mysql版本是5.7.21,所以第一次尝试的时候,这里又弄错了:

error1054(42s22 ) : unknown column ' password ' in ' field list '

表中没有密码字段,desc user; 看看指令,果然没有。

通过查看资料,我们发现5.7版中的密码保存字段已更改为上图中的“authentication_string”,然后重新输入update命令重置密码。

updateusersetauthentication _ string=password (' 123456 ' ) where user='root ';

修正成功!

三.即使重新启动mysql服务器并先关闭第一步启动的进程,命令行Ctrl Z也无法关闭进程。

先看流程:

ps -a | grep mysql

使用kill -9 pid杀死进程,启动mysql服务器即可。

sudoservicemysqlrestartmysql-uroot-p

结束。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。