innodb存儲引擎修正表同享空間為自力空間。本站提示廣大學習愛好者:(innodb存儲引擎修正表同享空間為自力空間)文章只能為提供參考,不一定能成為您想要的結果。以下是innodb存儲引擎修正表同享空間為自力空間正文
1,檢查一下是同享表空間,照樣自力表空間
mysql> show variables like '%per_table%';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| innodb_file_per_table | OFF |
+-----------------------+-------+
1 row in set (0.00 sec)
假如是OFF,確定不是自力表空間。假如是ON的話,也紛歧定是自力表空間。最直接的辦法就是檢查硬盤上的文件,自力表空間,每一個表都對應了一個空間。
[/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是一個數據庫名,外面的都是innodb的。像這類情形就是同享表空間。
2,停失落mysql
/etc/init.d/mysqld stop
3,修正my.cnf的設置裝備擺設文件
innodb-file-per-table=1
4,備份應用innodb引擎的數據庫
mysqldump -u tg -p tg >/home/6fan/tg.sql;
5,刪除應用innodb的數據庫,和日記文件
cd /var/lib/mysql //數據庫文件地位
rm -f ib* //刪除日記和空間
rm -rf tg //刪除應用innodb引擎的數據庫文件夾
假如不刪除應用innodb的數據庫文件夾,啟動不了innodb引擎,我檢查了一下毛病日記。以下
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,啟動mysql
/etc/init.d/mysqld start
7,導入數據庫
mysql -u root -p < /home/6fan/tg.sql
8,在檢查一下,是轉換好了
mysql> show variables like '%per_table%';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| innodb_file_per_table | ON |
+-----------------------+-------+
1 row in set (0.00 sec)
//檢查數據庫目次下的文件
[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
從這裡可以看出,每張表都對應有一個.ibd的文件,根同享表空間是紛歧樣的。到這兒就完整設置裝備擺設好了。