利用安全模式成功登錄,而後修改密碼,等於給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');這句話從新設置一次密碼!就搞定了。