Mysql

MySQL 堅持嘗試使用 InnoDB,即使被告知不要,請幫助

  • September 7, 2017

我們正在試用 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設置為 MyISAM。innodb設置為關閉。為什麼要嘗試將此臨時表創建為 InnoDB?這是 5.5,而不是 5.6,所以我們還沒有default-tmp-storage-engine變數。請幫忙,這讓我發瘋了。

要禁用 InnoDB,請將其添加到 MySQL 5.5 上的 /etc/my.cnf。奴隸:

[mysqld]
skip-innodb

並在從站上執行:

service mysql restart

根據CREATE TABLE上的 MySQL 文件:

您可以通過在 CREATE TABLE 語句的末尾添加 SELECT 語句來從另一個表創建一個表:

創建表 new_tbl 選擇 * FROM orig_tbl; 有關更多資訊,請參閱第 13.1.17.1 節,“CREATE TABLE … SELECT 語法”。

使用 LIKE 根據另一個表的定義創建一個空表,包括在原始表中定義的任何列屬性和索引:

創建表 new_tbl LIKE orig_tbl;

使用與原始表相同版本的表儲存格式創建副本。原始表需要 SELECT 權限。

您必須在創建時指定 ENGINE

CREATE TEMPORARY TABLE ... ENGINE=MyISAM SELECT ...

解決這個問題

引用自:https://dba.stackexchange.com/questions/19862