Mysql从bash文件查询

dov*_*vah 1 scripting bash mysql

我想运行多个 MySQL 查询并将它们保存到指定的文件。查询保存在 bash 脚本中queries.sh,例如:

cat queries.sh
mysql -u <user> -p <DBname> -e "select Col1 from Table1 where Condition;" > /home/<user>/queries/Col1Table1Cond
mysql -u <user> -p <DBname> -e "select Col5 from Table2 where Condition;" > /home/<user>/queries/Col5Table2Cond
Run Code Online (Sandbox Code Playgroud)

执行脚本是不够的,因为<user>必须在每次查询时输入他的密码,这会影响脚本流程。

Gil*_*not 6

尝试这个 ;)

user="jonnDoe"
dbname="customers"
password="VerySecret"

mysql -u $user -D $dbname -p $password -e "select Col1 from Table1 where Condition;" > /home/$user/queries/Col1Table1Cond
mysql -u $user -D $dbname -p $password -e "select Col5 from Table2 where Condition;" > /home/$user/queries/Col5Table2Cond
Run Code Online (Sandbox Code Playgroud)

更好的做法是在里面配置mysql/etc/mysql/my.cnf文件,这样就不用每次都输入了:

[client]
password    = your_password
Run Code Online (Sandbox Code Playgroud)

在后一种情况下,从以前的脚本中删除所有与密码相关的内容