2013-04-30 22 views
39

我試圖使用MySQL的實用程序,mysqldiff和mysqldbcompare 2,並希望避免把我的密碼,在命令行MySQL的實用程序 - 〜/ .my.cnf選項文件

上是否可以使用選項文件來指定我的數據庫連接的密碼,以防止我不得不指定密碼?

這是那種我現在有命令......

/usr/share/mysql-workbench/python/mysqldiff [email protected] [email protected] --difftype=sql db1:db2 

我也有在〜/ .my.cnf的文件有「600」的權限,幷包含以下..

[client] 
user=root 
password=mypassword 

當我通過命令行連接到MySQL它拿起細節在我的選項文件,但MySQL的公用事業別: -/

回答

56

試試這個 -

[client] 
user=root 
password="pass" 

[mysql] 
user=root 
password="pass" 

[mysqldump] 
user=root 
password="pass" 

[mysqldiff] 
user=root 
password="pass" 

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

請參考標題爲Using Option Files

31

手冊頁要加強對@ Retraut的回答讓您的密碼在引號。如果您的密碼中包含特殊字符,則接受的答案將不起作用,順便說一句,這是很好的安全措施。

[client] 
user=root 
password="[email protected]$$" 

[mysql] 
user=root 
password="[email protected]$$" 

[mysqldump] 
user=root 
password="[email protected]$$" 

[mysqldiff] 
user=root 
password="[email protected]$$" 

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

搜索「這是一個典型的用戶選項文件:」看看他們在那裏陳述的例子。祝你好運,我希望能在一些時間拯救別人。

+3

謝謝!如果可能的話,你會給多個upvotes :) – Grynn 2015-09-06 20:39:19

+1

我想知道爲什麼我的密碼不被接受。現在我明白了。 – Kzqai 2016-09-30 20:46:31

+0

對於你存儲的root密碼,生成一個〜128位的數字並將其保存爲十六進制或其他任何內容是很好的做法。絕對垃圾的16個Latin-1字符相當於'[0-9a-f]'的32個字符。 – 2017-08-01 20:39:20

相關問題