Aqui está minha solução:
find sql/ -type f | awk '{system("mysql -u root -pXXX -h localhost mydatabase < "$0)}'
Eu tenho arquivos sql "separados" assim:
> tree sql
sql
├── adresse_trigger_update_before.sql
├── attribut_trigger_update_before.sql
├── categorie_trigger_update_before.sql
├── duplicate_records.sql
├── horaire_trigger_update_before.sql
├── partenaire_trigger_update_before.sql
├── personne_trigger_update_before.sql
└── produit_trigger_update_before.sql
0 directories, 8 files
>
Aqui estão todas as minhas tentativas:
>mysql mydatabase -e "source sql/file1.sql"
>
>mysql mydatabase -e "source sql/*"
>ERROR at line 1: Failed to open file 'sql/*', error: 2
>cat sql/* > mysql mydatabase
>cat : option invalid -- 'p'
>mysql mydatabase -e "source sql/*"
>bash: sql/* : ambiguous redirect
Como carregar muitos arquivos de uma só vez no MySQL?
Nota: só existe um problema que estou enfrentando: carregar todos os arquivos na pasta " sql
" de uma só vez . Nenhum outro problema (removi usuário e senha para ser mais preciso sobre o problema real).
Alguma ideia de como fazer isso?
Aqui está minha solução:
find sql/ -type f | awk '{system("mysql -u root -pXXX -h localhost mydatabase < "$0)}'
Você deve usar "source code"/*
.
Para o problema de senha, tente citá-lo, por exemplo, mysql -u XX -p "XX"