Mysql как выполнить запрос из файла

Обновлено: 05.07.2024

у меня есть база данных под названием nitm . Я не создавал там никаких таблиц. Но у меня есть файл SQL, который содержит все необходимые данные для базы данных. Файл nitm.sql который находится в C: drive . Этот файл имеет размер около 103 МБ. Я использую сервер wamp.

я использовал следующий синтаксис в консоли MySQL для импорта файл:

но это не сработало.

из консоли mysql:

mysql> use DATABASE_NAME;

mysql> source path/to/file.sql;

убедитесь, что перед path нет косой черты, если вы ссылаетесь на относительный путь. мне потребовалось время, чтобы понять это! лол

наконец, я решил проблему. Я поставил `nitm.sql 'файл в' bin 'файл папки" mysql " и используется следующий синтаксис.

и это сработало.

если вы используете wamp, вы можете попробовать это. Просто введите use your_Database_name первый.

нажмите значок сервера wamp, затем найдите MYSQL > MSQL Console затем запустить его.

если у вас нет пароля, просто нажмите Enter и введите :

если у вас есть пароль, вы будете promt, чтобы ввести пароль. Сначала введите пароль, затем введите:

location_of_your_file должен выглядеть как C:\mydb.sql

так что одобряю is mysql>источник C:\mydb - . в SQL;

этот вид импорта дампа sql очень полезен для большого файла SQL.

Я скопировал мои файлы mydb.sq в каталоге C: .Это должна быть заглавная C: для запуска

в windows, если вышеуказанное предложение дает вам ошибку (файл не найден или неизвестный db), вы можете удвоить косые черты:

в консоли mysql:

Ok Итак, я использую Linux, но я думаю, что это справедливо и для Windows. Вы можете сделать это либо прямо из командной строки

или из приглашения mysql вы можете использовать:

но оба эти подхода имеют свои преимущества в результатах, которые они отображают. При первом подходе скрипт завершает работу, как только обнаруживает ошибку. И лучше всего то, что он сообщает вам точный номер строки в исходном файле, где произошла ошибка. Однако он отображает только ошибки. Если он не обнаружил никаких ошибок, скрипты ничего не отображают. Что может немного нервировать. Потому что чаще всего вы запускаете сценарий с целой кучей команд.

Я, например, предпочитаю подход непосредственно из командной строки.

Если вы используете xampp

вы почти там использовать

вы также можете получить доступ к справке по

для localhost на XAMPP. Откройте окно cmd и введите

внимание! Отсутствие semi-двоеточия после-p Введите пароль и введите

, чтобы выбрать нужную вам базу данных.

проверьте, есть ли ваш стол

импорт из файла sql

Я положил свой файл на C:\xampp\mysql\bin расположение, чтобы не смешивать с местоположениями sql-файла.

Я хочу выполнить текстовый файл, содержащий запросы SQL, в MySQL.

Я попытался запустить source/Desktop/test.sql и получил ошибку:

mysql>. \home\sivakumar\Desktop\test.sql ОШИБКА: не удалось открыть файл '\ home\sivakumar\Desktop\test.sql', ошибка: 2

Есть идеи, что я делаю не так?

Если вы в командной строке MySQL mysql> , вам нужно объявить файл SQL как source .

У вас довольно много вариантов:

  • используйте клиент командной строки MySQL: mysql -h hostname -u user database < path/to/test.sql
  • Установите инструменты GUI MySQL и откройте свой файл SQL, затем выполните его
  • Используйте phpmysql, если база данных доступна через ваш веб-сервер

вы можете выполнить инструкции mysql, которые были записаны в текстовом файле, используя следующую команду:

если ваша база данных еще не создана, сначала войдите в свой mysql, используя:

который должен это сделать!

Все лучшие ответы хороши. Но на всякий случай кто-то хочет запустить запрос из текстового файла на удаленном сервере И сохранить результаты в файл (вместо показа на консоли), вы можете сделать это:

Надеюсь, это поможет кому-то.

Мой любимый вариант сделать это будет:

Я использую это таким образом, потому что, когда вы связываете это с "", вы избегаете неправильного пути и ошибок с пробелами и - и, возможно, больше проблем с символами, с которыми я не сталкивался.

С комментарием @elcuco я предлагаю использовать эту команду вместе с [пробелом], поэтому она говорит bash игнорировать сохранение в истории, это будет работать из коробки в большинстве bash.

если ваша команда все еще сохраняется в истории, просмотрите следующие решения:

дополнительная безопасность редактирования

На всякий случай, если вы хотите быть более безопасным, вы можете использовать следующую команду и ввести пароль в командной строке:

Я пришел сюда, ища этот ответ, и вот что я нашел, работает для меня лучше: Примечание. Я использую Ubuntu 16.xx

mysql -u <your_user> - p

Надеюсь это поможет.

Укажите путь к файлу .sql как:

See In The Image:

Не указывать одинарные кавычки.

Если приведенная выше команда не работает, скопируйте файл на диск c: и повторите попытку. как показано ниже,

Никогда не рекомендуется передавать аргумент пароля непосредственно из командной строки, он сохраняется в файле

/.bash_history и может быть доступен из других приложений.

Используйте это вместо:

Скорее всего, вам просто нужно изменить косую черту /blackslash: от

Таким образом, команда будет следующей:

используйте следующее из командной строки mysql -

Не используйте цитату. Даже если путь содержит пробел (''), используйте никакую цитату вообще.

Так как mysql -u yourusername -p yourpassword yourdatabase < text_file не работал на удаленном сервере (Amazon EC2).

Сначала убедитесь, что база данных создана.

В будущем, я нашел, что это работает против вышеупомянутых методов под Windows в консоли msql:

Если ваш корневой диск не называется "c", тогда просто обменивайтесь тем, что вы вызываете. Сначала попробуйте обратную косую черту, если они не работают, попробуйте косую черту. Если они также не работают, убедитесь, что у вас есть полный путь к файлу, расширение .sql для имени файла, и если ваша версия настаивает на полуколонах, убедитесь в этом и повторите попытку.

вместо перенаправления я бы сделал следующее

Это выполнит файл path-to-sql-file

У меня была эта ошибка, и я пробовал все советы, которые я мог получить безрезультатно.

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

Так много способов сделать это.

Если вы получаете ошибки из командной строки, убедитесь, что вы ранее запустили

Это должно быть выполнено из каталога mysqld.exe, отсюда и CD.

Надеюсь, что это полезно, а не просто излишне.

Вы можете использовать SQLyog Выполнить SQL script для выполнения файла .sql. Выберите файл и нажмите "Выполнить".:-) Вы получаете 30-дневную бесплатную пробную версию.

И вы получаете ошибку, потому что у вас есть цитаты вокруг имени файла.

Файл должен находиться на клиентском хосте, где вы используете mysql. Имя файла должно быть абсолютным путем, указывающим полное имя файла, или имя пути, которое указано относительно каталога, в котором вы вызывали mysql. Например, если вы запустили mysql на компьютере под управлением Windows в каталоге C:\mysql, а ваш файл script - my_commands.sql в каталоге C:\scripts, обе следующие команды SOURCE сообщают mysql выполнить SQL-запросы в файл:

mysql > SOURCE C:\scripts\my_commands.sql;

Другой способ выполнить файл script - это присвоить ему имя в командной строке mysql. Вызвать mysql и использовать < оператор перенаправления ввода, чтобы указать файл для чтения ввода запроса:

Я хочу выполнить текстовый файл, содержащий запросы SQL, в MySQL.

Я попытался запустить source/Desktop/test.sql и получил ошибку:

mysql>. \home\sivakumar\Desktop\test.sql ОШИБКА: не удалось открыть файл '\ home\sivakumar\Desktop\test.sql', ошибка: 2

Есть идеи, что я делаю не так?

ОТВЕТЫ

Ответ 1

Если вы в командной строке MySQL mysql> , вам нужно объявить файл SQL как source .

Ответ 2

У вас довольно много вариантов:

  • используйте клиент командной строки MySQL: mysql -h hostname -u user database < path/to/test.sql
  • Установите инструменты GUI MySQL и откройте свой файл SQL, затем выполните его
  • Используйте phpmysql, если база данных доступна через ваш веб-сервер

Ответ 3

вы можете выполнить инструкции mysql, которые были записаны в текстовом файле, используя следующую команду:

если ваша база данных еще не создана, сначала войдите в свой mysql, используя:

который должен это сделать!

Ответ 4

Все лучшие ответы хороши. Но на всякий случай кто-то хочет запустить запрос из текстового файла на удаленном сервере И сохранить результаты в файл (вместо показа на консоли), вы можете сделать это:

Надеюсь, это поможет кому-то.

Ответ 5

Мой любимый вариант сделать это будет:

Я использую это таким образом, потому что, когда вы связываете это с "", вы избегаете неправильного пути и ошибок с пробелами и - и, возможно, больше проблем с символами, с которыми я не сталкивался.

С комментарием @elcuco я предлагаю использовать эту команду вместе с [пробелом], поэтому она говорит bash игнорировать сохранение в истории, это будет работать из коробки в большинстве bash.

если ваша команда все еще сохраняется в истории, просмотрите следующие решения:

дополнительная безопасность редактирования

На всякий случай, если вы хотите быть более безопасным, вы можете использовать следующую команду и ввести пароль в командной строке:

Ответ 6

Я пришел сюда, ища этот ответ, и вот что я нашел, работает для меня лучше: Примечание. Я использую Ubuntu 16.xx

mysql -u <your_user> - p

Надеюсь это поможет.

Ответ 7

Укажите путь к файлу .sql как:

See In The Image:

Ответ 8

Не указывать одинарные кавычки.

Если приведенная выше команда не работает, скопируйте файл на диск c: и повторите попытку. как показано ниже,

Ответ 9

Никогда не рекомендуется передавать аргумент пароля непосредственно из командной строки, он сохраняется в файле

/.bash_history и может быть доступен из других приложений.

Используйте это вместо:

Ответ 10

Ответ 11

Скорее всего, вам просто нужно изменить косую черту /blackslash: от

Таким образом, команда будет следующей:

Ответ 12

используйте следующее из командной строки mysql -

Не используйте цитату. Даже если путь содержит пробел (''), используйте никакую цитату вообще.

Ответ 13

Так как mysql -u yourusername -p yourpassword yourdatabase < text_file не работал на удаленном сервере (Amazon EC2).

Сначала убедитесь, что база данных создана.

Ответ 14

В будущем, я нашел, что это работает против вышеупомянутых методов под Windows в консоли msql:

Если ваш корневой диск не называется "c", тогда просто обменивайтесь тем, что вы вызываете. Сначала попробуйте обратную косую черту, если они не работают, попробуйте косую черту. Если они также не работают, убедитесь, что у вас есть полный путь к файлу, расширение .sql для имени файла, и если ваша версия настаивает на полуколонах, убедитесь в этом и повторите попытку.

Ответ 15

вместо перенаправления я бы сделал следующее

Это выполнит файл path-to-sql-file

Ответ 16

У меня была эта ошибка, и я пробовал все советы, которые я мог получить безрезультатно.

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

Ответ 17

Так много способов сделать это.

Если вы получаете ошибки из командной строки, убедитесь, что вы ранее запустили

Это должно быть выполнено из каталога mysqld.exe, отсюда и CD.

Надеюсь, что это полезно, а не просто излишне.

Ответ 18

Вы можете использовать SQLyog Выполнить SQL script для выполнения файла .sql. Выберите файл и нажмите "Выполнить".:-) Вы получаете 30-дневную бесплатную пробную версию.

И вы получаете ошибку, потому что у вас есть цитаты вокруг имени файла.

Файл должен находиться на клиентском хосте, где вы используете mysql. Имя файла должно быть абсолютным путем, указывающим полное имя файла, или имя пути, которое указано относительно каталога, в котором вы вызывали mysql. Например, если вы запустили mysql на компьютере под управлением Windows в каталоге C:\mysql, а ваш файл script - my_commands.sql в каталоге C:\scripts, обе следующие команды SOURCE сообщают mysql выполнить SQL-запросы в файл:

mysql > SOURCE C:\scripts\my_commands.sql;

Другой способ выполнить файл script - это присвоить ему имя в командной строке mysql. Вызвать mysql и использовать < оператор перенаправления ввода, чтобы указать файл для чтения ввода запроса:

Если на экране появляется приветствие mysql, то всё прошло ok.

Для выхода из командной строки mysql можно написать exit, в linux достаточно нажать ctrl+C. Теперь можно писать любые mysql-запросы. Чтобы запрос выполнился, в конце обязательно нужно поставит точку с запятой ";". При написании длинных запросов удобно делать enter`ом переход на следующую строку. А после полного написание запроса поставить ";" и нажать "enter".

