mysql密碼更改不了解決方法
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
今天在MySql5.7操作時報錯:You must SET PASSWORD before executing this statement解決方法,需要的朋友可以參考下
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;
mysql> SET PASSWORD = PASSWORD('123456');
Query OK, 0 rows affected (0.03 sec)
Query OK, 1 row affected (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'
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> create database roger;
也就是用mysql> SET PASSWORD = PASSWORD('123456');這句話重新設定一次密碼!
如果 MySQL 正在運作,首先殺之: killall -TERM mysqld。
運作mysqld_safe --skip-grant-tables &
如果此時不想被遠端連接配接:mysqld_safe --skip-grant-tables --skip-networking &
使用mysql連接配接server
更改密碼:update mysql.user set authentication_string=password('123qwe') where user='root' and Host = 'localhost';
*特别提醒注意的一點是,新版的mysql資料庫下的user表中已經沒有Password字段了
而是将加密後的使用者密碼存儲于authentication_string字段
mysql> flush privileges;
mysql> quit;
修改完畢。重新開機
killall -TERM mysqld。
mysqld_safe &
然後mysql就可以連接配接了
但是此時操作似乎功能不完全,還要alter user...
alter user 'root'@'localhost' identified by '123';
網文說醬紫也可以:set password for 'root'@'localhost'=password('123');
cp mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig --add mysql
mysql> SET PASSWORD = PASSWORD('new_password');
Query OK, 0 rows affected (0.01 sec)
mysql> SELECT 1;
+---+ | 1 | +---+ | 1 | +---+
1 row in set (0.00 sec)