Я хочу выполнить текстовый файл, содержащий запросы SQL, в MySQL.
Я попытался запустить source /Desktop/test.sql
и получил ошибку:
mysql>. \ home \ sivakumar \ Desktop \ test.sql ОШИБКА: не удалось открыть файл '\ home \ sivakumar \ Desktop \ test.sql', ошибка: 2
Есть идеи, что я делаю не так?
mysql
command-line
user1160432
источник
источник
Ответы:
Если вы находитесь в командной строке MySQL,
mysql>
вы должны объявить файл SQL какsource
.источник
\
перед пробелом или обернуть имя файла с"
.У вас довольно много вариантов:
mysql -h hostname -u user database < path/to/test.sql
источник
-p
опции, это не рекомендуется: другие пользователи на одном хосте могут использовать системные инструменты, например,ps
чтобы прочитать его в этом случае.-p
без аргумента предлагает ввести пароль на следующей строкеВы можете выполнить операторы mysql, которые были записаны в текстовом файле, используя следующую команду:
если ваша база данных еще не создана, сначала войдите в свой mysql, используя:
тогда:
тогда:
это должно сделать это!
Более подробная информация здесь: http://dev.mysql.com/doc/refman/5.0/en/mysql-batch-commands.html
источник
mysql -u yourusername -p"yourpassword"
Мой любимый вариант сделать это будет:
Я использую это таким образом, потому что, когда вы связываете это с "", вы избегаете неправильного пути и ошибок с пробелами и - и, возможно, больше проблем с символами, с которыми я не сталкивался.
С комментарием @elcuco я предлагаю использовать эту команду вместе с [пробелом], поэтому она говорит bash игнорировать сохранение в истории, это будет работать из коробки в большинстве bash.
если ваша команда все еще сохраняется в истории, просмотрите следующие решения:
Выполнить команду, не сохраняя ее в истории
дополнительная безопасность редактирования
На всякий случай, если вы хотите быть более безопасным, вы можете использовать следующую команду и ввести пароль в командной строке:
источник
Все лучшие ответы хороши. Но на тот случай, если кто-то захочет выполнить запрос из текстового файла на удаленном сервере и сохранить результаты в файл (вместо отображения на консоли), вы можете сделать это:
Надеюсь, это кому-нибудь поможет.
источник
-p
паролем иSELECT ... INTO OUTFILE /path/to/file.csv
это более эффективный способ. См. Параметры и синтаксис здесь - dev.mysql.com/doc/refman/5.7/ru/select-into.htmlУкажите путь к файлу .sql как:
источник
Я пришел сюда в поисках этого ответа, и вот что я нашел, работает лучше всего для меня: Обратите внимание, я использую Ubuntu 16.xx
mysql -u <your_user> - p
source file_name.sql
Надеюсь это поможет.
источник
mysql -u<user> -p -e 'source filename.sql'
Не указывайте одинарные кавычки.
Если приведенная выше команда не работает, скопируйте файл на диск c: и повторите попытку. как показано ниже,
источник
Никогда не рекомендуется передавать аргумент пароля непосредственно из командной строки, он сохраняется в
~/.bash_history
файле и может быть доступен из других приложений.Используйте это вместо:
источник
источник
Скорее всего, вам просто нужно изменить косую черту:
в
Таким образом, команда будет:
источник
используйте следующее из командной строки mysql -
Не используйте цитаты. Даже если путь содержит пробел (''), вообще не используйте кавычки .
источник
вместо перенаправления я бы сделал следующее
Это выполнит файл path-to-sql-file
источник
Так много способов сделать это.
Если вы получаете ошибки из командной строки, убедитесь, что вы ранее запустили
Это должно быть выполнено из каталога mysqld.exe, отсюда и CD.
Надеюсь, что это полезно, а не просто излишне.
источник
Так
mysql -u yourusername -p yourpassword yourdatabase < text_file
как не работал на удаленном сервере (Amazon EC2) ...Убедитесь, что база данных создана в первую очередь.
Затем:
источник
Для дальнейшего использования, я нашел, что это работает против вышеупомянутых методов, под Windows в вашей консоли msql:
MySQL >>
source c://path_to_file//path_to_file//file_name.sql;
Если ваш корневой диск не называется «c», просто поменяйте его местами. Сначала попробуйте обратную косую черту, если они не работают, попробуйте косую черту. Если они также не работают, убедитесь, что у вас есть полный путь к файлу, расширение .sql в имени файла, а если ваша версия настаивает на точках с запятой, убедитесь, что он там, и попробуйте снова.
источник
У меня была эта ошибка, и я попробовал все советы, которые мог получить, но безрезультатно.
Наконец, проблема заключалась в том, что в моей папке был пробел в имени папки, который появлялся как косая черта в пути к папке, как только я нашел и удалил ее, она работала нормально.
источник