Для работы с конкретной базой данных нужно её выбрать с помощью оператора use. Показать все базы данных:

Результатом будет что то вроде этого:

Выбрать базу данных jeka:

Посмотреть названия всех таблиц в конкретной базе данных (после выполнения use):

Просмотреть структуру таблицы (имена и тип полей):

Достать информацию о юзере с >

Бэкап структуры таблицы, а точнее sql-запрос на её создание

Если в конце запроса поставить не ; а \G, то результат будет показан другим образом - иногда весьма удобно, если таблица имеет много полей:

mysql использования /G вместо; дебаг запроса.

Посмотреть, какие запросы выполняются в данный момент на сервере MySQL:

Учтите, что будут отображены еще не выполненные (активные) запросы, поэтому show processlist; актуальная команды только для нагруженных БД, в других случаях маловероятно, что команда что то покажет.

Подробнее о том, как изменять структуру mysql-таблиц (alter table).

Что делать если вижу знаки вопросов вместо текста в MySQL?

Это проблема с кодировкой. Вероятно в my.ini файле mysql-сервера не добавлено:

Нужно добавить в .ini файл либо выполнить в консоли команду "SET NAMES utf8", после чего во время текущей сессии отображаться русский текст в mysql-консоли будет без проблем:

Как сделать бэкап базы mysql через консоль Linux?

