mysql密碼更改不瞭解決方法

來源:互聯網
上載者:User

標籤:mysql 密碼修改問題

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; 
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement 
mysql> SET PASSWORD = PASSWORD(‘123456‘); 
Query OK, 0 rows affected (0.03 sec) 

mysql> create database yan1; 
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‘ 
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‘);這句話重新設定一次密碼!

如果 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

reboot試試看

===========================

13.7.1.1 ALTER USER Syntax
ALTER USER user_specification [, user_specification] ...user_specification:    user PASSWORD EXPIRE

The ALTER USER statement modifies MySQL accounts. An error occurs if you try to modify a nonexistent account.

To use ALTER USER, you must have the global CREATE USER privilege or the UPDATEprivilege for the mysql database. When the read_only system variable is enabled,ALTER USER additionally requires the SUPER privilege.

Warning

ALTER USER was added in MySQL 5.6.6. However, in 5.6.6, ALTER USER also sets thePassword column to the empty string, so do not use this statement until 5.6.7.

Each account name uses the format described in Section 6.2.3, “Specifying Account Names”. If you specify only the user name part of the account name, a host name part of ‘%‘ is used. It is also possible to specify CURRENT_USER orCURRENT_USER() to refer to the account associated with the current session.

For each account, ALTER USER expires its password. For example:

ALTER USER ‘jeffrey‘@‘localhost‘ PASSWORD EXPIRE;

Password expiration for an account affects the corresponding row of themysql.user table: The server sets the password_expired column to ‘Y‘.

A client session operates in restricted mode if the account password has been expired. In restricted mode, operations performed within the session result in an error until the user establishes a new account password:

mysql> SELECT 1;ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

As of MySQL 5.6.8, this restricted mode of operation permits SET statements, which is useful if the account password has a hashing format that requires old_passwordsto be set to a value different from its default before using SET PASSWORD.

It is possible for an administrative user to reset the account password, but any existing sessions for the account remain restricted. A client using the account must disconnect and reconnect before statements can be executed successfully.

Note

It is possible to “reset” a password by setting it to its current value. As a matter of good policy, it is preferable to choose a different password.



本文出自 “聖騎士控魔之手” 部落格,請務必保留此出處http://wutengfei.blog.51cto.com/10942117/1931488

mysql密碼更改不瞭解決方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.