MySQL 5.6へのアップグレードで "Table 'performance_schema.session_variables' doesn't exist" エラーが発生した場合の対処法

2024-04-09

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つです。

  1. アップグレード元のMySQLバージョンが5.6よりも古い

MySQL 5.6よりも古いバージョンからアップグレードする場合、performance_schema.session_variablesテーブルは存在しません。

  1. アップグレードプロセス中にエラーが発生した

アップグレードプロセス中にエラーが発生すると、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


データ移行はもう怖くない!SQL Server .bakファイルをMySQLへ安全に移行する方法

SQL Server . bakファイルは、データベースのバックアップファイルです。このファイルを直接MySQLにインポートすることはできませんが、いくつかの方法でデータを移行することができます。方法データベースの復元とエクスポート SQL Server Management Studio (SSMS) を使用して、.bakファイルを別のSQL Serverインスタンスに復元します。 復元したデータベースから、MySQLで使える形式にデータをエクスポートします。 MySQL Workbenchなどのツールを使用して、エクスポートしたデータをMySQLにインポートします。...


特定のテーブルをスキップしてmysqldumpでデータベースをバックアップする方法

mysqldumpは、MySQLデータベースのバックアップや復元を行うためのコマンドラインツールです。デフォルトでは、指定されたデータベースのすべてのテーブルがダンプされますが、特定のテーブルをスキップすることも可能です。方法特定のテーブルをスキップするには、以下の方法があります。...


GROUP BY句とROW_NUMBER()関数で重複レコードを見つける

COUNT()関数とGROUP BY句を使うこの方法は、特定の列の値が同じレコードをグループ化し、グループ内のレコード数をカウントすることで、重複レコードを見つけます。例usersテーブルに、name列とemail列がある場合、name列に重複するレコードを見つけるには、次のようなSQLクエリを使用します。...


MySQLリモート接続エラー「1045:アクセスが拒否されました」の徹底解説

このエラーが発生する原因:このエラーは、MySQLサーバーにリモートから接続しようと試みた際に、ユーザー名とパスワードが間違っている、またはリモート接続が許可されていない場合に発生します。考えられる原因は以下の通りです。ユーザー名とパスワードの誤り: ユーザー名またはパスワードを間違えて入力していないか確認してください。大文字と小文字の区別にも注意してください。...


SQL SQL SQL SQL Amazon で見る



MySQL Workbench で MariaDB に接続時のエラー「テーブル 'performance_schema.user_variables_by_thread' が存在しません」の解決策

MySQL Workbenchを使用してMariaDBに接続しようとすると、以下のエラーが発生することがあります。このエラーは、MySQL Workbench 8.0.16以降でMariaDB 10. xに接続する場合に発生することが多いようです。