49

我正在尝试使用 2 个 mysql 实用程序 mysqldiff 和 mysqldbcompare 并希望避免将密码放在命令行上

是否可以使用选项文件来指定我的数据库连接的密码,以防止我必须指定密码?

这是我目前拥有的那种命令......

/usr/share/mysql-workbench/python/mysqldiff --server1=root@localhost --server2=root@localhost --difftype=sql db1:db2

我在 ~/.my.cnf 也有一个文件,该文件具有“600”权限并包含以下内容..

[client]
user=root
password=mypassword

当我通过命令行连接到 MySQL 时,它会在我的选项文件中获取详细信息,但 mysql 实用程序不会:-/

4

2 回答 2

76

尝试这个 -

[client]
user=root
password="pass"

[mysql]
user=root
password="pass"

[mysqldump]
user=root
password="pass"

[mysqldiff]
user=root
password="pass"

.my.cnf 的位置:~/.my.cnf

请参阅标题为使用选项文件的手册页

于 2013-11-11T19:07:17.753 回答
47

为了增强@Retraut 的答案,请在引号中输入您的密码。如果您的密码中有特殊字符,则接受的答案将不起作用,顺便说一句,这是一种很好的安全做法。

[client]
user=root
password="p@$$"

[mysql]
user=root
password="p@$$"

[mysqldump]
user=root
password="p@$$"

[mysqldiff]
user=root
password="p@$$"

http://dev.mysql.com/doc/refman/5.7/en/option-files.html

搜索“这是一个典型的用户选项文件:”并查看他们在其中陈述的示例。祝你好运,我希望能节省一些时间。

于 2014-07-25T17:11:55.473 回答