微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mysql-在BASH中创建一个SQL文件

我正在尝试使用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...

请注意,变量名称前缺少$-分配值时,变量不需要在名称前使用$.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