关于数据库mysql5.7版本 登录密码password 改变为 authentication_string后修改密码/忘记密码 的实操解决经验

最近在研究如何使用python来对于mysql数据库进行操作,但是中途遇到了一个问题,由于电脑新装的mysql版本是5.7.2,且初始的mysql, user后台内的 password项 变成了 authentication_string.

1. 首先以管理员模式打开cmd

关于数据库mysql5.7版本 登录密码password 改变为 authentication_string后修改密码/忘记密码 的实操解决经验_第1张图片

2. 使用新打开的管理员身份下运行的cmd窗口输入以下代码:

mysqld --skip-grant-tables

有些同学的mysql安装目录可能不在C盘 需要切换盘符为你装mysql的那个盘 例如我的是D盘

我的文件夹目录为:D:\360Downloads\mysql-5.7.27-winx64

输入 D: 即可切换盘符 “注意:所有的代码都要用英文输入法,不然会出错,切记切记!”

关于数据库mysql5.7版本 登录密码password 改变为 authentication_string后修改密码/忘记密码 的实操解决经验_第2张图片

在切换到正确的文件夹后,在mysql文件夹内bin目录下 运行以下命令:

D:\360Downloads\mysql-5.7.27-winx64\bin>mysqld --skip-grant-tables

D:\360Downloads\mysql-5.7.27-winx64\bin>mysqld --skip-grant-tables

你可以复制我的代码中需要的部分,但是我建议还是在英文输入法下 自己用手打进去

关于数据库mysql5.7版本 登录密码password 改变为 authentication_string后修改密码/忘记密码 的实操解决经验_第3张图片

打完回车之后,这个窗口就不会动了,保持这个窗口在后台打开,再在管理员权限下重新开一个新的cmd窗口。

3. 在新窗口下,用上面切换盘符的方法,再把路径调整到你安装mysql的文件夹目录下

关于数据库mysql5.7版本 登录密码password 改变为 authentication_string后修改密码/忘记密码 的实操解决经验_第4张图片

不出意外的话,会跳出来上图红框中的内容,提示你已经成功进入mysql的操作界面了

4. 在系统自动跳出来的 mysql> 代码后面,输入show databases;(你可以复制,但是如果出现错误,建议自己在英文输入法下自己一个个打进去)

show databases;

如果你成功了,那就会出现如下界面:

关于数据库mysql5.7版本 登录密码password 改变为 authentication_string后修改密码/忘记密码 的实操解决经验_第5张图片

5. 下一步,系统会再次跳出 mysql>, 输入use mysql;(你可以复制,但是如果出现错误,建议自己在英文输入法下自己一个个打进去)

use mysql;

如果没错,会出现以下红框标出的画面:

关于数据库mysql5.7版本 登录密码password 改变为 authentication_string后修改密码/忘记密码 的实操解决经验_第6张图片

6. 此时系统文字回复数据库已经切换至mysql,此时在新一行跳出来的 mysql>,输入 show tables;(你可以复制,但是如果出现错误,建议自己在英文输入法下自己一个个打进去)

show tables;

如果没错,会出现以下红框标出的 user 的画面:

关于数据库mysql5.7版本 登录密码password 改变为 authentication_string后修改密码/忘记密码 的实操解决经验_第7张图片

7. 以下的步骤比较关键,因为我看了很多网上的教程,会让你输入:select user,host,password from user;

.意为从user这个table里去寻找 user, host 和 password的数据,但是5.7的mysql版本肯定会报错,因为就和这边文档刚开始说的一样,造成这个错误代码的原因就是 5.7版本的mysql开始,系统把password这个称呼改成了autentication_string, 所以你在输入select user,host,password from user; 命令的时候会提示你:

ERROR 1054 (42S22): Unknown column 'password' in 'field list' 找不到 password 这一项

关于数据库mysql5.7版本 登录密码password 改变为 authentication_string后修改密码/忘记密码 的实操解决经验_第8张图片

8. 那么由于没有password这一项,你也就改不了密码,改不了密码,你也就无法登陆你的mysql数据库,回到了这篇文档最初的问题。关于5.7mysql 登录密码password 改变为 authentication_string

那么,有些小伙伴可能不是刚装5.7版本的mysql,而是之前设置过密码,但是忘了。那么如何修改密码,道理是一样的。

此时在新一行跳出来的 mysql>,输入 select user,host,authentication_string from user;(你可以复制,但是如果出现错误,建议自己在英文输入法下自己一个个打进去)

select user,host,authentication_string from user;

关于数据库mysql5.7版本 登录密码password 改变为 authentication_string后修改密码/忘记密码 的实操解决经验_第9张图片

如果你的代码没错的话,会跳出上图的内容,显示了user, host, authentication_string(也就是老版本中的password)

9. 此时在新一行跳出来的 mysql>,输入 UPDATE user SET `authentication_string` = PASSWORD('root');(你可以复制,但是如果出现错误,建议自己在英文输入法下自己一个个打进去)

 UPDATE user SET `authentication_string` = PASSWORD('root');

如果你的代码没有错误的话,就会出现上图的内容文字,说明已经把`authentication_string` 更新为了用户root的 PASSWORD内容

10. 下一步就很关键了,就是最终我们要修改密码的部分,在新一行跳出来的 mysql>,输入 update user set authentication_string='123456' where user='root';(你可以复制,但是如果出现错误,建议自己在英文输入法下自己一个个打进去)

update user set authentication_string='123456' where user='root';

切记切记,你直接复制进去回车可能会出现下图中我犯过的错误,这个和你用的输入法标点符号有关系,所以建议多试几次。

关于数据库mysql5.7版本 登录密码password 改变为 authentication_string后修改密码/忘记密码 的实操解决经验_第10张图片

如果成功了的话,会出现上图红框内标出的内容。

此时,用户 root 的密码已经被改成 123456 了!!!!!

11. 想要查一下,密码是否成功修改,可以在新一行跳出来的 mysql>,输入 select user,host,authentication_string from user;(你可以复制,但是如果出现错误,建议自己在英文输入法下自己一个个打进去)

select user,host,authentication_string from user;

如果代码没错,会出现如下内容:

关于数据库mysql5.7版本 登录密码password 改变为 authentication_string后修改密码/忘记密码 的实操解决经验_第11张图片

此时,root 的登录密码已经更改为 123456 了, 我用的数据库管理软件是navicat, 在后台尝试设置好用户名和密码之后,已显示成功连接。

关于数据库mysql5.7版本 登录密码password 改变为 authentication_string后修改密码/忘记密码 的实操解决经验_第12张图片

关于数据库mysql5.7版本 登录密码password 改变为 authentication_string后修改密码/忘记密码 的实操解决经验_第13张图片

 

               以上就是这篇文档的全部内容了,如果有帮到你解决问题,码字不易,请动动小手点个赞吧,谢谢各位!

                                                                                 觉得有用,敬请打赏。:)

你可能感兴趣的:(数据库,mysql,数据库,python)