MySQLDump - 我可以用 -p 或 --password 输入密码吗?

MySQLDump - 我可以用 -p 或 --password 输入密码吗?

我有一个装有 MySQL 的 Ubuntu 服务器。

在命令行上,这有效

  mysqldump -u root -p paydaydebt

(然后我必须手动输入密码)

在命令行上,这些不起作用:

mysqldump -u root -p{password} paydaydebt 
mysqldump -u root --password={password} paydaydebt

我可以用 -p 或 --password 输入密码吗?

答案1

你应该不是。在命令行中输入的密码是邪恶的,因为每个发出ps或 的人都可以看到它top

推荐的方式是在单独的文件中指定密码,然后添加命令行开关--defaults-extra-file=/etc/mysql/mysqlpassword.cnf

然后mysqlpassword.cnf包含(仅):

[mysqldump]
# The following password will be sent to mysqldump 
password="ThisIsThePassword"

确保此文件只有执行mysqldump(最好root)的用户可读。

答案2

不要在 -p 和传递给 mysqldump 的密码之间留空格。如果在密码中留了空格,则密码将被解释为要执行操作的数据库的名称。

mysqldump -uroot -pPassword dbase

将转储数据库 dbase

mysqldump -uroot -p Password dbase

会要求输入密码并尝试转储数据库密码。

但是正如 mailq 所说,您应该避免在命令行上使用密码。

答案3

此外邮件队列答案:--defaults-extra-file=/etc/mysql/mysqlpassword.cnf 必须是命令中的第一个选项。例如:

mysqldump --defaults-extra-file=/etc/mysql/mysqlpassword.cnf -u root paydaydebt

答案4

你的 mysql 版本是什么?通常,以下语法应该可以正常工作:

mysqldump -uroot -p'ThisIsThePassword' mysql

将密码放在 ' 之间,以避免 shell 解析特殊字符或以其他方式转义它们。如果这不起作用,请尝试改用“”。

相关内容