开发者社区> 问答> 正文

linux mysql,数据库报错

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)

展开
收起
python小菜菜 2020-06-01 19:56:56 720 0
1 条回答
写回答
取消 提交回答
  • "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字段


    ######引号去掉######试过不可以######mysql -uroot -p######不要直接写密码,楼上是对的######试了 不可以######

    update user set Password = PASSWORD("root") where user='root';

    flush privileges;

    ######原来就是这么做的######恭喜你, 密码错了 . ######没搞明白,命令还在 设置的明明白白的密码试验就是不成功######重置一下。######

    引用来自“都哑”的评论

    重置一下。

    使用快照恢复了一下,重新安装一下好了

    第一次使用mysqladmin -u root password "" 修改密码没有成功,后来采用安全模式启动才修改成功的,而这次是直接成功的



    ######服务起了没?改密码flush privileges执行了吗?######这么基本的错误还是没有犯得" ![image.png](https://ucc.alicdn.com/pic/developer-ecology/c8f0b65de4bb42af90da7dd1964b9828.png)
    2020-06-01 19:57:03
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载