2013-07-10 50 views
0

因此,我对数据库非常陌生,但是我已经完成了一些研究,并且我认为我已经弄清楚了需要的所有内容,但是当我尝试运行时遇到错误我的脚本。只有在通过Bash脚本运行时才会出现Mysql错误

这是我的脚本

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 

我recieving的错误是

ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'use glacier 

CREATE TABLE IF NOT EXISTS backUpFiles (fileName VARCHAR(20), archiveId VARCHAR(500), checkSum VARCHAR(100), glacierVault VARCHAR(100), timeStamp date); 
Query OK, 0 rows affected, 1 warning (0.00 sec) 

我于是决定手动登录到MySQL并运行此命令,他们工作得很好,除了这一个警告,这不该(我相信)

mysql> show warnings; 
+-------+------+------------------------------------+ 
| Level | Code | Message       | 
+-------+------+------------------------------------+ 
| Note | 1050 | Table 'backupfiles' already exists | 
+-------+------+------------------------------------+ 
1 row in set (0.28 sec) 

回答

1

您错过了在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 
0

你错过了;(分号)前两个SQL语句。

CREATE DATABASE IF NOT EXISTS $ DATABASE; 使用$ DATABASE;

相关问题