2017-04-15 27 views
0

我有一个带有特殊字符的密码,如eu8y~!~LZVdzW!2A如何在mysql命令行中传递密码

每当我试着火mysqldump命令,它抛出一个错误说

mysqldump: Got error: 1045: Access denied for user 'root'@'localhost' (using password: YES) when trying to connect 

这是我要做的事。

mysqldump -uroot -p'eu8y~!~LZVdzW!2A' db_name > db.sql 

但是,如果单独提供密码,它就会起作用。

mysqldump -uroot -p db_name > db.sql 

我在python中运行上面的命令。我该怎么做?

+1

尝试:'mysqldump -uroot -peu8y〜!〜LZVdzW!2A db_name> db.sql'。请记住,在命令行中指定密码应被视为不安全,请参见[7.1.2.1密码安全最终用户指南](https://dev.mysql.com/doc/refman/5.7/en/password-security-user的.html)。 – wchiquito

+0

已经试过这个。不起作用。 – PythonEnthusiast

+0

_“我在python中运行上面的命令。”_ - [_then显示你运行它的确切方式_](/ help/mcve),或者如果问题发生在你之间的区别已经显示,你实际使用了什么。奇怪的是,我必须告诉一个2.5k +的用户。 –

回答

0

我不能重现该问题:

mysql> CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'eu8y~!~LZVdzW!2A'; 
Query OK, 0 rows affected (0.00 sec) 

mysql> GRANT ALL ON `db_name`.* TO 'myuser'@'localhost'; 
Query OK, 0 rows affected (0.00 sec) 
$ mysqldump -umyuser -p'eu8y~!~LZVdzW!2A' db_name > db.sql 

按预期的方式生成的文件(db.sql)。