我正在尝试使用 mysqldump 为我的数据库拍摄快照,但是 root 密码中有括号,这会导致我出现问题。据我所知,我可以用 [] 包围密码以使其正常工作,但我仍然遇到问题。
格式化这个的正确方法是什么?
mysqldump -u root -p[(pwdwithbrackets)] databasename > file.sql
-bash: syntax error near unexpected token `('
使用 shell 转义技术:
-p\(pwdwithbrackets\)
... 或者:
'-p(pwdwithbrackets)'
只需用引号括起来。
更好的是,不要将参数传递给-p
并在出现提示时输入它。以任何方式暴露密码都是不可取的。
无论如何,最好避免在命令行上以纯文本形式输入密码。
相反,您可以将它们放在用户的 MySQL 配置文件中:
$ cat > ~/.my.cnf
[client]
user = root
password = [(pwdwithbrackets)]
^D
$ mysqldump databasename > file.sql
当密码包含方括号和括号时,我测试并确认这有效。
您还可以将选项放在任何其他文件中,然后使用它:
$ mysqldump --defaults-file=myconf.cfg database > file.sql