centos 6.5下安装mysql,起始root没有密码,进入mysql后,执行update user set password="root" where user="root";执行完成提示成功,刷新权限后退出重新登录,使用mysqladmin -u root -p "root"登录不了。。。
![image.png](https://ucc.alicdn.com/pic/developer-ecology/1524960ef29f4ce89755304825056cd8.png)"mysql本身提供了修改密码的语句 set password,你可以在mysql控制台用help指令看这个命令怎么用。也可以用mysqladmin工具修改密码。
user表的密码是加密保存的,加密方式使用的是password()函数。
如果已经登录不了了,在配置文件中[mysqld]一节添加skip-grant-tables,或者关掉mysql服务,使用命令./mysqld --default-file=/etc/my.cnf --skip-grant-tables & 启动mysql服务器。
直接使用mysql连接后(不需要-u -p),使用语句(用户名和主机名看个人需要)修改密码(skip配置启动无法使用用户账户相关指令,只能改表),注意这里调用了password函数。
update user set password = password('root') where user = 'root' and host = 'localhost';
修改后,退出,重启mysql服务器即可(如果改了配置文件,注意要改回来)。
这个方法针对5.6以前的mysql,5.7以后user表有调整,password字段改为authentication_string字段
update user set Password = PASSWORD("root") where user='root';
flush privileges;
使用快照恢复了一下,重新安装一下好了
第一次使用mysqladmin -u root password "" 修改密码没有成功,后来采用安全模式启动才修改成功的,而这次是直接成功的
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。