Я добавил строку 'skip_innodb' в файл my.cnf, чтобы отключить innodb и перезапустить mysqld. Но это не работает в базе данных. Есть ли альтернативные решения?
Как отключить innodb в mysql?
Ответ 1
Добавьте skip-innodb
в [mysqld]
в my.cnf
, а затем restart
сервер MySQL
См. файл журнала mysql для успеха с помощью tail -100 log_file_name_with_full_path
Проверить, используя следующий запрос:
SHOW ENGINES;
Ответ 2
Если вы используете MySql 5.5 или выше,
ignore-builtin-innodb
и
default-storage-engine = myisam
под
[mysqld]
в /etc/my.cnf
Ответ 3
Try
innodb=OFF
default-storage-engine=MyISAM
MyISAM - это всего лишь пример, который вы можете выбрать там, где захотите Вы можете подробнее прочитать здесь http://www.webhostingtalk.com/showthread.php?t=1052143
Ответ 4
Для mysql 5.6+
У Iv'e возникли трудности с попыткой применить другие ответы.
Это то, что я нашел лучше всего с mysql 5.6.19
1) изменить /etc/mysql/my.cnf
- ВАЖНО - поместите эти значения под [mysqld]
# ... other settings
[mysqld]
innodb=OFF
loose-innodb-trx=0
loose-innodb-locks=0
loose-innodb-lock-waits=0
loose-innodb-cmp=0
loose-innodb-cmp-per-index=0
loose-innodb-cmp-per-index-reset=0
loose-innodb-cmp-reset=0
loose-innodb-cmpmem=0
loose-innodb-cmpmem-reset=0
loose-innodb-buffer-page=0
loose-innodb-buffer-page-lru=0
loose-innodb-buffer-pool-stats=0
loose-innodb-metrics=0
loose-innodb-ft-default-stopword=0
loose-innodb-ft-inserted=0
loose-innodb-ft-deleted=0
loose-innodb-ft-being-deleted=0
loose-innodb-ft-config=0
loose-innodb-ft-index-cache=0
loose-innodb-ft-index-table=0
loose-innodb-sys-tables=0
loose-innodb-sys-tablestats=0
loose-innodb-sys-indexes=0
loose-innodb-sys-columns=0
loose-innodb-sys-fields=0
loose-innodb-sys-foreign=0
loose-innodb-sys-foreign-cols=0
default-storage-engine=MyISAM
default_tmp_storage_engine=MyISAM
# ...
2) перезапустить mysql
sudo service mysql restart
Источник: MySQL docs - 14.1.3 Отключение InnoDB
Как насчет миграции?
если вы хотите перенести существующую базу данных с InnoDB
на MyISAM
, вышеуказанное as-is не влияет на существующие таблицы (и даст вам время выполнения ошибки).
Решение
существует утилита под названием mysqldump
, которая хранит существующие таблицы базы данных + данные в файле (SQL script)
1) резервная копия
mysqldump -u [user] -p[pass] [database name] > /tmp/backup.sql
2) измените /etc/mysql/my.cnf
, как показано выше
nano /etc/mysql/my.cnf
# ...
[mysqld]
innodb=OFF
loose-innodb-trx=0
loose-innodb-locks=0
# ...
3) перезапустить mysql
sudo service mysql restart
4) перезагрузить данные с 1-го шага
mysql -u [user] -p[pass] [database name] < /tmp/backup.sql
Ответ 5
В MySQL 5.5+ требуемый фрагмент конфигурации будет следующим:
[mysqld]
skip-innodb
default-storage-engine = myisam