MySQL既存データベースのinnodb_file_per_tableパラメータをOFFから1に変更する方法
MySQLで既存のデータベースの「innodb_file_per_table」パラメータを「OFF」から「1」に変更する方法
MySQLのInnoDBストレージエンジンでは、innodb_file_per_table
パラメータを使用して、各テーブルのデータを個別のファイルに格納するか、共有テーブルスペースに格納するかを制御できます。デフォルトでは、このパラメータはMySQL 5.6.6以降でONに設定されています。
既存のデータベースでinnodb_file_per_table
パラメータを「OFF」から「1」に変更するには、以下の手順が必要です。
手順
MySQLサーバーを停止する
sudo service mysql stop
innodb_file_per_table=1
MySQL設定ファイルを保存して閉じる
変更を保存してファイルを閉じます。
以下のコマンドを使用して、MySQLサーバーを起動します。
sudo service mysql start
変更を確認する
MySQLサーバーが起動したら、以下のコマンドを使用して
innodb_file_per_table
パラメータの値を確認します。SHOW VARIABLES LIKE 'innodb_file_per_table';
出力は以下のようになります。
+-----------------------+-------+ | Variable_name | Value | +-----------------------+-------+ | innodb_file_per_table | 1 | +-----------------------+-------+
注意事項
innodb_file_per_table
パラメータを変更する前に、データベースをバックアップすることをお勧めします。- このパラメータを変更すると、データベースのパフォーマンスに影響を与える可能性があります。変更後には、パフォーマンスを監視することをお勧めします。
- 大規模なデータベースの場合、このパラメータを変更すると、データベースの再起動に時間がかかる場合があります。
上記の手順は、LinuxシステムでのMySQL/MariaDBにのみ適用されます。Windowsシステムの場合は、手順が異なる場合があります。
また、この回答は、情報提供のみを目的としており、個々の状況に代わるものではありません。データベースを変更する前に、必ずMySQL/MariaDBの公式ドキュメントを参照し、 квалифицированный специалисту consult してください。
-- 既存のデータベースのinnodb_file_per_tableパラメータをOFFから1に変更する
-- MySQLサーバーを停止する
sudo service mysql stop
-- MySQL設定ファイルを編集する
vim /etc/my.cnf
-- innodb_file_per_tableパラメータを見つけて値を1に変更する
innodb_file_per_table=1
-- MySQL設定ファイルを保存して閉じる
:wq
-- MySQLサーバーを起動する
sudo service mysql start
-- 変更を確認する
SHOW VARIABLES LIKE 'innodb_file_per_table';
このスクリプトは、以下の手順を実行します。
sudo service mysql stop
コマンドを使用して、MySQLサーバーを停止します。vim /etc/my.cnf
コマンドを使用して、MySQL設定ファイルを開きます。innodb_file_per_table
パラメータを見つけて値を1
に変更します。:wq
コマンドを使用して、MySQL設定ファイルを保存して閉じます。SHOW VARIABLES LIKE 'innodb_file_per_table';
コマンドを使用して、innodb_file_per_table
パラメータの値を確認します。
- このスクリプトを実行する前に、データベースをバックアップすることをお勧めします。
- このスクリプトは、LinuxシステムでのMySQLのみを対象としています。Windowsシステムの場合は、スクリプトを修正する必要がある場合があります。
MySQLで既存のデータベースの「innodb_file_per_table」パラメータを「OFF」から「1」に変更する方法
方法1:MySQL設定ファイルを手動で編集する
方法2:ALTER INSTANCEコマンドを使用する
MySQL 8.0以降では、ALTER INSTANCE
コマンドを使用して、innodb_file_per_table
パラメータを含むグローバル設定を変更できます。
mysql -u root -p
ALTER INSTANCE ENGINE INNODB SET innodb_file_per_table=1;
- この変更は、MySQLサーバー全体に適用されます。特定のデータベースにのみ適用したい場合は、方法1で説明したように、MySQL設定ファイルを手動で編集する必要があります。
mysql innodb mariadb