Останавливаем MySQL и делаем бекап файлов/каталогов MySQL
1 |
# /etc/init.d/mysql stop |
1 |
# cp -pra /var/lib/mysql /var/lib/mysql-back |
Запускаем MySQL и создаем бекап всех баз данных
1 |
# /etc/init.d/mysql start |
1 |
# mysqldump -EKR --single-transaction --all-databases > /root/dump.sql |
Создаем SQL файл drop.sql для удаления всех баз данных за исключением базы данных mysql и information_schema
1 |
# mysql -e "SELECT DISTINCT CONCAT ('DROP DATABASE ',TABLE_SCHEMA,' ;') FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA <> 'mysql' AND TABLE_SCHEMA <> 'information_schema';" | tail -n+2 > /root/drop.sql |
Проверяем,что файл drop.sql содержит корректные имена баз данных( и не содержит баз данных mysql и information_schema)
1 |
# less /root/drop.sql |
Выполняем удаление баз данных
1 |
# mysql < /root/drop.sql |
Проверяем отсутствие Innodb-таблиц
1 |
# mysql -e "SELECT table_name, table_schema, engine FROM information_schema.tables WHERE engine = 'InnoDB';" |
Останавливаем MySQL и удаляем Innodb-файлы
1 |
# /etc/init.d/mysql stop |
1 |
# rm /var/lib/mysql/ibdata1 /var/lib/mysql/ib_logfile0 /var/lib/mysql/ib_logfile1 |
Включаем опцию innodb_file_per_table
1 |
# nano /etc/mysql/my.cnf |
1 |
innodb_file_per_table = 1 |
Запускаем MySQL и запускаем импорт баз данных
1 |
# /etc/init.d/mysql start |
1 |
# mysql < /root/dump.sql |
Принудительно запускаем mysql_upgrade(для создания performance_schema)
1 |
# mysql_upgrade --force |
Источник:
https://easyengine.io/tutorials/mysql/enable-innodb-file-per-table