Mysql

在 MySQL 中遷移到 file-per-table 模式

  • October 27, 2014

我有 20 個 MySQL 數據庫,每個數據庫大約有 20 個表。所有數據都保存在名為 ibData1 的文件中。現在我發現了每個表模式下的文件,但是如果我更改 my.ini 文件中的值會發生什麼?

如何遷移到 file-per-table 模式並更改所有資料結構?

我更喜歡為每個數據庫都有一個目錄,其中每個表都保存在不同的文件中。

這太有趣了。昨天,有人問如何做相反的事情,我回答了這個問題:Migrate from innodb_file_per_table to off in MySQL

這裡是你想要的步驟

第1步

將 innodb_file_per_table 設置為 0my.ini

[mysqld]
innodb_file_per_table = 1

第2步

以管理員模式登錄命令提示符並執行

C:\> net stop mysql
C:\> net start mysql

第 3 步

再次將每個 InnoDB 表轉換為 InnoDB

set MYSQLUSER=root
set MYSQLPASS=rootpass
mysql -u%MYSQLUSER% -p%MYSQLPASS% -ANe"SELECT CONCAT('ALTER TABLE ', table_schema, '.', table_name, ' ENGINE=InnoDB;') FROM information_schema.tables WHERE engine='InnoDB';" > C:\ConvertInnoDBToInnoDB.sql
notepad C:\ConvertInnoDBToInnoDB.sql

查看腳本並滿意後,登錄 mysql 並執行它

mysql> source C:\ConvertInnoDBToInnoDB.sql

試一試 !!!

引用自:https://dba.stackexchange.com/questions/61286