- 更新日: 2014年7月4日
- MySQL & DB
MySQLのソケット場所変更、my.cnfでのsocket設定の注意点
先日、Mac ローカル環境の MySQL ソケット場所を変更したのですが、一つ不具合が発生したので追記のエントリーです。元記事のほうも修正しています。以下エントリーに対する追記となります。
Macローカル開発環境のMySQLソケットの場所を変更 | EasyRamble
ターミナルからの MySQL ログインでソケットのエラー発生
当初、/etc/my.cnf の内容は以下の通り、mysqld の socket だけ指定していました。
1 2 3 4 5 |
$ sudo vi /etc/my.cnf [mysqld] socket=/var/lib/mysql/mysql.sock |
これで問題なく Rails からは MySQL に接続できていたのですが、ターミナルから MySQL に接続しようとしたところエラー発生。
1 2 3 4 5 |
$ mysql -u root -p Enter password: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) |
他の場所で、my.cnf が読み込まれてるのかなぁ?と考え、my.cnf の設置場所を調べる。
1 2 3 4 5 |
$ mysql --help | grep my.cnf order of preference, my.cnf, $MYSQL_TCP_PORT, /etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf |
しかし、/etc/my.cnf 以外は存在しませんでした。
クライアントからのソケット場所を指定
引き続き色々調べたところ、どうやらクライアント側からのソケット場所も指定する必要があるらしい。
MySQL :: MySQL 4.1 リファレンスマニュアル :: A.4.5 MySQL ソケットファイル /tmp/mysql.sock の保護または変更方法
MySQL :: MySQL 4.1 リファレンスマニュアル :: A.2.3 Can’t connect to [local] MySQL server エラー
ということで、以下のように [client] のソケット場所の指定を my.cnf に追加しました。
1 2 3 4 5 6 7 8 |
$ sudo vi /etc/my.cnf [client] socket=/var/lib/mysql/mysql.sock [mysqld] socket=/var/lib/mysql/mysql.sock |
MySQL 再起動。
1 2 3 |
$ mysql.server restart |
MySQL にログイン。
1 2 3 4 5 6 7 |
$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. ... mysql> |
これで、ターミナルから MySQL にログインできました。一応これで問題なく使用できています。
mysql_config –socket コマンドの注意点
ちなみに… mysql_config –socket コマンドで、mysql ソケットの場所を確認すると、変更前の /tmp/mysql.sock のままです。
1 2 3 4 |
$ mysql_config --socket /tmp/mysql.sock |
調べたところ、この mysql_config –socket コマンドの返す値はデフォルトのソケット名で、MySQL の configure 時に定義されるそうです。
–socketデフォルトのソケット名。MySQL をコンフィギャするときに定義される。
コンフィギャ‥って(笑。以下の mysql_config_editor を使うと、mysql_config –socket の値を編集できるそうなのだが…
MySQL :: MySQL 5.6 Reference Manual :: 4.6.6 mysql_config_editor — MySQL Configuration Utility
mysql – How to change value returned by ‘mysql_config –socket’? – Stack Overflow
とりあえず支障ないし、面倒くさいので私は mysql_config_editor は試してません。以上です。
- MySQL & DB の関連記事
- MySQLでBLOB/TEXT型のカラムにはデフォルト値を設定できない
- SQLite3でDBテーブルをdumpバックアップ
- Warning: mysql_connect() PHPからMySQL接続でsocketエラー
- phpMyAdminでMySQLをバックアップ(エクスポート)
- MySQLが起動しないエラー(The server quit without updating PID file)
- phpMyAdminで#2002 Cannot log in to the MySQL serverエラー
- libaio.so.1, openssl-devel がなくて mysql-server, mysql-devel をインストールできないエラー
- MySQLオプション(/etc/my.cnf)の設定例
- my.cnf の innodb_data_file_path, innodb_log_file_size 設定で MySQL が起動しなくなる場合の対処
- my.cnfで設定するMySQLオプションで重要そうなのまとめ
Leave Your Message!