2016-04-30 23 views
0

mysqlデータベースに接続してクエリできます。しかし、私はソケットファイルを見つけることができません。MySQL 5.6 - データベースは動作していますが、Socketファイルはありません

$ cat /mysql/admin/ofile/TEST1.cnf|grep sock 
socket       = /mysql/admin/TEST1/run/TEST1.sock 

対応するディレクトリだけpidファイルが含まれています

$ps -ef|grep mysql 
mysql 31408 30874 0 18:46 pts/1 00:00:00 /bin/sh /usr/bin/mysqld_safe  --defaults-file=/mysql/admin/ofile/TEST1.cnf 

mysql 31959 31408 0 18:46 pts/1 00:00:01 /usr/sbin/mysqld --defaults- file=/mysql/admin/ofile/TEST1.cnf --basedir=/usr -- datadir=/mysql01data/TEST1/data --plugin-dir=/usr/lib64/mysql/plugin --log- error=/mysql/admin/TEST1/errors/mysqld_safe.err --pid- file=/mysql/admin/TEST1/run/mysqld_safe.pid 

ここTEST1.cnfの私のソケットファイルのエントリです。ソケットファイルはありません。

-sh-4.1$ cd /mysql/admin/TEST1/run 
-sh-4.1$ ls -lrt 
total 4 
-rw-rw---- 1 mysql mysql 6 Apr 29 18:46 mysqld_safe.pid 

これは、RHEL 6.5のRPMを使用してインストールしたMySQL 5.6のバージョンです。私はソケットファイルを使ってデータベースに接続する古いカスタムスクリプトを持っています。

このように、ソケットファイルを使用してデータベースに接続する方法を知りたいですか?なぜソケットファイルがデフォルトで作成されないのですか?

+0

mysqlデータベースディレクトリの下にソケットファイルがあります。 –

+1

'sudo lsof -a -U -p $(pgrep -d、-f/usr/sbin/mysqld)'は役に立つ情報を提供していますか? –

+0

@ Michael-sqlbotはい、/ var/lib/mysqlにソケットファイルが作成されています。しかし、なぜソケットファイルがconfファイルの 'socket'パラメータに従わないのですか? '-sh-4.1 $ lsof -a -U -p $(pgrep -d、-f/usr/sbin/mysqld)COMMAND PID USER FD TYPE SIZE/OFF NAME mysqld 5042 mysql 20u unix 0t0/var/lib/mysql/mysql.sock' – vins

答えて

1

MySQLサーバの実行中のインスタンスのためのソケットファイルは、このシェルコマンドを見つけることができる何かをする必要があります:

はsudo lsofを-a -U -p $(のpgrep -d、-f /パス/に/ your/running/mysqld)

ソケットファイルが見つからない原因の1つは、サーバの起動後に削除された可能性があります。その場合、上記のコマンドが機能し、パスの後に(deleted)のようなものを表示します。

これは私の元々のこの仮定の前提でしたが、ここでは構成上の見落としがありました。一般にmy.cnfと呼ばれる「デフォルトファイル」には、複数のセクションが含まれています。 [client]セクションでは、mysqlmysqldumpのようなクライアントユーティリティを設定し、[mysqld]セクションではサーバデーモンを設定します。 socketディレクティブが適切なセクションにない場合、サーバー(および/またはクライアントユーティリティ)はデフォルトでコンパイルされた場所を検索します。/tmp/mysql.sockまたは/var/lib/mysql/mysql.sockは一般的な既定の場所の例です。

関連する問題