Сделать бэкап базы database в файл dump_name.sql

[username] – имя пользователя который имеет доступ к базе данных.
[password] – пароль пользователя.
[database] – имя базы данных.
[dump_name.sql] – имя файла, дампа на выходе.

Развернуть базу из файла через командную строку

[username] – имя пользователя который имеет доступ к базе данных.
[password] – пароль пользователя.
[database] – имя базы данных.
[dump_to_restore.sql] – имя файла, из которого поднимаем базу

Сделать дамп структуры одной таблицы mysql (без данных):

Например, задампим таблицу users из базы данных mydatabase:

Развернуть mysql-dump в БД с именем database_name:

Ещё одна интересная штука. Выполнять из консоли, не требуется предварительно подключаться к mysql (mysql>). Вывести список таблиц базы данных, не подключаясь непосредственно к mysql:

Заключение

Может показаться, что писать запросы в командной строке не удобно. Но это заблуждение. На слабых машинах phpmyadmin работает не так шустро как хотелось бы. Тем более не на всех серверах стоят морды с phpmyadmin, adminer и т.д. Linux + mysql в терминале реально повысили мою производительность.

Поисковые запросы , по которым приходили пользователи


Дата добавления: 9 лет назад mysql
  • Как сделать копию структуры таблицы в mysql? Решено!
  • Установить mysql 5.6 на travis Решено!
  • Получить комментарии к полям mysql-таблицы 1 ответ
  • На PHP Access denied for user 'root'@'localhost', хотя через консоль подключается 1 ответ
  • mysqldump: Got error: 1044: Access denied for user when using LOCK TABLES 1 ответ
  • MySQL - изменение полей, структуры таблицы 0 комментариев
  • Запросы инъекции для mysql 0 комментариев
  • Доступ к mysql из-вне3 комментария
  • Mysql перенос таблиц из одной базы данных в другую 0 комментариев
  • Анализ производительности MySQL с использованием performance_schema 0 комментариев

