3

我正在尝试使用 mysqldump 为我的数据库拍摄快照,但是 root 密码中有括号,这会导致我出现问题。据我所知,我可以用 [] 包围密码以使其正常工作,但我仍然遇到问题。

格式化这个的正确方法是什么?

mysqldump -u root -p[(pwdwithbrackets)] databasename > file.sql
-bash: syntax error near unexpected token `('
4

3 回答 3

8

使用 shell 转义技术:

-p\(pwdwithbrackets\)

... 或者:

'-p(pwdwithbrackets)'
于 2013-02-21T16:33:31.273 回答
4

只需用引号括起来。

更好的是,不要将参数传递给-p并在出现提示时输入它。以任何方式暴露密码都是不可取的。

于 2013-02-21T16:32:33.913 回答
0

无论如何,最好避免在命令行上以纯文本形式输入密码。

相反,您可以将它们放在用户的 MySQL 配置文件中:

$ cat > ~/.my.cnf
[client]
user = root
password = [(pwdwithbrackets)]
^D

$ mysqldump databasename > file.sql

当密码包含方括号和括号时,我测试并确认这有效。

您还可以将选项放在任何其他文件中,然后使用它:

$ mysqldump --defaults-file=myconf.cfg database > file.sql
于 2013-02-21T16:40:05.640 回答