Mysql
在 MySQL 中遷移到 file-per-table 模式
我有 20 個 MySQL 數據庫,每個數據庫大約有 20 個表。所有數據都保存在名為 ibData1 的文件中。現在我發現了每個表模式下的文件,但是如果我更改 my.ini 文件中的值會發生什麼?
如何遷移到 file-per-table 模式並更改所有資料結構?
我更喜歡為每個數據庫都有一個目錄,其中每個表都保存在不同的文件中。
這太有趣了。昨天,有人問如何做相反的事情,我回答了這個問題:Migrate from innodb_file_per_table to off in MySQL
這裡是你想要的步驟
第1步
將 innodb_file_per_table 設置為 0
my.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
試一試 !!!