Комментарии 2

Viktor, спасибо. Судя по скринам, штука интересная.
Правда, уж больно много зависимостей она имеет.. Как решу проблему с зависимостями, отпишусь.

Применение MYSQL_PWD опасно. Подробности в разделе "4.2.7 Соединение с сервером MySQL".

Клиент mysql использует файл, именованный в системной переменной MYSQL_HISTFILE , чтобы сохранить хронологию командной строки. Значение по умолчанию для файла хронологии: $HOME/.mysql_history , здесь $HOME представляет собой значение системной переменной HOME . Подробности в разделе "Приложение 2. Переменные окружения ".

Все программы MySQL имеют много различных параметров. Однако, каждая программа MySQL обеспечивает опцию --help , которую Вы можете использовать, чтобы получить полное описание различных параметров программы. Например, mysql --help .

Вы можете отменять заданные по умолчанию параметры для всех стандартных программ пользователя с помощью файла опций. Подробности в разделе "4.1.2 Файл опций my.cnf".

Список ниже кратко описывает программы MySQL:

mysql простая SQL оболочка (с возможностями GNU readline ). Это поддерживает интерактивное и не интерактивное использование. Когда используется в интерактивном режиме, результаты запроса будут представлены в формате ASCII-таблицы. Когда используется в не интерактивном режиме (например, как фильтр), результат будет выведен в разделяемом табуляциями формате. Выходной формат может быть изменен, используя параметры командной строки. Вы можете выполнять скрипты так:

Если Вы имеете проблемы из-за недостаточной памяти у клиента, используйте опцию --quick ! Это вынуждает клиент mysql использовать mysql_use_result() вместо вызова mysql_store_result() , чтобы отыскать набор результатов.

Использование mysql очень просто. Только запустите его следующим образом: mysql database или mysql --user=user_name --password=your_password database . Напечатайте инструкцию SQL, закончите ее `;' , `\g' или `\G' и нажмите RETURN/ENTER.

mysql поддерживает следующие параметры:

Вы можете также устанавливать следующие переменные через -O или --set-variable :

Имя переменнойЗначение по умолчаниюОписание
connect_timeout0Число секунд перед завершением подключения по тайм-ауту.
max_allowed_packet16777216Максимальная длина пакетов для обмена с сервером.
net_buffer_length16384Буфер для связи через сокет или TCP/IP.
select_limit1000Автоматическое ограничение для SELECT при использовании --i-am-a-dummy
max_join_size1000000Автоматическое ограничение для строк в объединении при использовании --i-am-a-dummy.

Если Вы напечатаете 'help' в командной строке, mysql распечатает команды, которые он поддерживает:

Внимание: pager работает только в UNIX.

Команда status дает Вам некоторую информацию относительно подключения и сервера, который Вы используете. Если Вы работаете в режиме --safe-updates , status будет также печатать значения для переменных mysql , которые воздействуют на Ваши запросы.

Полезная опция запуска для новичков (появилась в MySQL Version 3.23.11): --safe-updates (или --i-am-a-dummy для пользователей, которые скомандовали DELETE FROM table_name , но забыли указать предложение WHERE ). При использовании этой опции, mysql посылает следующую команду серверу MySQL при открытии подключения:

Некоторые полезные советы относительно применения клиента mysql :

Некоторые данные намного более читаемы, когда отображаются вертикально, вместо обычного горизонтального вывода, типа блока. Например, более длинный текст, который включает новые строки, часто намного проще читать с вертикальным выводом. Например:

  • Для регистрации Вы можете использовать опцию tee . Режим tee может быть начат с помощью опции --tee=. или из командной строки в интерактивном режиме с помощью команды tee . Все данные, отображаемые на экране, будут также добавляться в заданный файл. Это может быть очень полезно для отладки. Режим может быть заблокирован из командной строки командой notee . Выполнение tee второй раз снова начинает регистрировать вывод. Без параметра будет использоваться предыдущий файл. Обратите внимание, что tee сбрасывает результаты в файл после каждой команды прежде, чем появляется командная строка.
  • Просмотр или поиск результатов в интерактивном режиме в UNIX с помощью less, more или любой другой подобной программы, является теперь возможным с опцией --pager[=. ] . Без параметра клиент mysql будет искать системную переменную PAGER и соответственно устанавливать свой параметр pager . Этот режим может быть запущен из интерактивной командной строки командой pager и заблокирован командой nopager . Команда факультативно берет параметр, и pager будет установлен в заданное им значение. Команда pager может быть вызвана без параметра, но это требует, чтобы использовалась опция --pager , или pager будет значением по умолчанию (stdout). pager работает только в UNIX, так как это использует функцию popen(), которая не существует в Windows. Под ОС Windows опция tee может использоваться вместо этого, хотя она не может быть столь же удобна, как pager в некоторых ситуациях.
  • Несколько советов относительно pager : Вы можете использовать его, чтобы писать в файл: И результаты будут переданы только в этот файл. Вы можете также передавать любые параметры для программ, которые Вы хотите использовать с pager : Из вышеупомянутого обратите внимание на опцию '-S'. Вы можете посчитать ее очень полезной при просмотре результатов. Попробуйте опцию с горизонтальным выводом (команды заканчиваются на '\g' или ';') и с вертикальным выводом (команды заканчиваются на '\G'). Иногда очень широкий набор результатов должен быстро читаться с экрана, с опцией -S и программой less Вы сможете просмотреть результаты внутри интерактивного less слева направо без строк, более длинных, чем Ваш экран. Это может сделать результат намного более читаемым. Вы можете переключать режим внутри интерактивного less с помощью '-S'. Подробности в описании на 'h'.
  • Вы можете объединять очень сложные способы обрабки результатов, например, следующее пошлет результаты двум файлам в двух различных каталогах, на двух различных жестких дисках, /dr1 и /dr2, и на экран через less:
  • Вы можете также объединять две функции: включить tee , pager установить на 'less', и Вы будете способны просмотреть результаты в unix 'less' и все еще копировать весь вывод в файл. Различие между UNIX tee , используемом с pager и клиентом mysql то, что встроенный режим tee работает, даже если Вы не имеете UNIX tee .

Утилита для выполнения административных операций. Синтаксис:

Вы можете получить список параметров, которые Ваша версия mysqladmin поддерживает, выполняя mysqladmin --help .

Текущая версия mysqladmin поддерживает следующие команды:

Все команды могут быть сокращены к их уникальному префиксу. Например:

Результат команды mysqladmin status имеет следующие столбцы:

UptimeЧисло секунд, которые прошли с момента запуска сервера
ThreadsЧисло активных потоков (клиентов)
QuestionsЧисло запросов от клиентуры с тех пор, как mysqld был запущен.
Slow queriesЗапросы, которые заняли больше, чем long_query_time секунд. Подробности в разделе "4.9.5 Медленный файл регистрации".
OpensСколько таблиц открылись в mysqld .
Flush tablesСколько выполнено команд flush . , refresh и reload .
Open tablesЧисло таблиц, которые открыты СЕЙЧАС.
Memory in useПамять, распределенная непосредственно кодом mysqld (доступно только, когда MySQL компилируется с опцией --with-debug=full).
Max memory usedМаксимальная память, распределенная непосредственно кодом mysqld (доступно только, когда MySQL компилируется с опцией --with-debug=full).

Если Вы делаете myslqadmin shutdown на сокете (другими словами, на компьютере, где запущен mysqld ), mysqladmin будет ждать, пока не будет удален MySQL pid-file , чтобы гарантировать, что сервер mysqld был завершен правильно.

Начиная с MySQL version 3.23.38, Вы можете использовать новый инструмент для проверки и ремонта таблиц MyISAM . Отличие от myisamchk в том, что mysqlcheck должен использоваться, когда сервер mysqld работает, а myisamchk работает только, когда сервер выключен.

mysqlcheck использует команды сервера MySQL CHECK , REPAIR , ANALYZE и OPTIMIZE удобным для пользователя способом.

Имеются три альтернативных способа вызвать mysqlcheck :

mysqlcheck имеет специальное свойство, сравнимое с другой клиентурой: заданное по умолчанию поведение при проверке таблиц (-c) может быть изменено переименованием. Так, если Вы хотите иметь инструмент для ремонта таблиц по умолчанию, Вы должны только скопировать mysqlcheck под именем mysqlrepair или создать символическую связь mysqlrepair .

Имена, которые Вы можете использовать, чтобы изменить заданное по умолчанию поведение mysqlcheck :

Параметры, доступные для mysqlcheck , перечислены здесь, пожалуйста, проверьте, что Ваша версия поддерживает вызов mysqlcheck --help .

Утилита позволяет сбросить в дамп одну или несколько баз данных для резервирования или транспортировки на другой сервер SQL (необязательно MySQL). Дамп будет содержать инструкции SQL, чтобы создать и заполнять таблицу данными.

Если Вы делаете копию на сервер, Вы должны рассмотреть использование вместо этой утилиты mysqlhotcopy . Подробности в разделе "4.8.6 mysqlhotcopy, копирование баз данных и таблиц MySQL".

Если Вы не задаете таблицы или используете --databases или --all-databases , целая база данных будет сброшена в дамп.

Вы можете получить список параметров, которые поддерживает Ваша версия mysqldump , выполняя mysqldump --help .

Обратите внимание, что, если Вы выполняете mysqldump без опций --quick или --opt , mysqldump загрузит целый набор результатов в память перед дампингом. Это будет, вероятно, проблемой, если Вы обрабатываете большую базу данных.

Обратите внимание, что, если Вы используете новую копию программы mysqldump и собираетесь делать дамп, который будет читаться очень старым сервером MySQL, Вы не должны использовать параметры --opt или -e .

mysqldump поддерживает следующие параметры:

Наиболее нормальное использование mysqldump : создание копий целых баз данных. Подробности в разделе "4.4.1 Резервирование баз данных":

Вы можете прочитать этот файл обратно в MySQL:

Однако, утилита также очень полезна, когда надо заполнить другой сервер MySQL информацией из базы данных:

Возможно выполнить дамп нескольких баз данных одной командой:

Если требуются все базы данных, можно использовать:

mysqlhotcopy представляет собой perl-скрипт, который использует LOCK TABLES , FLUSH TABLES и cp или scp , чтобы быстро сделать копию базы данных. Это самый быстрый способ сделать копию с базы данных или одиночной таблицы, но это может быть выполнено только на той же самой машине, где находятся каталоги баз данных.

mysqlhotcopy поддерживает следующие параметры:

Вы можете использовать perldoc mysqlhotcopy , чтобы получить более полную документацию для mysqlhotcopy .

mysqlhotcopy читает группы [client] и [mysqlhotcopy] из файлов опций.

Чтобы выполнить mysqlhotcopy , Вы нуждаетесь в доступе к резервному каталогу для записи, в привилегии SELECT для таблиц, которые Вы собираетесь копировать, и в привилегии MySQL Reload , чтобы выполнить команду FLUSH TABLES .

mysqlimport интерфейс командной строки к инструкции SQL LOAD DATA INFILE . Большинство параметров mysqlimport непосредственно соответствует тем же самым параметрам LOAD DATA INFILE .

mysqlimport вызывается подобно этому:

Для каждого текстового файла, указанного в командной строке, mysqlimport отделяет любое расширение от имени файла и использует результат, чтобы определить, в которую таблицу импортировать содержание файла. Например, файлы с именами patient.txt , patient.text и patient будут все вместе импортированы в одну таблицу patient .

mysqlimport поддерживает следующие параметры:

Имеется типовой образец выполнения mysqlimport :

mysqlshow может использоваться, чтобы быстро посмотреть, какие базы данных существуют, их таблицы и столбцы этих таблиц.

Программой mysql Вы можете получать ту же самую информацию командой SHOW . Подробности в разделе " 4.5.5 Синтаксис SHOW ".

mysqlshow вызывается подобно этому:

  • Если никакая база данных не задана, показываются все базы данных.
  • Если никакая таблица не задана, показываются все таблицы в базе данных.
  • Если никакой столбец не задан, показываются все столбцы и типы столбцов в таблице, соответствующие запросу.

Обратите внимание, что в более новых версиях MySQL, Вы только видите те базы данных/таблицы/столбцы, для которых Вы имеете некоторые привилегии.

Если последний параметр содержит подстановочные знаки оболочки или SQL ( * , ? , % или _ ), показывается только то, что согласовано групповым символом. Это может вызвать некоторый беспорядок, когда Вы пробуете отображать столбцы для таблицы с символом _ в имени, поскольку в этом случае mysqlshow показывает Вам имена, соответствующие образцу. Это легко устранимо добавлением в конце командной строки символа % (как отдельный параметр).

Клиент mysql обычно используется в интерактивном режиме:

Однако, также возможно поместить Ваши команды SQL в файл и сообщить, чтобы mysql читал ввод из того файла. Чтобы сделать так, создайте текстовый файл text_file , хранящий команды, которые Вы желаете выполнить. Затем вызовите mysql как показано ниже:

Вы можете также запустить Ваш текстовый файл с помощью инструкции USE db_name . В этом случае, не нужно определять имя базы данных на командной строке:

Читайте также: