hosting:mysql:storage-engine

2.7.15. Изменение типа хранилища

Перед проведением каких-либо действий важно создать резервную копию базы данных.

Конвертации типа хранилища в таблицах MySQL, к примеру из MyISAM в InnoDB, можно произвести следующими способами:

Чтобы изменить тип хранилища отдельных таблиц, подключитесь к базе данных с помощью phpMyAdmin или любого другого MySQL-клиента и для нужных таблиц выполните SQL-запрос вида:

ALTER TABLE table_name ENGINE=InnoDB;

Где вместо table_name укажите нужную таблицу, а вместо InnoDB — нужный тип движка хранилища.

Чтобы изменить тип хранилища для всех таблиц в базе данных, воспользуйтесь консольной программой mysql (для её использования нужно подключиться по SSH к серверу хостинга). Для проведения конвертации выполните:

for n in `mysql -h хост -u логин -pПАРОЛЬ имя_БД -B -N -e "show tables;"`;do mysql -h хост -u логин -pПАРОЛЬ имя_БД -B -N -e "ALTER TABLE $n ENGINE=innodb;";done

В указанной команде нужно указать данные для подключения к базе данных:

  • хост — сервер баз данных.
  • логин — имя пользователя базы данных.
  • ПАРОЛЬ — пароль пользователя базы данных.
  • имя_БД — название базы данных.
  • innodb — тип хранилища.

Важно: все данные, кроме типа хранилища, в команде нужно изменить дважды. При выполнении команды вывод может выглядеть так:

mysql: [Warning] Using a password on the command line interface can be insecure.

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

  • hosting/mysql/storage-engine.txt
  • Последние изменения: 2019/09/06 13:33
  • — karlov