仅当通过Bash脚本运行时出现Mysql错误

仅当通过Bash脚本运行时出现Mysql错误,mysql,bash,Mysql,Bash,所以我对数据库非常陌生,但是我做了一些研究,我认为我已经找到了我需要的所有东西,但是当我试图运行我的脚本时,我遇到了一个错误 这是我的剧本 mysql -h portal-rds -u $user --password=$mysqlpw <<QUERY_INPUT CREATE DATABASE IF NOT EXISTS $DATABASE use $DATABASE CREATE TABLE IF NOT EXISTS backUpFiles (fileName

所以我对数据库非常陌生,但是我做了一些研究,我认为我已经找到了我需要的所有东西,但是当我试图运行我的脚本时,我遇到了一个错误

这是我的剧本

  mysql -h portal-rds -u $user --password=$mysqlpw <<QUERY_INPUT
  CREATE DATABASE IF NOT EXISTS $DATABASE
  use $DATABASE
  CREATE TABLE IF NOT EXISTS backUpFiles (fileName VARCHAR(20), archiveId VARCHAR(500), checkSum VARCHAR(100), glacierVault VARCHAR(100), timeStamp date);
  INSERT INTO backUpFiles
  VALUES ('$archive_file_name', '$archiveID', '$CURRENTVAULT', '$checkSum', CURDATE());
  QUERY_INPUT
然后我决定手动登录mysql并运行这些命令,除了这个警告之外,它们工作得很好,不应该破坏任何东西(我相信)


您缺少
作为
CREATE DATABASE
语句后的语句分隔符

声明应如下所示:

mysql -h portal-rds -u $user --password=$mysqlpw <<QUERY_INPUT
CREATE DATABASE IF NOT EXISTS $DATABASE; <---- were missing
use $DATABASE
CREATE TABLE IF NOT EXISTS backUpFiles (fileName VARCHAR(20), archiveId VARCHAR(500), checkSum VARCHAR(100), glacierVault VARCHAR(100), timeStamp date);
INSERT INTO backUpFiles
VALUES ('$archive_file_name', '$archiveID', '$CURRENTVAULT', '$checkSum', CURDATE());
QUERY_INPUT
mysql-h门户rds-u$user--password=$mysqlpw您错过了;(分号)表示前两条sql语句

创建数据库(如果不存在)$数据库; 使用$数据库

mysql> show warnings;
+-------+------+------------------------------------+
| Level | Code | Message                            |
+-------+------+------------------------------------+
| Note  | 1050 | Table 'backupfiles' already exists |
+-------+------+------------------------------------+
1 row in set (0.28 sec)
mysql -h portal-rds -u $user --password=$mysqlpw <<QUERY_INPUT
CREATE DATABASE IF NOT EXISTS $DATABASE; <---- were missing
use $DATABASE
CREATE TABLE IF NOT EXISTS backUpFiles (fileName VARCHAR(20), archiveId VARCHAR(500), checkSum VARCHAR(100), glacierVault VARCHAR(100), timeStamp date);
INSERT INTO backUpFiles
VALUES ('$archive_file_name', '$archiveID', '$CURRENTVAULT', '$checkSum', CURDATE());
QUERY_INPUT