gpt4 book ai didi

mysql - 通过 Shell 更新 Root 密码

转载 作者:行者123 更新时间:2023-11-29 23:39:12 25 4
gpt4 key购买 nike

在 shell(.sh 文件)中,我尝试更新用户“root”的 MYSQL 密码。

目前我有这个,这是安全且正确的方法吗?我不需要提示。

我还想知道“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 'root@localhost' = PASSWORD('secret');"
sudo mysql --user=$USER --password=$PASS -e "SET PASSWORD FOR 'root@127.0.0.1' = PASSWORD('secret');"
sudo mysql --user=$USER --password=$PASS -e "SET PASSWORD FOR 'root@::1' = PASSWORD('secret');"
#Drop the Any User
sudo mysql --user=$USER --password=$PASS -e "DROP USER ''@'localhost';"

更新

考虑到 tadman 和 b600 的 react 。

那么这样的事情是个好主意吗?

防止密码出现在 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 'root@localhost' = PASSWORD(password);
SET PASSWORD FOR 'root@127.0.0.1' = PASSWORD(password);
SET PASSWORD FOR 'root@::1' = PASSWORD(password);

最佳答案

我建议您以特权用户身份在本地计算机上生成密码哈希,并将哈希传递到密码更改命令中。

根据this page mysql中使用的密码哈希是SHA1,您可以使用以下方式生成它:

echo -n password | sha1sum | awk '{print toupper($1)}'

此外,根据 http://dev.mysql.com/doc/refman/5.1/en/set-password.html ,您可以使用

'SET PASSWORD FOR 'user@domain' 'PASSWORD HASH GOES HERE' '

就我个人而言,我根本不喜欢在命令行上使用明文密码,因为非特权用户可能会通过 ps/ptree/pstree 命令看到密码。

关于mysql - 通过 Shell 更新 Root 密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26265235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com