(現在 MySQL 改為 MariaDB,但指令大致相同)
雖然強度高的密碼常常會要求包含特殊符號,但是有時候包含特殊符號的密碼卻會出問題。
例如 & 這個符號。
我曾經有一組密碼是 wC&y3t75z9
剛裝完 CentOS + MariaDB, 執行
# mysqladmin -u root password 'wC&y3t75z9'
無錯誤訊息,通過。
隨便改個密碼再試試
# mysqladmin -u root password 'xxx'
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
已經不能設定了,表示密碼已設定。
嘗試登入
# mysql -u root -pwC&y3t75z9
[2] 8012
-bash: y3t75z9: command not found
系統把 & 當成指令中斷的意思,前面的執行完,接著要執行 y3t75z9 這個指令。於是報錯。
但是
# mysql -u root -p
Enter password: (貼上密碼)
MariaDB [(none)]> (登入成功)
所以如果有特殊符號,登入的指令加上引號比較好
# mysql -u root -p'wC&y3t75z9'
附上變更密碼的方式
互動式詢問重設密碼
# mysql_secure_installation
登入 MariaDB 之後變更
MariaDB [(none)]>
UPDATE mysql.user SET password=password('a%2Tpw$bYk43') WHERE user='root';
或是
MariaDB [(none)]>
UPDATE mysql.user SET password=password('a%2Tpw$bYk43') WHERE user='root' AND host='localhost';
MariaDB [(none)]>
UPDATE mysql.user SET password=password('a%2Tpw$bYk43') WHERE user='root' AND host='%';
沒有留言:
張貼留言