MySQLDump – 有没有什么办法可以用-p或–passwordinput密码?

我有一个MySQL的Ubuntu服务器。

在命令行上,这是有效的

mysqldump -u root -p paydaydebt 

(然后我必须手动input密码)

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

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

有没有什么办法可以用-p或–passwordinput密码?

你不应该。 鉴于密码在命令行是邪恶的,因为每个人都可以看到pstop

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

mysqlpassword.cnf然后包含(仅):

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

确保这个文件只对执行mysqldump的用户可读(最好是root )。

不要在你传递给mysqldump的-p和密码之间留一个空格。 如果你在密码中input一个空格,将被解释为一个数据库的名字来执行。

 mysqldump -uroot -pPassword dbase 

会转储数据库的数据库

 mysqldump -uroot -p Password dbase 

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

但是,mailq说,你应该避免在命令行上使用密码。

如果您的密码包含特殊字符,则必须使用反斜杠进行转义。

你的mysql版本是什么? 通常情况下,下面的语法应该工作得很好:

 mysqldump -uroot -p'ThisIsThePassword' mysql 

在密码之间join密码以避免特殊的字符被shellparsing或以其他方式转义。

除了mailqs回答:–defaults-extra-file = / etc / mysql / mysqlpassword.cnf必须是命令中的第一个选项。 例:

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