Мы используем cookie-файлы
Для оптимизации работы нашего сайта мы используем cookie-файлы. Продолжая использовать сайт, Вы соглашаетесь с использованием cookie-файлов.
Панель управления
  • Русский
  • Українська
  • UAH
  • USD
  • RUB
  • EUR
  • 0-800-307-307  Горячая линия
  • +38(044) 392-74-33  Киев
  • +38(057) 728-39-00  Харьков
  • +38(056) 794-38-31  Днепр
  • +38(032) 229-58-93  Львов
  • +38(048) 738-57-70  Одесса
  • +38(093) 170-15-42  Life
  • +38(067) 400-88-44  Киевстар
  • +1(888)393-24-51  USA, Toll free
  • +44(131)507-01-14  Great Britain
  • +7(499) 348-28-61  Москва

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.

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