我想编写一个包含一些MySQL语句的bash脚本。
#!/bin/bash
mysql -u root --password=passwd
CREATE DATABASE test
GRANT ALL PRIVILEGES ON test.* TO 'testuser'@'localhost' \
IDENTIFIED BY 'passwd';
当我运行db.sh时,出现以下错误:bash CREATE:command not found.
我尝试了以下但没有运气:
#!/bin/bash
cat << EOF | mysql -u root --password=passwd
CREATE DATABASE test;
GRANT ALL PRIVILEGES ON test.* TO 'testuser'@'localhost' \
IDENTIFIED BY 'passwd';
EOF
有没有办法让bash知道mysql -u root --password=passwd
后面的命令是MySQL命令而不是bash命令?
答案 0 :(得分:0)
将命令放入文件中,然后将它们导入mysql。即。
mysql -u root --password=passwd < file_with_commands.sql
或者,使用EOF:
mysql -u root --password=passwd << EOF
<comands>...
编辑:继续评论,试试这个(全部在一行):
mysql -u root --password=passwd -e "CREATE DATABASE test; GRANT ALL PRIVILEGES ON test.* TO 'testuser'@'localhost' IDENTIFIED BY 'passwd';"