centos6 mysql密码_CentOS6.5下修改MySQL密码
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
今天在MySql5.6操作時報錯: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:
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?UPDATE?privilege for the?mysqldatabase. When the?read_only?system variable is enabled,?ALTER USER?additionally requires the?SUPERprivilege.
Warning
ALTER USER?was added in MySQL 5.6.6. However, in 5.6.6,?ALTER USER?also sets the?Password?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?or?CURRENT_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 the?mysql.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
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)
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_passwords?to 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.
總結
以上是生活随笔為你收集整理的centos6 mysql密码_CentOS6.5下修改MySQL密码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 导出表数据到另一张表_yz-
- 下一篇: linux cmake编译源码,linu