berezuev
@berezuev
#define TRUE FALSE

Как загрузить все файлы из папки в Mysql?

В общем, есть папка с sql файлами.
Хочу их все загрузить в базу:
ls * | mysql -u admin -pw12345678 -h 127.0.0.1 databasename <

но получаю:
-bash: syntax error near unexpected token `newline'

ЧЯДНТ?
  • Вопрос задан
  • 814 просмотров
Решения вопроса 3
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
cat * | mysql -u admin -pw12345678 -h 127.0.0.1 databasename
Ответ написан
Комментировать
valerium
@valerium
Изобретая велосипед
Или в цикле :-)
for i in `ls -1`; do mysql -u admin -pw12345678 databasename < $i; done

Хотя вариант от Rsa97 кошернее, так как вводить пароль напрямую в консоль - не секурно, а вводить отдельно на каждый файл - геморрно. Главное, чтобы порядок ввода данных из файлов был безразличен, иначе однострочником не обойтись.

В Вашем же варианте две ошибки. Во-первых, Вы пытаетесь передать программе mysql на стандартный ввод (через пайп | ) список файлов, хотя она туда принимает только непосредственно SQL код. То есть, Вам нужна команда cat, а не ls. Во-вторых, с помощью < Вы указываете оболочке на необходимость передать на тот же стандартный ввод содержимое некоторого файла, но сам файл не указываете, вот он и удивляется.
Ответ написан
Комментировать
@caa888
Еще так:
find -type f -name "*.sql" -exec mysql -u admin -pw12345678 databasename <{} \;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы