2016-06-28 10 views
0

私は現在、/ tmpフォルダに自動的に作成されたmysql.sockファイルに問題があり、tmpフォルダをいっぱいにしています。私は/tmpフォルダ(WHM/cPanel)からmysql.sockを外に移動

ln -sv /var/lib/mysql/mysq.sock /home/tmp/mysql.sock 

このコマンドを使用して、新しいリンクを作成することにより、家庭を/ tmp /にtmpフォルダ/からそれを移動しようとし、同様に

[client] 
socket = /home/tmp/mysql.sock 
[mysql] 
socket = /home/tmp/mysql.sock 
[mysqld] 
socket = /home/tmp/mysql.sock 

をmy.cnfのためにこれらの行を追加してきましたPHP.iniのソケットパスを変更しています。毎回mysqlを再起動しても/ tmpフォルダに作成されていて、/ home/tmpで作成したものを使用していません(実行中に/tmp/mysql.sockの名前を変更することで確認します)

:PHPMyAdminで変数をチェックしています。ソケットに/home/tmp/mysql.sockを表示しています。

+1

ソケットを「移動」しません。元のソケットファイルを指し示すシンボリックリンクを作成するだけです。それは「私たちは123メインストリートに移動している」と言って、123の正面玄関に「私たちはまだ元の場所にいる」とメモを書きます。 mysqlはシンボリックリンクを無視する可能性があります。なぜなら、シンボリックリンクはその制御下になく、システム上の任意のファイルを指すために使用できるからです。つまり、mysqlはその他のファイルを上書き/置換しようとします。 –

+0

シンボリックリンクはとにかく後方にあります。ターゲットファイルは最初にリンクし、2番目にリンクする必要があります。 – Devon

+0

mysqlがソケットファイルを作成するためのパスを取得する方法はありますか?この場合は/ tmp –

答えて

0

シンボリックリンクは必要ありません。それを除く。

変更のmy.cnfにおけるソケット値:

socket = /home/tmp/mysql.sock 

を再起動してmysqld。

あなたは、php.iniを変更する必要はありません。

; Default socket name for local MySQL connects. If empty, uses the built-in 
; MySQL defaults. 

限りのphp.iniが特に指示されていないとして、それだけのMySQL自体からソケットの位置を取得します。

あなた MySQLユーザが自宅を/ tmp//ソケットを作成するための許可を持っていることを確認する必要があります...それがない場合は、元の/ tmpの場所にデフォルトのでしょう。

関連する問題