mysql - 如何将变量从 shell 脚本传递到 mysql 脚本

标签 mysql linux bash shell variables

我有一堆使用 name1 作为数据库名称并用我的数据填充该数据库的 mysql 脚本。但是,我希望能够选择数据库的名称,而不是在我的 sql 脚本中总是将其命名为 name1

我已经有了一个包含我的数据文件路径的包装器 shell 脚本,现在我希望它也包含数据库的名称。

在我的 shell 脚本中,我分配:

DATABASE_NAME=$2

有什么方法可以在我的 mysql 脚本顶部使用 $DATABASE_NAME?所以在 mysql 脚本中,它将是:

USE DATABASE_NAME;

而不是我现在拥有的:

USE name1;

最佳答案

您可以使用mysql -e 来执行您的代码:

mysql -e "USE ${DATABASENAME}; Some sql"

这样任何替换都有效。

您可以选择将临时 sql 文件或管道代码写入您的 mysql,在解析该文件时只需替换 ${DATABASENAME}。 (-e 选项是最透明和最简单的)

关于mysql - 如何将变量从 shell 脚本传递到 mysql 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38060314/

相关文章:

Mysql 导入 - 导致 Mysql 服务器崩溃 - 错误 2006

php - 在最短的时间内通过多个标签搜索对象

linux - 使用常见的 linux 工具检查一组 ip 地址是否属于给定网络的最简单方法是什么?

bash - 检查字符串是否为 UUID

linux - 使用文件名保存 zip 文件作为压缩文件的名称

php - 使用 PHP 数据捕获从 Bootstrap 模式重定向

linux - 如何从嵌入式 Linux 开发环境开始

c++ - FFMPEG 在 C++ 中对 'avcodoec_open2' 的 undefined reference

windows - 在 Windows bash 中访问根目录

python - 从 python 使用 ON DUPLICATE KEY UPDATE