hosting:mysql:storage-engine

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

Конвертации типа хранилища в таблицах MySQL, к примеру из MyISAM в InnoDB, можно произвести следующими способами:
Чтобы изменить тип хранилища отдельных таблиц, подключитесь к базе данных с помощью phpMyAdmin или любого другого MySQL-клиента и для нужных таблиц выполните SQL-запрос вида:
ALTER TABLE table_name ENGINE=InnoDB;

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

Чтобы изменить тип хранилища для всех таблиц в базе данных, воспользуйтесь консольной программой mysql (для её использования нужно подключиться по SSH к серверу хостинга). Для проведения конвертации всех таблиц в InnoDB выполните:
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
  • Последнее изменение: 2020/09/24 11:24
  • karlov