innodb存儲(chǔ)引擎修改表共享空間為獨(dú)立空間
1,查看一下是共享表空間,還是獨(dú)立表空間
mysql> show variables like '%per_table%';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| innodb_file_per_table | OFF |
+-----------------------+-------+
1 row in set (0.00 sec)
如果是OFF,肯定不是獨(dú)立表空間。如果是ON的話,也不一定是獨(dú)立表空間。最直接的方法就是查看硬盤上的文件,獨(dú)立表空間,每個(gè)表都對(duì)應(yīng)了一個(gè)空間。
[/code]
[root@localhost tg]# ll
總用量 64
-rw-rw----. 1 mysql mysql 65 12月 30 20:09 db.opt
-rw-rw----. 1 mysql mysql 8658 12月 30 23:17 gb.frm
-rw-rw----. 1 mysql mysql 8658 12月 30 23:19 qr.frm
-rw-rw----. 1 mysql mysql 8658 12月 30 23:19 qy.frm
-rw-rw----. 1 mysql mysql 8658 12月 30 23:19 tg.frm
-rw-rw----. 1 mysql mysql 8658 12月[/code]
tg是一個(gè)數(shù)據(jù)庫名,里面的都是innodb的。像這種情況就是共享表空間。
2,停掉mysql
/etc/init.d/mysqld stop
3,修改my.cnf的配置文件
innodb-file-per-table=1
4,備份使用innodb引擎的數(shù)據(jù)庫
mysqldump -u tg -p tg >/home/6fan/tg.sql;
5,刪除使用innodb的數(shù)據(jù)庫,以及日志文件
cd /var/lib/mysql //數(shù)據(jù)庫文件位置
rm -f ib* //刪除日志和空間
rm -rf tg //刪除使用innodb引擎的數(shù)據(jù)庫文件夾
如果不刪除使用innodb的數(shù)據(jù)庫文件夾,啟動(dòng)不了innodb引擎,我查看了一下錯(cuò)誤日志。如下
111231 20:54:44 InnoDB: Log file ./ib_logfile0 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile0 size to 512 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Progress in MB: 100 200 300 400 500
111231 20:54:50 InnoDB: Log file ./ib_logfile1 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile1 size to 512 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Progress in MB: 100 200 300 400 500
InnoDB: Cannot initialize created log files because
InnoDB: data files are corrupt, or new data files were
InnoDB: created when the database was started previous
InnoDB: time but the database was not shut down
InnoDB: normally after that.
111231 20:54:55 [ERROR] Plugin 'InnoDB' init function returned error.
111231 20:54:55 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
111231 20:54:55 [Note] Event Scheduler: Loaded 0 events
6,啟動(dòng)mysql
/etc/init.d/mysqld start
7,導(dǎo)入數(shù)據(jù)庫
mysql -u root -p < /home/6fan/tg.sql
8,在查看一下,是轉(zhuǎn)換好了
mysql> show variables like '%per_table%';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| innodb_file_per_table | ON |
+-----------------------+-------+
1 row in set (0.00 sec)
//查看數(shù)據(jù)庫目錄下的文件
[root@localhost tg]# ll
總用量 544
-rw-rw----. 1 mysql mysql 65 12月 31 22:48 db.opt
-rw-rw----. 1 mysql mysql 8658 12月 31 22:49 gb.frm
-rw-rw----. 1 mysql mysql 98304 12月 31 22:49 gb.ibd
-rw-rw----. 1 mysql mysql 8658 12月 31 22:49 qr.frm
-rw-rw----. 1 mysql mysql 98304 12月 31 22:49 qr.ibd
-rw-rw----. 1 mysql mysql 8658 12月 31 22:49 qy.frm
-rw-rw----. 1 mysql mysql 98304 12月 31 22:49 qy.ibd
-rw-rw----. 1 mysql mysql 8658 12月 31 22:49 tg.frm
-rw-rw----. 1 mysql mysql 98304 12月 31 22:49 tg.ibd
-rw-rw----. 1 mysql mysql 8658 12月 31 22:49 xcy.frm
-rw-rw----. 1 mysql mysql 98304 12月 31 22:49 xcy.ibd
從這里可以看出,每一張表都對(duì)應(yīng)有一個(gè).ibd的文件,根共享表空間是不一樣的。到這兒就完全配置好了。
相關(guān)文章
SQL筆記之?dāng)?shù)據(jù)庫結(jié)構(gòu)優(yōu)化方式
這篇文章主要介紹了SQL筆記之?dāng)?shù)據(jù)庫結(jié)構(gòu)優(yōu)化方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01MySQL: mysql is not running but lock exists 的解決方法
下面可以參考下面的方法步驟解決。最后查到一個(gè)網(wǎng)友說可能和log文件有關(guān),于是將log文件給移除了,再重啟MySQL終于OK了2009-06-06淺談mysql中多表不關(guān)聯(lián)查詢的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄獪\談mysql中多表不關(guān)聯(lián)查詢的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10深入解析Linux下MySQL數(shù)據(jù)庫的備份與還原
以下是對(duì)Linux下MySQL數(shù)據(jù)庫的備份與還原進(jìn)行了詳細(xì)的分析介紹。需要的朋友可以過來參考下2013-08-08MYSQL必知必會(huì)讀書筆記第四章之檢索數(shù)據(jù)
MySQL是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)。接下來通過本文給大家介紹MYSQL必知必會(huì)讀書筆記第四章之檢索數(shù)據(jù),感興趣的朋友一起學(xué)習(xí)吧2016-05-05