gpt4 book ai didi

mysql - 在 while 循环中运行 mysql 命令

转载 作者:行者123 更新时间:2023-11-29 01:37:13 25 4
gpt4 key购买 nike

我有一个 mysql 数据库列表,我希望使用 linux 脚本从名称以“_abc”结尾的数据库中导出几个表。但是,我不断收到错误消息“意外的文件结尾”。

这是我的脚本,其中 DB_FILE 是一个文本文件,其中包含以“_abc”结尾的数据库名称。

while read db_name;
do
OUT_FILENAME="${db_name}_table.csv"
mysql -u$MYSQLUSER -p$MYSQLPASS -h $MYSQLHOST $db_name << EOFMYSQL
SELECT * FROM table_abc INTO OUTFILE '$OUT_FILENAME' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
EOFMYSQL
done < $DB_FILE

rm -f $DB_FILE

如果我删除 3 行 MYSQL,则脚本运行时不会出错。

另一个问题,如果我有 2 个 SELECT 查询,我是否必须分别运行每个查询,即每个查询都包含在 EOFMYSQL 语句中,或者我是否可以有两个查询在一个 EOFMYSQL block 内?

最佳答案

我想你的 EOFMYSQL 前面一定没有空格:不要只缩进那个。

while read db_name;
do
OUT_FILENAME="${db_name}_table.csv"
mysql -u$MYSQLUSER -p$MYSQLPASS -h $MYSQLHOST $db_name << EOFMYSQL
SELECT * FROM table_abc INTO OUTFILE '$OUT_FILENAME' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
EOFMYSQL
done < $DB_FILE

rm -f $DB_FILE

在一些合适的文本编辑器中,它会很容易地显示出来,这里是notepad++:

右缩进:

notepad++ right indent

错误的缩进:

notepad++ wrong indent

关于mysql - 在 while 循环中运行 mysql 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38138268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com