MariaDBで「Mariadb Can not drop System versioning」エラーが発生する原因と解決方法

2024-04-02

MariaDBで「Mariadb Can not drop System versioning」エラーが発生する原因と解決方法

原因

テーブルがInnoDBストレージエンジンを使用していない

システムバージョン管理は、InnoDBストレージエンジンでサポートされている機能です。テーブルがMyISAMなどの他のストレージエンジンを使用している場合、このエラーが発生します。

テーブルに外国キー制約がある場合、システムバージョン管理を無効化することはできません。まず、すべての外国キー制約を削除する必要があります。

解決方法

テーブルのストレージエンジンをInnoDBに変更する

ALTER TABLE table_name ENGINE=InnoDB;

テーブルからすべての外国キー制約を削除する

ALTER TABLE table_name DROP FOREIGN KEY fk_name;

テーブルを再作成する

テーブルのストレージエンジンをInnoDBに変更し、すべての外国キー制約と参照制約を削除した後、テーブルを再作成することで、システムバージョン管理を無効化できます。

MariaDBのバージョンを確認する

MariaDB 10.2以前を使用している場合、システムバージョン管理を無効化することはできません。MariaDB 10.3以降を使用していることを確認してください。




-- テーブルのストレージエンジンをInnoDBに変更する

ALTER TABLE テーブル名 ENGINE=InnoDB;

-- テーブルからすべての外国キー制約を削除する

ALTER TABLE テーブル名 DROP FOREIGN KEY 外部キー名;

-- テーブルからすべての参照制約を削除する

ALTER TABLE テーブル名 DROP CONSTRAINT 制約名;

-- テーブルを再作成する

DROP TABLE テーブル名;

CREATE TABLE テーブル名 (
  カラム名11,
  カラム名22,
  ...
) ENGINE=InnoDB;

注意:

上記のコードを実行する前に、必ずデータベースをバックアップしてください。




MariaDBでシステムバージョン管理を無効にするその他の方法

MySQL Workbenchは、MariaDBを含むMySQLデータベースを管理するためのGUIツールです。MySQL Workbenchを使用してシステムバージョン管理を無効にするには、以下の手順に従います。

  1. MySQL Workbenchを起動し、データベースに接続します。
  2. ナビゲーションツリーで、テーブル名を右クリックし、「テーブルの編集」を選択します。
  3. 「ストレージ」タブを選択します。
  4. 「ストレージエンジン」ドロップダウンリストから「InnoDB」を選択します。
  5. 「OK」をクリックします。

mysqldumpは、MySQLデータベースをダンプするためのコマンドラインツールです。mysqldumpを使用してシステムバージョン管理を無効にするには、以下の手順に従います。

  1. 以下のコマンドを実行して、テーブルのダンプファイルを作成します。
mysqldump -uroot -p -d データベース名 テーブル名 > テーブル名.sql
  1. テキストエディタでテーブル名.sqlファイルを開き、以下の行を削除します。
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
mysql -uroot -p データベース名 < テーブル名.sql

MariaDBの構成ファイル (/etc/my.cnf) を編集して、システムバージョン管理を無効にすることもできます。

  1. 以下の行を構成ファイルに追加します。
innodb_system_versioning=OFF
  1. MariaDBを再起動します。

mariadb


MariaDBのMultiple File Tablesでパフォーマンスを向上させる

利点パフォーマンス向上: データが複数のファイルに分散されることで、I/O操作が分散され、読み書き速度が向上します。スケーラビリティ: データ量が増加しても、ファイルを追加することでテーブルを拡張できます。可用性向上: 1つのファイルが破損しても、他のファイルからデータを取り出すことができるため、データ損失のリスクが低減されます。...


[上級者向け] MySQL/MariaDBの列クエリ状況を徹底調査: ログ分析、コードレビュー、ツール活用まで

方法 1: EXPLAIN PLAN を使用するMySQL/MariaDB には、クエリの実行計画を表示する EXPLAIN PLAN ステートメントがあります。このステートメントを使用すると、各テーブルで使用されるインデックス、テーブルの読み取り方法、およびクエリの実行にかかる推定コストに関する情報を確認できます。...


WAMPサーバーを再インストールしてMariaDBをインストールする方法

WAMPサーバーでMySQLをMariaDBに切り替える方法はいくつかあります。ここでは、最も簡単な方法であるMariaDBをインストールしてMySQLのサービスを置き換える方法を紹介します。MariaDBは、MySQLと互換性のあるオープンソースのデータベースサーバーです。MySQLの機能をすべて備えているだけでなく、パフォーマンスの向上、拡張性の向上、新しい機能の追加など、多くの利点があります。...


CentOS 7 に MariaDB 10.3 をインストール後、ステータス確認でエラーが発生する場合の解決策

CentOS 7 に MariaDB 10. 3 をインストール後、systemctl status mariadb コマンドでステータスを確認しようとすると、エラーが発生する。原因:このエラーにはいくつかの潜在的な原因が考えられます。MariaDB サービスが起動していない: MariaDB サービスが起動していない場合、systemctl status mariadb コマンドはエラーを返します。...


MariaDBで始めるテポーラルテーブル:履歴データをタイムトラベルで追跡

このチュートリアルを始める前に、以下の条件を満たしていることを確認してください。MariaDB 10. 4がインストールされているテポーラルテーブルを作成する方法を知っている履歴データを挿入するテポーラルテーブルを作成します。履歴データを挿入します。...


SQL SQL SQL SQL Amazon で見る



MariaDBが起動しない!?エラーメッセージ「Can't create test file /home/mysql/beta.lower-test」を解決する方法

MariaDBをアップデート後、以下のエラーメッセージが表示されて起動できない場合があります。原因:このエラーは、MariaDBがテストファイル /home/mysql/beta. lower-test を作成できないことが原因です。このファイルは、データベースの文字コード変換機能をテストするために使用されます。


MariaDBデータベースにおける「SHOW PACKAGE STATUS」クエリ:詳細解説と「Couldn't execute 'SHOW PACKAGE STATUS WHERE Db='db_name'」エラーのトラブルシューティング

エラー発生状況このエラーは、MariaDBデータベースを操作する際に、SHOW PACKAGE STATUS クエリを実行しようとしたときに発生します。これは、データベースのパッケージ情報を取得するためのクエリです。エラー原因このエラーが発生する主な原因は2つあります。


MariaDBサーバーの停止方法に関するアンケートにご協力ください!mysql.server stopコマンドの落とし穴と回避策

mysql. server stop コマンドを使って MariaDB サーバーを停止しようとすると、サーバーが停止せず、以下のエラーメッセージが表示されることがあります。原因この問題は、いくつかの原因によって発生する可能性があります。サーバーがビジー状態: サーバーが書き込み操作 (INSERT、UPDATE、DELETE、ALTER など) を実行している場合、mysql