MySQL數(shù)據(jù)庫MyISAM存儲引擎轉(zhuǎn)為Innodb的方法

2013-09-16 10:11:20來源:Linux Today作者:

之前公司的數(shù)據(jù)庫存儲引擎全部為MyISAM,數(shù)據(jù)量和訪問量都不是很大,所以一直都沒什么問題。但是最近出現(xiàn)了MySQL數(shù)據(jù)表經(jīng)常被鎖的情況,直接導(dǎo)致了用戶連接網(wǎng)站時超時而返回502,于是決定把存儲引擎轉(zhuǎn)為Innodb的,以

之前公司的數(shù)據(jù)庫存儲引擎全部為MyISAM,數(shù)據(jù)量和訪問量都不是很大,所以一直都沒什么問題。但是最近出現(xiàn)了MySQL數(shù)據(jù)表經(jīng)常被鎖的情況,直接導(dǎo)致了用戶連接網(wǎng)站時超時而返回502,于是決定把存儲引擎轉(zhuǎn)為Innodb的,以解決MyISAM的表鎖問題。下面將操作步驟記錄一下。

1、導(dǎo)出CentOS數(shù)據(jù)庫的表結(jié)構(gòu)

mysqldump -d -uxxx -p centos > centos_table.sql

其中-d參數(shù)表示不導(dǎo)出數(shù)據(jù),只導(dǎo)出表結(jié)構(gòu)

2、替換centos_table.sql里的MyISAM為INNODB

sed -i 's/MyISAM/INNODB/g' centos_table.sql

3、新建數(shù)據(jù)庫centos_new,并導(dǎo)入表結(jié)構(gòu)

mysql > create database centos_new;

mysql -uroot -p centos_new < centos_table.sql

可以通過show table status來檢查表引擎是否為INNODB。

4、導(dǎo)出centos的數(shù)據(jù)

mysqldump -t -uroot -p centos > centos_data.sql

其中-t參數(shù)表示只導(dǎo)數(shù)據(jù),不導(dǎo)表結(jié)構(gòu)

5、導(dǎo)入數(shù)據(jù)到centos_new

mysql -uroot -p centos_new < centos_data.sql

關(guān)鍵詞:MySQLMyISAMInnodb

贊助商鏈接: