MySQL 5.6へのアップグレードで "Table 'performance_schema.session_variables' doesn't exist" エラーが発生した場合の対処法
MySQLのアップグレード時に発生するエラー "Table 'performance_schema.session_variables' doesn't exist" の解説
MySQLをアップグレードする際に、以下のエラーが発生する可能性があります。
ERROR 1146 (42S02): Table 'performance_schema.session_variables' doesn't exist
このエラーは、performance_schema.session_variables テーブルが存在しないために発生します。このテーブルは、MySQL 5.6で導入された新しいテーブルであり、セッション変数の情報を保存するために使用されます。
原因
このエラーが発生する主な原因は以下の2つです。
- アップグレード元のMySQLバージョンが5.6よりも古い
MySQL 5.6よりも古いバージョンからアップグレードする場合、performance_schema.session_variablesテーブルは存在しません。
- アップグレードプロセス中にエラーが発生した
アップグレードプロセス中にエラーが発生すると、performance_schema.session_variablesテーブルが正しく作成されない可能性があります。
解決方法
このエラーを解決するには、以下の方法を試してください。
方法1:MySQL 5.6以降にアップグレードする
MySQL 5.6よりも古いバージョンを使用している場合は、MySQL 5.6以降にアップグレードしてください。
方法2:performance_schema.session_variablesテーブルを作成する
CREATE TABLE performance_schema.session_variables (
VARIABLE_NAME VARCHAR(64) NOT NULL,
VARIABLE_VALUE VARCHAR(1024) NOT NULL,
VARIABLE_SCOPE VARCHAR(64) NOT NULL,
VARIABLE_OWNER VARCHAR(64) NOT NULL,
VARIABLE_FLAGS VARCHAR(32) NOT NULL,
PRIMARY KEY (VARIABLE_NAME, VARIABLE_SCOPE)
) ENGINE=InnoDB;
方法3:MySQLを再インストールする
上記の方法で解決できない場合は、MySQLを再インストールしてみてください。
補足
- performance_schema.session_variablesテーブルは、パフォーマンススキーマの一部です。パフォーマンススキーマは、MySQLのパフォーマンスを監視するために使用されるツールです。
- performance_schema.session_variablesテーブルには、セッション変数の名前、値、スコープ、所有者、フラグなどの情報が保存されます。
USE performance_schema;
CREATE TABLE session_variables (
VARIABLE_NAME VARCHAR(64) NOT NULL,
VARIABLE_VALUE VARCHAR(1024) NOT NULL,
VARIABLE_SCOPE VARCHAR(64) NOT NULL,
VARIABLE_OWNER VARCHAR(64) NOT NULL,
VARIABLE_FLAGS VARCHAR(32) NOT NULL,
PRIMARY KEY (VARIABLE_NAME, VARIABLE_SCOPE)
) ENGINE=InnoDB;
注意事項
- このコードを実行する前に、performance_schema データベースが存在することを確認してください。
- このコードは、MySQL 5.6以降で使用できます。
方法4:MySQLのバージョンをダウングレードする
MySQL 5.6以降にアップグレードした後にこのエラーが発生した場合は、MySQLのバージョンをダウングレードすることで解決できる可能性があります。
- MySQLのバージョンをダウングレードすると、新しい機能を使用できなくなる可能性があります。
- MySQLのサポートに問い合わせるには、MySQLのアカウントが必要になります。
mysql upgrade