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程度に設定しておくことで、多くのケースに対応可能
関連トピック
- phpMyAdmin - MySQL管理ツール
- Docker - コンテナ環境での運用
- データ保存方法選定ガイド - データベース選定の参考