我有一个MySQL的Ubuntu服务器。
在命令行上,这是有效的
mysqldump -u root -p paydaydebt
(然后我必须手动input密码)
在命令行上,这些不起作用:
mysqldump -u root -p{password} paydaydebt mysqldump -u root --password={password} paydaydebt
有没有什么办法可以用-p或–passwordinput密码?
你不应该。 鉴于密码在命令行是邪恶的,因为每个人都可以看到ps或top 。
推荐的方法是在一个单独的文件中指定密码,然后添加一个命令行开关--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