在linux安裝mysql重啟提示You must SET PASSWORD before executing this statement的解決方法


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM