Batch mode в MySQL, автоматизация работы с MySQL


Batch mode в MySQL — режим выполнения команд не из интерактивной оболочки, а из заранее созданного скрипта. Все команды, которые требуется выполнить последовательно заносятся в файл. Затем путь к файлу указывается MySQL.



Batch mode может быть полезен если требуется о одному образцу настроить определенное количество нод MySQL сервера. ПО сути batch файл является аналогом стандартного bash скрипта.



Batch mode MySQL


Выполняются команды из файла таким образом:

mysql -h host -u user -pPASSWORD < file



PASSWORD можно задать или сразу в консоли или ввести в возникающем после выполнения команды диалоге.



Создадим тестовый файл передавая команды серверу баз данных из которого создадим базу и таблицу.

mcedit batch

drop database lessontest;
create database lessontest;
use lessontest;
create table lessontesttable(
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
quit



Теперь передадим файл в MySQL указав имя пользователя

mysql -u root -p < batch

Enter password: ********



Поскольку пароль в команде не указан вводим его.


Пример вывода приведен на скриншоте:

batch mode mysql


Затем можно зайти в консоль MySQL и посмотреть появились ли база и таблица


mysql> show databases;

+———————+
| Database |
+———————+
| information_schema |
| REAL_ESTATE_AGENCY |
| mysql |
| performance_schema |
| lessontest |
+———————+
5 rows in set (0.00 sec)



mysql> show tables;

+——————+
| Tables_in_lessontest |
+——————+
| lessontesttable |
+——————+
1 row in set (0.00 sec)



При работе с MySQL в batch mode можно использовать ключ --force. С ним будут подавляться все сообщения о возникающих ошибках.

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

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



Читайте про то как сменить root пароль MySQL. Это требуется если актуальный пароль неизвестен и нет возможности попасть в консоль.

Сказать спасибо