【发布时间】:2012-01-16 22:36:47
【问题描述】:
以下内容会将数据库从远程机器(以及 gzip)转储到我的机器上:
ssh root@foo.com "mysqldump -u root -p db_name | gzip -c" > dn_name.sql.gz
为什么主机密码隐藏正确但是mysql的密码输入是明文?
谢谢:)。
【问题讨论】:
以下内容会将数据库从远程机器(以及 gzip)转储到我的机器上:
ssh root@foo.com "mysqldump -u root -p db_name | gzip -c" > dn_name.sql.gz
为什么主机密码隐藏正确但是mysql的密码输入是明文?
谢谢:)。
【问题讨论】:
因为如果您在 shell 中以非交互方式输入密码,则进程树中的其他用户始终可以看到它。
如果您以 root 身份运行该进程,那么 root 用户本身应该足够安全,因此您应该为 root 用户提供不需要密码的转储。
另一种选择是在主目录中创建一个.my.cnf 文件,使其只能由root (chmod 600) 读写。
以下是上述.my.cnf文件的内容:
[mysqldump]
user = mysqluser
password = secret
这样用户和密码应该自动输入,不会被泄露。
【讨论】:
/usr/local/etc/myscript.cnf),并以--defaults-extra-file=/usr/local/etc/myscript.cnf 开头的mysql* 命令引用它。