Mysql
InnoDB 到 MyISAM 的轉換問題
我有一個基於 CentOS 5 OS、mysql 5 和 phpmyadmin 的專用伺服器
我試圖將所有數據庫表從 InnoDB 轉換為 MISAM。我試圖通過在 /etc/my.cnf 文件中設置值來做到這一點
skip-innodb
之後,我發現伺服器中的一些php腳本有一些錯誤
Unknown table engine 'InnoDB'
我在 phpmyadmin 中檢查了一些數據庫,我在每個數據庫中發現了一些正在使用的表
如何將所有表從 InnoDB 成功轉換為 MyISAM ?
設置
skip-innodb
確實禁用了 InnoDB 儲存引擎,但這不會轉換錶。您需要編寫所有表的轉換腳本。
第1步
註釋掉
skip-innodb
[mysqld] #skip-innodb
第2步
service mysql restart
第 3 步
執行以下腳本 snf 查看結果
CONVERT_SCRIPT=/tmp/InnoDBConversionToMyISAM.sql SQL="SELECT CONCAT('ALTER TABLE ',table_schema,'.',table_name,' ENGINE=MyISAM;') " SQL="${SQL} FROM information_schema.tables " SQL="${SQL} WHERE engine='InnoDB' AND table_schema <> 'mysql'" mysql -uroot -p -ANe"${SQL}" > ${CONVERT_SCRIPT}
第四步
查看腳本
vi /tmp/InnoDBConversionToMyISAM.sql
要麼
less /tmp/InnoDBConversionToMyISAM.sql
如果你喜歡這些內容,那麼…
第 5 步
登錄到mysql並執行
mysql> source /tmp/InnoDBConversionToMyISAM.sql
第 6 步
取消註釋掉
skip-innodb
[mysqld] skip-innodb
第 7 步
service mysql restart
第 8 步
沒有第 8 步。就是這樣!
試一試 !!!