首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在bash脚本中运行mysql命令,无需登录或将-u根添加到每个命令中

在bash脚本中运行mysql命令,无需登录或将-u根添加到每个命令中
EN

Stack Overflow用户
提问于 2016-10-10 05:33:44
回答 1查看 5.7K关注 0票数 3

我正在写一个bash脚本来做一些数据库内容。对MySQL来说是新手。我在Mac上,通过自制的方式安装了MySQL。

我现在正在使用用户名"root“,而且没有-设置。我在下面加入了pw语法,只是为了帮助其他可能有pw的人。

我的目标是让mysql命令在bash脚本中尽可能“干净”

这不是一笔高金额的交易,但如果可能的话,我想这么做。

示例

代码语言:javascript
运行
复制
# 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中,并为每个逗号调用它,就像这样

代码语言:javascript
运行
复制
# Set the login string variable
login_details="-u root -p password -e"

# example command
mysql $login_details"CREATE DATABASE dbname";

那么有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-10 05:42:54

编写一个新的bash脚本文件,并在将所有命令放入其中后运行该文件。不要忘记在bash脚本中提供正确的用户名和密码。

对于bash脚本:

代码语言:javascript
运行
复制
#!/bin/bash
mysql -u root -pSeCrEt << EOF
use mysql;
show tables;
EOF

如果您想要运行单个mysql命令。

mysql -u [user] -p[pass] -e "[mysql commands]"

示例:

代码语言:javascript
运行
复制
mysql -h 192.168.1.10 -u root -pSeCrEt -e "show databases"

要执行多个mysql命令:

代码语言:javascript
运行
复制
mysql -u $user -p$passsword -Bse "command1;command2;....;commandn"

注意:-B用于批处理,使用选项卡作为列分隔符打印结果,每一行都在新行上。使用此选项,mysql不使用历史文件。批处理模式导致非表输出格式和特殊字符的转义。-s是静默模式。产出较少。-e是执行语句并退出

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39951808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档