はじめに
mysql自体をいじる時というよりは、他の何かからmysqlにアクセスするときに
たまにmysql.sockの場所が知りたいことがあります。
そんなときのメモ
方法
mysql_config
で調べるshow variables
でしらべるps
コマンドで調べる- mysql_configの注意点
1. mysql_config
で調べる
これが一番簡単ですね
$ mysql_config --socket /var/lib/mysql/mysql.sock
ただし、後述しますがmysql_configには注意が必要です。
4. mysql_configの注意点
をみてみてください!
2. show variables
でしらべる
mysql> show variables like '%sock%'; +---------------+-----------------+ | Variable_name | Value | +---------------+-----------------+ | socket | /tmp/mysql.sock | +---------------+-----------------+ 1 row in set (0.00 sec)
3. psで調べる
psコマンドにauxf
とかつけて調べます。
--socket
というオプション指定している箇所が見るところです。
今回は--socket=/tmp/mysql.sock
の部分。
$ ps auxf | grep mysql root 17751 0.0 0.0 106224 1488 pts/2 S 18:27 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/exsample.ne.jp.pid mysql 18136 0.1 3.9 915344 76612 pts/2 Sl 18:27 0:00 \_ /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/exsample.ne.jp.err --pid-file=/usr/local/mysql/data/exsample.ne.jp.pid --socket=/tmp/mysql.sock --port=3306
4. mysql_configの注意点
1、2、3と見ていただくとsocketのパスが違います。
これはこういうことらしいです。
この
mysql_config –socket
の返す値は
デフォルトのソケット名で、MySQLのconfigure時に定義される。
参考 : MySQLのソケット場所変更、my.cnfでのsocket設定の注意点
本当か見てみる
気になるのでmysql_config
コマンドの中身から見てみます。
$ cat /usr/bin/mysql_config ---- このへん ---- if [ -x /usr/bin/mysql_config-$bits ] ; then /usr/bin/mysql_config-$bits "$@" else -----------------
どうやら/usr/bin/mysql_config-$bits
というファイルをみてるぽいです。
自分のpcは64bitなのでmysql_config-64ですかね。
ということで/usr/bin/mysql_config-64
もみてみます
$ cat /usr/bin/mysql_config-64 | grep sock socket='/var/lib/mysql/mysql.sock' --socket [$socket] --socket) echo "$socket" ;; #echo "socket: '"$socket"'"
確かにsocket='/var/lib/mysql/mysql.sock'
で指定されてるのが確認できました。
mysql_configはここをみてたんですね。
おわり
4. mysql_configの注意点
に書いたとおり、
socketの場所を変更した場合は注意が必要です。
そうじゃない場合は1のmysql_config
はmysqlを起動していなくても調べられます。
2と3は起動していないと調べられませんが、今動いているmysqlが使用しているsockという意味では目で見れて安心です。
ということでenjoy!