You must SET PASSWORD before executing this statement的解决方法

2022-11-12 09:30:01
内容摘要
这篇文章主要为大家详细介绍了You must SET PASSWORD before executing this statement的解决方法,具有一定的参考价值,可以用来参考一下。 对此感兴趣的朋友,看看idc笔记做的
文章正文

这篇文章主要为大家详细介绍了You must SET PASSWORD before executing this statement的解决方法,具有一定的参考价值,可以用来参考一下。

对此感兴趣的朋友,看看idc笔记做的技术笔记!

参考前文利用安全模式成功登陆,然后修改密码,等于给MySql设置了密码。登陆进去后,想创建一个数据库测试下。得到的结果确实:ERROR 1820 (HY000): You must SET PASSWORD before executing this statement非常诡异啊,明明用密码登陆进去了,怎么还提示需要密码。参考官方的一个文档,见http://dev.mysql.com/doc/refman/5.6/en/alter-user.html。如下操作后就ok了:mysql> create database yan1;ERROR 1820 (HY000): You must SET PASSWORD before executing this statementmysql> SET PASSWORD = PASSWORD('123456');Query OK, 0 rows affected (0.03 sec)mysql> create database yan1;Query OK, 1 row affected (0.00 sec)也就是用mysql> SET PASSWORD = PASSWORD('123456');这句话重新设置一次密码!大爷的,真费劲啊。这位仁兄也遇到了相同的问题。最近新装好的mysql在进入mysql工具时,总是有错误提示:# mysql -u root -pEnter password:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)或者# mysql -u root -p password 'newpassword'Enter password:mysqladmin: connect to server at 'localhost' failederror: 'Access denied for user 'root'@'localhost' (using password: YES)'现在终于找到解决方法了。本来准备重装的,现在不必了。方法操作很简单,如下:# /etc/init.d/mysql stop# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &# mysql -u root mysqlmysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root' and host='root' or host='localhost';//把空的用户密码都修改成非空的密码就行了。mysql> FLUSH PRIVILEGES;mysql> quit # /etc/init.d/mysqld restart# mysql -uroot -pEnter password: <输入新设的密码newpassword>MySql5.6操作时报错:You must SET PASSWORD before executing this statement解决mysql> SET PASSWORD = PASSWORD('123456');Query OK, 0 rows affected (0.03 sec)mysql> create database roger;Query OK, 1 row affected (0.00 sec)也就是用mysql> SET PASSWORD = PASSWORD('123456');这句话重新设置一次密码!

注:关于You must SET PASSWORD before executing this statement的解决方法的内容就先介绍到这里,更多相关文章的可以留意

代码注释

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!