2017-03-17 153 views
0

我有大約20個不同的MySQL實例,我想輕鬆地連接到,而無需每次輸入整個地址,用戶名和瘋狂長密碼。我能做些什麼來編寫這個過程,所以我只需要爲每個實例運行一個.sh腳本?Shell腳本連接到MySQL服務器

我到目前爲止,保存爲「instance1.sh」

#!/bin/bash 
mysql -h instance1-address.com -u username -p password -e "show databases" 

使這個可執行文件後,仍要求我的密碼,即使它是在腳本本身。我能做什麼?

+1

你可以把默認選項在'.my.cnf'文件警告。 – Barmar

+1

我們首選的方法是將選項放到一個文件中,並用'defaults-extra-file'參考文件https://dev.mysql.com/doc/refman/5.7/en/option-files.html。 (提示輸入密碼是因爲mysql沒有看到「password」作爲提供的密碼,這是因爲'-p'後面的空格。刪除空格,例如'-pmysecret',MySQL將把「mysecret」作爲密碼,通過使用選項文件避免警告,而不是在命令行上提供密碼) – spencer7593

+0

將用戶名和密碼放在配置文件中,然後引用.sh中的密碼仍強制我輸入密碼: my.cnf: '[client] username =「usr」 password =「mysecret」' .sh: '#!/ bin/bash mysql -h instancehere.com -u $ USERNAME -p $ PASSWORD' – tbw875

回答

1

-p所以這樣以後刪除空格:

#!/bin/bash 
mysql -h instance1-address.com -u username -ppassword -e "show databases" 

它仍然會表現出它是不安全的