MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQL環境変数一覧|各変数の役割と設定時の注意点を解説

MySQL環境変数とは

MySQLは、動作やクライアントの挙動を制御するために、直接または間接的にさまざまな環境変数を使用します。本記事では、MySQLが利用する主な環境変数の名称と、それぞれの役割について詳しく解説します。

環境変数を適切に理解しておくことで、接続設定やデバッグ、ビルド作業などを効率化でき、トラブルシューティングにも役立ちます。

認証・セキュリティ関連の環境変数

  • AUTHENTICATION_LDAP_CLIENT_LOG − クライアント側のLDAP認証におけるログレベルを指定します。
  • AUTHENTICATION_PAM_LOG − PAM認証プラグインのデバッグログ設定を行います。
  • LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN − mysql_clear_password認証プラグインを有効にします。
  • MYSQL_PWD − mysqldへ接続する際のデフォルトパスワードとして使用されます。ただし、この方法でのパスワード指定は安全ではないため非推奨です。

接続・ネットワーク関連の環境変数

  • MYSQL_HOST − mysqlコマンドラインクライアントが使用するデフォルトのホスト名です。
  • MYSQL_TCP_PORT − デフォルトのTCP/IPポート番号を指定します。
  • MYSQL_UNIX_PORT − デフォルトのUnixソケットファイル名です。localhostへの接続に使用されます。
  • MYSQLX_TCP_PORT − X PluginのデフォルトTCP/IPポート番号です。
  • MYSQLX_UNIX_PORT − X PluginのデフォルトUnixソケットファイル名です。localhostへの接続に使用されます。
  • NOTIFY_SOCKET − mysqldがsystemdと通信するために使用するソケットです。

履歴・プロンプト関連の環境変数

  • HOME − mysql履歴ファイルのデフォルトパス($HOME/.mysql_history)の基準となるパスです。
  • MYSQL_HISTFILE − mysql履歴ファイルへのパスです。この変数が設定されている場合、$HOME/.mysql_history のデフォルト値よりも優先されます。
  • MYSQL_HISTIGNORE − --syslogオプションが指定されている場合に、$HOME/.mysql_history またはsyslogへ記録しないステートメントを示すパターンです。
  • MYSQL_PS1 − mysqlコマンドラインクライアントで使用されるコマンドプロンプトです。

サーバー・設定ファイル関連の環境変数

  • MYSQL_HOME − サーバー固有のmy.cnfファイルが存在するディレクトリへのパスです。
  • MYSQL_GROUP_SUFFIX − オプショングループの接尾辞値(--defaults-group-suffixなど)を指定します。
  • MYSQL_TEST_LOGIN_FILE − .mylogin.cnfログインパスファイルの名前です。
  • TMPDIR − 一時ファイルが作成されるディレクトリです。
  • TZ − ローカルタイムゾーンの設定に使用します。

プラグイン・クライアント関連の環境変数

  • LIBMYSQL_PLUGIN_DIR − クライアントプラグインを検索するディレクトリです。
  • LIBMYSQL_PLUGINS − プリロードするクライアントプラグインを指定します。
  • DBI_USER − Perl DBIのデフォルトユーザー名です。
  • DBI_TRACE − Perl DBIのトレースオプションです。
  • USER − Windows環境でmysqldに接続する際のデフォルトユーザー名です。

OpenSSL UDF関連の環境変数

  • MYSQL_OPENSSL_UDF_DH_BITS_THRESHOLD − create_dh_parameters()の最大キー長です。
  • MYSQL_OPENSSL_UDF_DSA_BITS_THRESHOLD − create_asymmetric_priv_key()の最大DSAキー長です。
  • MYSQL_OPENSSL_UDF_RSA_BITS_THRESHOLD − create_asymmetric_priv_key()の最大RSAキー長です。

ビルド・開発関連の環境変数

  • CC − CMakeを実行する際に使用するCコンパイラの名前です。
  • CXX − CMakeを実行する際に使用するC++コンパイラの名前です。
  • LD_RUN_PATH − libmysqlclient.soの場所を指定するために使用します。
  • PKG_CONFIG_PATH − mysqlclient.pc(pkg-configファイル)の場所です。

その他の環境変数

  • MYSQL_DEBUG − デバッグ時のトレースオプションを指定します。
  • PATH − シェルがMySQLプログラムを検索するために使用します。
  • UMASK − ファイル作成時のユーザーファイル作成モードです。
  • UMASK_DIR − ディレクトリ作成時のユーザーディレクトリ作成モードです。

優先順位と設定のベストプラクティス

MySQLでは、設定値の優先順位に注意が必要です。コマンドラインオプションが最も優先され、次にオプションファイル(my.cnfなど)、その後に環境変数が適用されます。

多くの場合、環境変数よりもオプションファイルを使用することが推奨されます。オプションファイルを使うことで、設定を一元管理でき、MySQLの挙動を柔軟かつ確実に変更できます。

MYSQL_PWDの使用に関する注意

MYSQL_PWDによるパスワード指定は安全とは言えず、他のユーザーから参照される可能性があるため避けるべきです。MYSQL_PWDは非推奨(deprecated)となっており、将来のバージョンで削除される可能性があります。パスワードの指定には、my.cnfオプションファイルやmysql_config_editorなどの安全な方法を利用しましょう。

  1. 環境変数を守る:APIキーやシークレットのためのセキュリティ対策ガイド

    前回の記事「The Rubyists Guide To Environment Variables」では、環境変数システムの仕組みと、よくある誤解について解説しました。しかし、ある読者から「セキュリティについての言及が少ない」とのご指摘をいただきました。 現在では、秘密のAPIキーなどの重要な情報を環境変数に保存するのが一般的になっています。だからこそ、環境変数が持つセキュリティ上のリスクを正しく理解することが重要です。今回はそのポイントを見ていきましょう。 最悪のシナリオ ハッカーがroot権限、あるいはWebアプリケーションの所有ユーザーとしてサーバーへのアクセスに成功したと想像してくださ

  2. PowerShellの環境変数とは?基本知識から設定・確認方法まで徹底解説

    環境変数は、Linux、Mac、Windowsといったコンピューター全体で共有されるグローバルな設定値であり、システムシェルがコマンドを実行する際に参照するために保存されています。多くの環境変数は、OSのインストール時やユーザーアカウントの作成時に自動的に設定されます。 たとえば、ホームディレクトリはログイン時に環境変数として登録されます。PowerShellでの表示内容は、使用しているOSによって異なります。 OSごとのHOME変数の確認例 Windowsの場合: PS C:\Users\bogus> Get-Variable HOME -valueOnlyC:\Users\bogus