利用安全模式成功登陆,然后修改密码,等于给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> 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工具时,总是有错误提示:
# 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)'
现在终于找到解决方法了。本来准备重装的,现在不必了。 方法操作很简单,如下: # /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>
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');这句话重新设置一次密码!就搞定了。 |