我一直試圖得到一個shell(bash)的腳本插入一行到遠程數據庫,但我已經遇到了一些麻煩:(使用shell腳本將數據插入到遠程MySQL數據庫
的腳本是爲了將文件上傳到服務器,獲取URL,HASH和文件大小,連接到遠程mysql數據庫,然後將數據插入到現有表中,直到遠程MYSQL數據庫位才能正常工作。
它看起來像這樣:
#!/bin/bash
zxw=randomtext
description=randomtext2
for file in "[email protected]"
do
echo -n *****
ident= *****
data= ****
size=` ****
hash=`****
mysql --host=randomhost --user=randomuser --password=randompass randomdb
insert into table (field1,field2,field3) values('http://www.site.com/$hash','$file','$size');
echo "done"
done
我在節目一共有小白所以你:P
無論如何,我添加了\以避免括號,因爲我得到的錯誤。就像現在一樣,腳本工作正常,直到連接到mysql數據庫。它只是連接到MySQL數據庫,並沒有執行插入命令(我甚至不知道插入命令是否可以在bash中工作)。 PS:我已經從命令行一個一個地嘗試了兩個mysql命令,並且他們工作,儘管我定義了散列/文件/大小並且沒有轉義的「\」。
無論如何,你們認爲什麼?即時嘗試甚至可能做什麼?如果是這樣如何?
任何幫助,將不勝感激:)
得到這個錯誤:第22行:警告:這裏 - 第19行的文件由文件結尾分隔(想要'EOF')第23行:第23行:語法錯誤:文件意外結束 – lelouch 2010-10-10 13:59:59
@lelouch - 你離開關閉上面第三行的「EOF」。實施所有解決方案非常重要,而不僅僅是上半年。 – 2010-10-10 14:02:04
哼哈哈,我清楚地在mysql行中添加了<< EOF,並且在插入一行之後在另一個新行中添加了另一個EOF。任何想法什麼是錯的? – lelouch 2010-10-10 14:10:57