2012-02-16 26 views
1

我發現這個代碼,但不太明白該命令在做什麼。bash腳本命令注入一個schema.sql到MySQL db

sudo -u test-user mysql -U test_traffic traffic < ./phoenix/data/sql/lib.model.schema.sql 

我知道最後一部分是使用lib.model.schema.sql創建的表和字段 第一部分我不很明白:sudo -u test-user mysql -U test_traffic traffic

我知道命令sudomysql

請解釋一下嗎? 感謝

+0

是否創建了數據庫並且想要爲表模式運行腳本? – 2012-02-16 08:52:40

+0

是有一個數據庫只是想使用schema.sql的表 – 2012-02-16 09:03:26

+0

你到底想做什麼?你的目標是使用bash腳本在數據庫中注入一個SQL文件,或者只是爲了理解這個腳本的作用? – 2012-02-16 09:13:32

回答

3

讓我們來看看它的點點滴滴。首先格式

sudo -u username command 

是運行指令command(這可能是簡單的或複雜的)作爲用戶username。因此,在您的示例中,您以用戶test-user的身份運行mysql命令。您應該注意,這包括mysql命令的所有參數 - 這是整個行的其餘部分。

命令

mysql -U test_traffic traffic < ./phoenix/data/sql/lib.model.schema.sql 

出現損壞(當然在5.0.51a運行失敗)。如果-U-u,這將表明該命令是針對mysql用戶test_traffic執行的。如果這是一個-u,那麼您將有一條指令將sql文件導入流量數據庫。

因此,組合指令稱,進口lib.model.schema.sql文件到使用mysql用戶test_traffic和執行,如果你是登錄爲用戶test-user整個命令數據庫test_traffic

+0

非常感謝! -U扔我..我現在工作,謝謝! – 2012-02-16 09:29:24

1

試試下面的步驟爲MySQL:

mysql > -h hostname -u username -p password 

    mysql > use databasename; 

    mysql > source path/to/scriptfile 
0

如果你想theschema.sql文件注入到你的數據庫,用shell腳本,只需使用:

mysql -h [host] -u [username] -p[password] -D [database] < your_file 

如果要動態地告訴應加載的文件,由$1和傳球替換your_file該文件的名稱作爲腳本的參數。

還要注意-p選項。 -p與您的密碼之間沒有空格。