阅读:4016回复:0
mysql 修改登录用户名和密码 后不能登录
之前用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为要修改的新密码,修改完以后,继续刷新一次数据库,就可以使用自己修改过得密码登录了,便捷了许多。 |
|