2017-03-17 172 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" 

它仍然会表现出它是不安全的