我们正在试用MySQL 5.5,并已将其作为测试运行安装在我们的一个从服务器上。我们的主服务器是5.0,我们这里对InnoDB没有优化,所以我希望现在一切都是MyISAM。我已经在任何我能想到的地方禁用了InnoDB,但是复制引发的错误如下:
Error 'Unknown storage engine 'InnoDB'' on query. Default database: ''. Query: 'CREATE TEMPORARY TABLE ... SELECT ...
查询从不指定引擎为InnoDB。default-storage-engine设置为toMyISAM。innodb设置为OFF。为什么要将这个临时表创建为InnoDB?这是5.5,而不是5.6,所以我们还没有default-tmp-storage-engine变量。帮帮忙,这让我快疯了。
发布于 2012-06-25 15:27:51
若要禁用InnoDB,请将其添加到MySQL 5.5上的/etc/my.cnf。奴隶:
[mysqld]
skip-innodb在奴隶身上运行这个:
service mysql restart根据MySQL关于创建表的文档:
您可以通过在create语句的末尾添加SELECT语句来从另一个表创建一个表: CREATE new_tbl SELECT * from orig_tbl;有关详细信息,请参阅第13.1.17.1节,“创建表.选择“语法”。使用LIKE根据另一个表的定义创建一个空表,包括在原始表中定义的任何列属性和索引: created new_tbl (类似于orig_tbl);复制是使用与原始表相同的表存储格式创建的。在原始表上需要SELECT特权。
必须在创建时指定引擎。
CREATE TEMPORARY TABLE ... ENGINE=MyISAM SELECT ...来解决这个问题
发布于 2012-06-25 16:28:24
https://dba.stackexchange.com/questions/19862
复制相似问题