2016-10-03 57 views
0

我有一個文件夾與數據庫文件作爲.sql文件的很多。遞歸地輸入.sql文件作爲新的數據庫

我想用新的數據庫作爲文件的名稱將它們輸入到mysql中。

因此,如果文件名爲conference_2016.sql,我希望腳本獲取該文件並將其內容輸入到名爲conference_2016的新數據庫中。

到目前爲止,這種輸入一個文件到一個單一的已經存在的數據庫mysql -u username -p database_name < file.sql

我要的是一條線,可以從.SH腳本使一個MySQL DATABSE。因爲我需要在將文件添加到它之前創建數據庫,但無法從腳本中演示如何創建數據庫。

回答

1

我想你可以使用這個腳本:

#!/bin/bash 

databases=$(ls *.sql) 

for database in ${databases};do 
    name=${database%.*} 
    mysql -u root -ppassword -e "CREATE DATABASE IF NOT EXISTS ${name} DEFAULT CHARACTER SET utf8;" 
    mysql -u root -ppassword ${name} < ${database} 
done 

這是我的目錄結構:

toplevel 
├── one.sql 
├── test.sh 
├── three.sql 
└── two.sql 

test.sql是上述bash腳本。而*.sql是你想要導入的sql文件。

+0

我不得不改變行:'mysql -u root -ppassword <$ {database}'到'mysql -u root -ppassword $ {name} <$ {database}'但是除此之外,它工作,謝謝 – Romulus

+0

哦,是的!我應該添加數據庫名稱。 –