1、软件版本
Ubuntu/Linaro:V12.04.2 Linux:V3.5.0-23-generic MySQL:V 5.7.18
2、问题的由来
在linux环境下安装V5.7以上版本的MySQL过程中,系统会自动分配一个用户密码。在首次使用MySQL时,先启动MySQL(sudo service mysql start),接着进入MySQL(mysql -uroot -p自动分配的密码),然后再进行其他操作时,比如查看数据库(show databases)会出现以下错误:
错误信息:ERROR 1820(HY000):You must resetyour password using ALTER USER statement before executing this statement.(错误:在执行这条语句之前,必须采用ALTER USER声明来重置密码)也就是说在首次使用MySQL时必须先把安装时系统随机分配的密码重置。
3、解决方法
网上关于修改MySQL密码的帖子的做法——在MySQL内依次输入以下命令:
(1) use mysql;
(2)update user set password = password("新密码") where user = 'root';
但是5.7以上版本的MySQL在输入第一条命令时就会报出“2、问题由来”中的错误。
解决方案:在MySQL内采用命令命令来修改密码。命令格式:alter user ‘用户名’ identified by ‘新密码’;。比如要把用户’root’的密码修改为’xxxxxxx’可以采用如下命令:alter user 'root'@'localhost' identified by 'xxxxxxx'; ,其中’xxxxxxx’是新密码。Query OK,表明密码修改成功。
网络上流传很广的另外一种修改密码的方法:
(1)使用MySQL:use mysql;
(2)修改密码:update user set password = password("新密码") where user = 'root';
在实际应用时会报错:ERROR 1504(42S22):Unknown column 'password' in 'field list' (字段表里没有’password’)。
错误原因:MySQL数据库中已经没有password这个字段了,把password字段改为 authentication_string即可。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务