gpt4 book ai didi

mysql - 在 BASH 中创建 SQL 文件

转载 作者:可可西里 更新时间:2023-11-01 08:09:42 25 4
gpt4 key购买 nike

我正在尝试使用 bash 创建一个 sql 脚本,但在我的循环的每次迭代后我总是得到这一行

:找不到命令

Ubuntu 和 OSX 都是这种情况。

在这个阶段我没有执行 sql 脚本,我只是想创建它。我缺少什么以便它不会尝试“执行”查询?

在 phpmyadmin 中测试时查询正常我不明白如果我没有执行实际查询,为什么需要设置 $PATH 变量,我只是在创建文本文件。

我使用的代码是:

SQL="";

cat people.txt | while read line
do
PW="my"$line"db";
DB="test_"$line;

$SQL=$SQL"CREATE DATABASE \`$DB\`;CREATE USER \`$line\`@\`localhost\`;SET PASSWORD FOR \`$line\`@\`localhost\` = PASSWORD(\"$PW\") ;GRANT ALL PRIVILEGES ON $DB.* TO \`$line\`@\`localhost\` IDENTIFIED BY \"$PW\";";

done

echo $SQL > t1.sql;

我用于导入的列表:

bob123
john123
jane123

我得到的输出是:

./02_setup_mysqldb.sh: line 14: =CREATE DATABASE `test_bob123`;CREATEUSER `bob123`@`localhost`;SET PASSWORD FOR `bob123`@`localhost` = PASSWORD("mybob123db") ;GRANT ALL PRIVILEGES ON test_bob123.* TO `bob123`@`localhost` IDENTIFIED BY "mybob123db";: command not found
./02_setup_mysqldb.sh: line 14: =CREATE DATABASE `test_john123`;CREATE USER `john123`@`localhost`;SET PASSWORD FOR `john123`@`localhost` = PASSWORD("myjohn123db") ;GRANT ALL PRIVILEGES ON test_john123.* TO `john123`@`localhost` IDENTIFIED BY "myjohn123db";: command not found

最佳答案

你的变量赋值有误,应该是:

SQL=$SQL"CREATE DATABASE...

注意变量名前面缺少 $ - 赋值时变量不需要在名称前面加上 $

关于mysql - 在 BASH 中创建 SQL 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44079669/

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