之前公司的資料庫存儲引擎全部為MyISAM,資料量和通路量都不是很大,是以一直都沒什麼問題。但是最近出現了MySQL資料表經常被鎖的情況,直接導緻了使用者連接配接網站時逾時而傳回502,于是決定把存儲引擎轉為Innodb的,以解決MyISAM的表鎖問題。下面将操作步驟記錄一下。
1、導出centos資料庫的表結構
- mysqldump -d -uxxx -p centos > centos_table.sql
其中-d參數表示不導出資料,隻導出表結構
2、替換centos_table.sql裡的MyISAM為INNODB
- sed -i 's/MyISAM/INNODB/g' centos_table.sql
3、建立資料庫centos_new,并導入表結構
- mysql > create database centos_new;
- mysql -uroot -p centos_new < centos_table.sql
可以通過show table status來檢查表引擎是否為INNODB。
4、導出centos的資料
- mysqldump -t -uroot -p centos > centos_data.sql
其中-t參數表示隻導資料,不導表結構
5、導入資料到centos_new