如何在mysql中禁用innodb?

Dhi*_*pan 13 mysql database

我在my.cnf文件中添加了'skip_innodb'行以禁用innodb并重新启动mysqld.但是,它不会影响数据库.有没有替代解决方案?

Aka*_* KC 34

如果您使用的是MySql 5.5或更高版本,

ignore-builtin-innodb
Run Code Online (Sandbox Code Playgroud)

default-storage-engine = myisam
Run Code Online (Sandbox Code Playgroud)

[mysqld]
Run Code Online (Sandbox Code Playgroud)

/etc/my.cnf

  • 从MySQL 5.5及更高版本开始,不使用`ignore-builtin-innodb`,而是使用`innodb = OFF`或`skip-innodb`,然后使用`default-storage-engine = myisam`.请参阅:[MySQL手册](http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html)和[Todd的MySQL博客](http://mysqlblog.fivefarmers.com/2012/ 08/31 /弃用合的MySQL-5-6-ignore_builtin_innodb /) (5认同)

Ome*_*esh 9

添加skip-innodb[mysqld]my.cnf,然后restartMySQL服务器

有关成功的信息,请参阅mysql日志文件 tail -100 log_file_name_with_full_path

使用以下查询验证:

SHOW ENGINES;
Run Code Online (Sandbox Code Playgroud)


Zii*_*der 9

尝试

innodb=OFF
default-storage-engine=MyISAM
Run Code Online (Sandbox Code Playgroud)

MyISAM只是一个例子,你可以选择你想要的那里你可以在这里阅读更多http://www.webhostingtalk.com/showthread.php?t=1052143


Jos*_*ush 7

对于 mysql 5.6+

我在尝试应用其他答案时遇到了困难.这是我最好的选择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

# ...
Run Code Online (Sandbox Code Playgroud)

2)重启mysql

sudo service mysql restart
Run Code Online (Sandbox Code Playgroud)

来源:MySQL文档 - 14.1.3关闭InnoDB


迁移怎么样?

如果您想将现有的数据库迁移InnoDBMyISAM,上述作为,是不会影响现有的表(并会给你运行时错误).

有一个名为mysqldumpuses 的实用程序将现有数据库表+数据存储到文件中(SQL脚本)

1)备份

mysqldump -u [user] -p[pass] [database name] > /tmp/backup.sql
Run Code Online (Sandbox Code Playgroud)

2)/etc/mysql/my.cnf如上所示改变

nano /etc/mysql/my.cnf

# ...
[mysqld]

innodb=OFF
loose-innodb-trx=0
loose-innodb-locks=0
# ...
Run Code Online (Sandbox Code Playgroud)

3)重启mysql

sudo service mysql restart
Run Code Online (Sandbox Code Playgroud)

4)从第1步重新加载数据

mysql -u [user] -p[pass] [database name] < /tmp/backup.sql
Run Code Online (Sandbox Code Playgroud)