利用安全模式成功登录,而后修改密码,等于给MySql设置了密码。登录进去后,想查询全部存在的数据库测试下。获得的结果确实:html
ERROR 1820 (HY000): You must SET PASSWORD before executing this statementmysql
很是诡异啊,明明用密码登录进去了,怎么还提示须要密码。
参考官方的一个文档,见http://dev.mysql.com/doc/refman/5.6/en/alter-user.html。以下操做后就ok了: sql
mysql> show databases;
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
mysql> SET PASSWORD = PASSWORD('123456');
Query OK, 0 rows affected (0.00 sec)数据库
mysql> show databases;
5 rows in set (0.00 sec)安全
也就是用mysql> SET PASSWORD = PASSWORD('123456');这句话从新设置一次密码!哎,搞得真费劲啊。工具
有的童鞋也会遇到以下问题:测试
最近新装好的mysql在进入mysql工具时,老是有错误提示: ui
# mysql -u root -p
Enter 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' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)' this
如今终于找到解决方法了。原本准备重装的,如今没必要了。
方法操做很简单,以下:
# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> 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 -p
Enter password: <输入新设的密码newpassword> rest
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');这句话从新设置一次密码!就搞定了。