在shell(.sh文件)中,我試圖更新用戶「root」的MYSQL密碼。通過Shell更新根密碼
目前我有這個,這是安全的和正確的方式來做到這一點? 我不想提示。
我也想知道「mysqladmin」和「mysql」的賬戶是否相同。
#Variables for User and Pass
USER="root"
PASS="test"
mysqladmin -u root password $PASS
#Set Root User Password for all Local domains
sudo mysql --user=$USER --password=$PASS -e "SET PASSWORD FOR '[email protected]' = PASSWORD('secret');"
sudo mysql --user=$USER --password=$PASS -e "SET PASSWORD FOR '[email protected]' = PASSWORD('secret');"
sudo mysql --user=$USER --password=$PASS -e "SET PASSWORD FOR '[email protected]::1' = PASSWORD('secret');"
#Drop the Any User
sudo mysql --user=$USER --password=$PASS -e "DROP USER ''@'localhost';"
更新
考慮到tadman和B600的反應。
所以像這樣的東西會是一個好主意?
防止密碼將顯示在shell歷史記錄中。
# bootstrap.sh
USER="root"
PASS="test"
sudo mysqladmin -u root password $PASS
sudo mysql --user=$USER --password=$PASS -e < /tmp/users.sql
rm -f /tmp/users.sql
# users.sql
SET @password = secret;
DELETE * FROM mysql.user WHERE users IS NOT 'root';
SET PASSWORD FOR '[email protected]' = PASSWORD(password);
SET PASSWORD FOR '[email protected]' = PASSWORD(password);
SET PASSWORD FOR '[email protected]::1' = PASSWORD(password);
'sudo -s'允許您在子shell中運行多個命令,可能會清理一下,或者創建一個輔助腳本來重新分配您可以使用'sudo'運行一次的所有密碼。 – tadman 2014-10-08 20:06:50