gogogo
管理员
管理员
  • UID25
  • 粉丝0
  • 关注0
  • 发帖数1384
阅读:4097回复:0

mysql 修改登录用户名和密码 后不能登录

楼主#
更多 发布于:2020-04-03 12:11
之前用mysqlamdmin -uroot -p旧密码 password新密码  命令修改密码后,就直接退出了。
然后重新打开页面登录时,用旧密码和新密码均报1045错误。
那是因为修改后没有刷新权限:


>flush privileges;
>exit



具体过程:
(1)修改数据库用户名
首先我们需要先登录自己的数据库,然后输入一条下面的语句
select user from mysql.user;
这条语句是用来显示目前已有的用户名,回车后,结果如下:

mysql> select user from mysql.user;
+------------------+
| user             |
+------------------+
| mysql.infoschema |
| mysql.session    |
| mysql.sys        |
| root             |
+------------------+




4 rows in set (0.00 sec)
你会发现,除了你的默认root外,还有几个其他的用户名,这是系统自带的,我们不用在意他们,但是也不要乱动。

mysql.infoschema:是MySQL自带的,它提供了访问数据库元数据的方式
mysql.sys:用于 sys schema中对象的定义。使用 mysql.sys 用户可避免DBA重命名或者删除root用户时发生的问题。该用户已被锁定,客户端无法连接。
mysql.sessio:插件内部使用来访问服务器。该用户已被锁定,客户端无法连接。
输入以下语句进入数据库

use mysql
然后输入update user set user =’新用户名’ where user =’旧用户名’,例如:

update user set user =’Jack’ where user =’root’;
改完以后,再查一遍就会发现,用户名已经改了


mysql> update user set user ='Jack' where user ='root';
Query OK, 1 row affected (0.39 sec)
Rows matched: 1  Changed: 1  Warnings: 0
 
mysql> select user,host from mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| Jack             | localhost |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)
但是,
当我们下一次用新用户名登录时,会发现无法登陆,这是因为我们没有刷新权限,因此,我们还需要最后一步,刷新权限,运用 flush privileges语句来执行mysql> flush privileges;
Query OK, 0 rows affected (0.29 sec)
这样数据库的用户名就成功修改完成了。



(2)修改数据库的登录密码
我之前在修改数据库密码时,在网上搜了很多方法,但是,最后都会提示有错误,无法修改登录密码,经过多次尝试以后,最终成功的修改了密码,具体方法如下:
首先输入自己的用户名与原始密码进入数据库
然后使用如下语句来修改密码

mysql> alter user 'root'@'localhost' identified by 'youpassword';
其中root为使用者的用户名,youpassword为要修改的新密码,修改完以后,继续刷新一次数据库,就可以使用自己修改过得密码登录了,便捷了许多。
游客


返回顶部