2016-10-03 6 views
0

データベースファイルの多いフォルダが.sqlファイルとしてあります。再帰的に新しいデータベースとして.sqlファイルを入力

新しいデータベースをファイルの名前としてmysqlに入力したいとします。

ファイル名がconference_2016.sqlなので、スクリプトでそのファイルを取得し、その内容をconference_2016という名前の新しいデータベースに入力します。

はこれまでのところ、これは私がしたいことは.SHスクリプトからMySQLのdatabseを作ることができるラインですmysql -u username -p database_name < file.sql

単一すでに既存のデータベースに1つのファイルを入力します。私はそれにファイルを追加する前にデータベースを作成する必要があるので、しかし、どのようにスクリプトから図を描くことができません。

答えて

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

ああ、そうです!データベース名を追加する必要があります。 –

関連する問題