MySQL 8.0で非推奨になった機能とは?主な変更点と代替手段を解説
MySQLで非推奨(Deprecated)とされた機能の一部は、今後のバージョンで削除される可能性があります。アプリケーションが特定のバージョンで非推奨となった機能を使用している場合は、できるだけ早くコードを見直し、可能な限り代替機能への移行を進めることをおすすめします。
この記事では、MySQL 8.0で非推奨となった主な機能について、カテゴリ別にわかりやすく解説します。
MySQL 8.0で非推奨となった主な機能
文字セット・認証関連
- utf8mb3文字セット:非推奨となりました。代わりにutf8mb4を使用してください。
- sha256_password認証:このパスワード認証方式は非推奨となり、将来のアップデートで削除される可能性があります。代わりにcaching_sha2_passwordを使用しましょう。
- validate_passwordプラグイン:実装に変更が加えられ、将来のバージョンで削除される可能性があります。コンポーネントインフラストラクチャを利用する形での使用が推奨されます。
データ型・演算子関連
- AUTO_INCREMENT:列型「FLOAT」および「DOUBLE」に対するAUTO_INCREMENTのサポートは非推奨となりました。
- UNSIGNED:「FLOAT」「DOUBLE」「DECIMAL」に対するUNSIGNED属性のサポートも非推奨です。
- ZEROFILL属性:数値データに対するZEROFILLは非推奨となりました。代わりにLPAD()関数を利用できます。
- 「||」演算子:SQLモード「PIPES_AS_CONCAT」が有効になっていない場合、|| の使用は非推奨となりました。
SQL構文・関数関連
- JSON_MERGE:非推奨となりました。代わりにJSON_MERGE_PRESERVE()を使用してください。
- SELECT文のINTO句の位置:FROM句の後にINTO句を記述することは可能ですが、SELECT文の末尾にINTO句を置く用法は非推奨となりました。
- FLUSH HOSTS:非推奨となりました。代わりに、パフォーマンススキーマのhost_cacheテーブルをTRUNCATEしてください。実行例は以下の通りです。
TRUNCATE TABLE performance_schema.host_cache;
注意:TRUNCATE TABLE操作を実行するには、対象テーブルに対する「DROP」権限が必要です。
サーバー・レプリケーション関連
- mysql_upgradeクライアント:mysqlシステムスキーマ内のシステムテーブルや他のスキーマのオブジェクトをアップグレードする機能がMySQLサーバー本体に移行されたため、このクライアントは非推奨となりました。
- InnoDB memcachedプラグイン:非推奨となり、今後のバージョンのMySQLで削除される可能性があります。
- mysql_upgrade_infoファイル:データディレクトリに作成され、MySQLのバージョン番号を保存するために使われていたこのファイルは非推奨となりました。将来のバージョンで削除される可能性があります。
- relay_log_info_fileシステム変数および--master-info-fileオプション:いずれも非推奨となりました。
-
MySQL 8.0の新機能を徹底解説!主要な変更点と改善点の完全リスト
MySQL 8.0では、データベースの性能、セキュリティ、運用性を大幅に向上させる数多くの新機能が導入されました。本記事では、MySQL 8.0の主要な新機能と変更点をわかりやすくまとめてご紹介します。トランザクショナルデータディクショナリMySQL 8.0では、データベースオブジェクトに関する情報を格納するための「トランザクショナルデータディクショナリ」が導入されました。従来のファイルベースのデータディクショナリと異なり、InnoDBテーブルに格納されるため、クラッシュ時の復旧性が向上し、メタデータの一貫性が保たれるようになりました。アトミックDDL(Atomic Data Definiti
-
C#に欠けているC++の機能とは?両言語の主な違いを徹底解説
C#は、Microsoftがアンダース・ヘルスバーグ(Anders Hejlsberg)の主導のもと、.NET構想の一環として開発した、シンプルでモダンな汎用オブジェクト指向プログラミング言語です。一方のC++は、1979年にベル研究所でビャーネ・ストロヴストルップ(Bjarne Stroustrup)によって開発が始められた中間レベルのプログラミング言語で、WindowsやmacOS、さまざまなUNIX系OSなど、幅広いプラットフォーム上で動作します。C#に存在しないC++の主な機能C++にはありながら、C#では実現できない、あるいは扱いが異なる主なポイントは以下のとおりです。多重継承:C+