MySQL 8.0

作成日:
更新日:
MySQL database relational-database

MySQL 8.0は、2018年にリリースされたMySQLのメジャーバージョンです。本番環境での実績が豊富で、エコシステムも成熟しているため、多くのプロジェクトで採用されています。

MySQL 8.0を推奨する理由

エコシステムの成熟度

  • 2018年リリース(7年以上の実績): 長期間の運用実績があり、安定性が実証されている
  • 大量の本番環境での使用実績: 多くの企業やプロジェクトで採用されている
  • 豊富なドキュメント・チュートリアル: 公式ドキュメントやコミュニティの情報が充実
  • ツール・ライブラリの完全対応: 各種ツールやライブラリがMySQL 8.0に対応済み

MySQL 9.0との比較

MySQL 9.0は2024年にリリースされましたが、以下の理由から本番環境での採用は慎重に検討すべきです:

  • リリースから1年程度: 実績がまだ少ない
  • 本番採用事例が少ない: 大規模な本番環境での使用実績が限定的
  • 一部ツールで対応待ち: 一部のツールやライブラリで対応が完了していない可能性

Dockerでの使用

メジャーバージョン指定の重要性

DockerでMySQLを使用する場合、メジャーバージョンを明示的に指定することが重要です:

# docker-compose.yaml の例
services:
  mysql:
    image: mysql:8  # メジャーバージョン指定
    # mysql:latest は避ける(予期しないバージョンアップのリスク)

理由:

  • データの互換性が重要: マイナーバージョンアップでもデータ互換性の問題が発生する可能性がある
  • アプリケーションへの影響大: バージョン変更による動作不良のリスクを避けるため

推奨設定

UPLOAD_LIMIT(アップロードサイズ制限)

phpMyAdminなどでデータをインポートする場合、デフォルトのmax_allowed_packet(2MB)では不十分なことが多いため、以下の設定を推奨します:

services:
  mysql:
    image: mysql:8
    environment:
      MYSQL_ROOT_PASSWORD: yourpassword
    command: --max_allowed_packet=128M

または、my.cnfファイルで設定:

[mysqld]
max_allowed_packet = 128M

理由:

  • デフォルトの2MBでは、phpMyAdminでのインポート時にエラーが発生しやすい
  • 128MB程度に設定しておくことで、多くのケースに対応可能

関連トピック