Конвертация таблиц mysql

В результате перехода с mysql на mariadb потребовалось перевести некоторые базы на другой тип хранилища отличный от MyISAM

Для примера: есть база ftp. В базе есть две таблицы. Конвертация таблиц выполняется командой

mysql -u root -p -e "SELECT CONCAT('ALTER TABLE ', table_name, ' ENGINE=Aria;') FROM information_schema.tables WHERE table_schema = 'ftp';" --skip-column-names | cut -d " " -f 1-4 > convert.sql

В полученом файле увидим команды необходимые для преобразования

ALTER TABLE users_table ENGINE=Aria;
ALTER TABLE groups_table ENGINE=Aria;

Теперь натравим файл на базу и посмотрим статус таблиц

mysql -u root -p ftp < convert.sql 
mysql -u root -p -e 'SHOW TABLE STATUS FROM ftp;' | awk '{print $1,$2}'

Name Engine
users_table Aria
groups_table Aria

Как видно тип хранилища стал другой

Александр Черных
системный администратор

Статьи по теме

0