【Mac系統】之Mysql數據庫遇到修改數字密碼的問題(SQL語法錯誤:ERROR 1064 (42000),密碼策略等問題:ERROR 1819 (HY000))


安裝完Mysql也進行了第一次初始化密碼以及修改密碼規則(請參考文章),但是我想后續再改密碼,出現了下面幾個問題:

#SQL語句錯誤問題
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to 
your MySQL server version for the right syntax to use near '('12345678') WHERE user = 'root'' at line 1 #密碼策略問題 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

一、SQL語句錯誤問題

在網上找了很多的設置密碼的語句,發現都不適合,后來才發現,是我在設置密碼規則時動了手腳,要按照密碼規則設置的執行語句修改密碼才可以(文章內容剛剛在上面文字發了鏈接,可以參考文章里的“修改密碼規則”那塊內容)

言歸正傳,下面為網上搜的一些更新密碼的語句,由於不適合我的密碼規則,所以用不了,但不一定其他人用不了,先在此記錄下來:

UPDATE user SET Password = PASSWORD('12345678') WHERE user = 'root';

SET PASSWORD FOR 'root'@'localhost' = PASSWORD(123456);

下面是我的密碼規則,更新密碼語句,執行下面的語句就不報上面的語法錯誤了:

#下面兩種都可以修改密碼
ALTER user 'root'@'localhost' IDENTIFIED BY '12345678';
#或 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '12345678';

 

 

二、密碼策略問題

當我執行下面這兩種語句時,報:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements密碼策略問題

ALTER user 'root'@'localhost' IDENTIFIED BY '12345678';
#或 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '12345678';

 

后經幫助查到一篇文章:《ERROR 1819 (HY000): Your password does not satisfy the current policy requirements》解決此問題。

 

解決辦法:

先登錄數據庫,執行下面語句:

mysql -u root -p

password:xxx

1、查看 mysql 初始的密碼策略,
輸入下面語句,進行查看,如圖

SHOW VARIABLES LIKE 'validate_password%';

 

這個就是密碼策略!!!

關於 mysql 密碼策略相關參數;
1)、validate_password_length  固定密碼的總長度;
2)、validate_password_dictionary_file 指定密碼驗證的文件路徑;
3)、validate_password_mixed_case_count  整個密碼中至少要包含大/小寫字母的總個數;
4)、validate_password_number_count  整個密碼中至少要包含阿拉伯數字的個數;
5)、validate_password_policy 指定密碼的強度驗證等級,默認為 MEDIUM;
關於 validate_password_policy 的取值:
0/LOW:只驗證長度;
1/MEDIUM:驗證長度、數字、大小寫、特殊字符;
2/STRONG:驗證長度、數字、大小寫、特殊字符、字典文件;
6)、validate_password_special_char_count 整個密碼中至少要包含特殊字符的個數;

 

2、設置密碼的驗證強度等級(就是因為這個問題)

只要修改密碼強度等級就可以,就可以解決密碼策略問題,原因是自己的密碼“1234567”太簡單了!!!所以改LOW點!!!

執行語句:

set global validate_password.policy=LOW;

set global validate_password.policy=0;(我用的這條)

set global validate_password_policy=LOW; ==》文章里說用這個,但是我的密碼策略那個字段名稱是validate_password.policy,所以大家注意一下。

 

修改完強度等級之后,再執行:

#修改密碼長度(可有可無,隨意)
set global validate_password.length = 6;

#刷新
FLUSH PRIVILEGES;

#更改密碼成功!!!
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '12345678';

#刷新
FLUSH PRIVILEGES;


#退出
exit;

#再重新用新密碼登錄
mysql -u root -p

password:輸入新密碼

 

大功告成!!!

具體修改其他內容可以參考解決問題的文章!!!!

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

擴展其他,更新查看user表信息:

update user set authentication_string='' where user='root';

 

select user,host,authentication_string from user;

 


免責聲明!

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



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