AWS1分で読める

MySQL の基本設定メモ: sql_mode・照合順序・認証方式

MySQL運用で押さえておきたい sql_mode、collation、charset、認証プラグインの違いと、権限管理の注意点を整理したメモ。

#mysql#database#security#sql_mode#collation#charset

MySQL の基本設定メモ: sql_mode・照合順序・認証方式

MySQL は初期設定のままでも動きますが、運用では設定差分が不具合やセキュリティ事故の原因になります。 ここでは最低限確認したいポイントをまとめます。


sql_mode

sql_mode は SQL の厳格さや互換挙動を制御します。 環境ごとに差分があると、同じ SQL でも結果が変わる可能性があります。

参考: sql_mode 解説


collation(照合順序)と charset(文字セット)

  • charset: 文字の保存方式(例: utf8mb4
  • collation: 比較・並び順ルール(大文字小文字、アクセントなど)

アプリと DB で不一致があると、検索結果やソート順に差異が出ます。


認証プラグイン(mysql.user.plugin

代表的な値:

  • mysql_native_password: 旧来方式(互換目的で使われることがある)
  • caching_sha2_password: MySQL 8 系の標準

互換性要件がない限りは、より新しい標準方式を優先する運用が安全です。


権限管理メモ

  • *.* への広すぎる権限付与は避ける
  • 強い権限のユーザーを安易に作らない
  • 業務ごとに最小権限でユーザーを分ける

運用上の注意

  • シェル履歴や MySQL 履歴に機密情報を残さない
  • SQL 実行履歴を含むファイルの取り扱いを定義する
  • 本番でのユーザー作成・権限変更はレビュー経由にする

まとめ

MySQL 設定は「後で調整」より、初期段階で方針を揃える方が運用が安定します。 特に sql_mode、文字コード系、認証方式、権限設計は最初に統一しておくのがおすすめです。

RK

1997年生まれ

ITエンジニア

インフラ・SRE