Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  ...  /  MySQL の UNIX ソケットファイルを保護または変更する方法

B.5.4.5 MySQL の UNIX ソケットファイルを保護または変更する方法

サーバーがローカルクライアントと通信するために使用する UNIX ソケットファイルのデフォルトの場所は、/tmp/mysql.sock です。(一部の配布形式ではディレクトリが異なる場合があり、たとえば RPM の場合は /var/lib/mysql です。)

UNIX の一部のバージョンでは、/tmp ディレクトリ内のファイル、または一時ファイルに使用されるほかの同様のディレクトリ内のファイルをだれでも削除できます。ソケットファイルがシステム上のそのようなディレクトリに配置されている場合は、問題となることがあります。

ほとんどのバージョンの UNIX では、/tmp ディレクトリを保護して、所有者またはスーパーユーザー (root) のみがファイルを削除できるようにすることができます。これを行うには、root としてログインして次のコマンドを使用することによって、/tmp ディレクトリにスティッキービットを設定します。

shell> chmod +t /tmp

スティッキービットが設定されたかどうかを確認するには、ls -ld /tmp を実行します。いちばん最後の権限文字が t である場合は、このビットが設定されています。

別の方法は、サーバーが UNIX ソケットファイルを作成する場所を変更することです。これを行う場合は、クライアントプログラムにもファイルの新しい場所を認識させてください。ファイルの場所を指定する方法はいくつかあります。

  • グローバルまたはローカルのオプションファイルにパスを指定します。たとえば、次の行を /etc/my.cnf に指定します。

    [mysqld]
    socket=/path/to/socket
    
    [client]
    socket=/path/to/socket

    セクション4.2.6「オプションファイルの使用」を参照してください。

  • mysqld_safe およびクライアントプログラムを実行するときに、--socket オプションをコマンド行に指定します。

  • MYSQL_UNIX_PORT 環境変数に UNIX ソケットファイルのパスを設定します。

  • 別のデフォルトの UNIX ソケットファイルの場所を使用するように、ソースから MySQL を再コンパイルします。CMake を実行するときに MYSQL_UNIX_ADDR オプションでファイルへのパスを定義します。セクション2.9.4「MySQL ソース構成オプション」を参照してください。

新しいソケットの場所が動作しているかどうかをテストするには、次のコマンドを使用してサーバーに接続します。

shell> mysqladmin --socket=/path/to/socket version