我正在写一个bash脚本来做一些数据库内容。对MySQL来说是新手。我在Mac上,通过自制的方式安装了MySQL。
我现在正在使用用户名"root“,而且没有-设置。我在下面加入了pw语法,只是为了帮助其他可能有pw的人。
我的目标是让mysql命令在bash脚本中尽可能“干净”
这不是一笔高金额的交易,但如果可能的话,我想这么做。
示例
# If I can do it without logging in (*ideal)
mysql CREATE DATABASE dbname;
# Or by logging in with - mysql -u root -pPassword
CREATE DATABASE dbname;
# Instead of
mysql -u root -pPassword -e"CREATE DATABASE dbname";试着简化它。我有一些事情要做,所以如果可能的话,我宁愿保持代码更干净。我试着使用bash脚本登录,但是这个脚本一旦登录到MySQL就停止了,并且没有运行任何命令。
我正在考虑的另一个选择(但不太喜欢)是将用户名和-字符串保存在一个var中,并为每个逗号调用它,就像这样
# Set the login string variable
login_details="-u root -p password -e"
# example command
mysql $login_details"CREATE DATABASE dbname";那么有什么想法吗?
发布于 2016-10-10 05:42:54
编写一个新的bash脚本文件,并在将所有命令放入其中后运行该文件。不要忘记在bash脚本中提供正确的用户名和密码。
对于bash脚本:
#!/bin/bash
mysql -u root -pSeCrEt << EOF
use mysql;
show tables;
EOF如果您想要运行单个mysql命令。
mysql -u [user] -p[pass] -e "[mysql commands]"
示例:
mysql -h 192.168.1.10 -u root -pSeCrEt -e "show databases"要执行多个mysql命令:
mysql -u $user -p$passsword -Bse "command1;command2;....;commandn"注意:-B用于批处理,使用选项卡作为列分隔符打印结果,每一行都在新行上。使用此选项,mysql不使用历史文件。批处理模式导致非表输出格式和特殊字符的转义。-s是静默模式。产出较少。-e是执行语句并退出
https://stackoverflow.com/questions/39951808
复制相似问题