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: ********

 

Поскольку пароль в команде не указан вводим его, затем можно зайти в консоль 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 в этом случае завершит обработку файла, в общем случае выполнение команд прервется как только будет обнаружена первая инструкция с неверным синтаксисом.