Mysqladminが使用するデフォルトのソケットをどのように変更しますか?
[mysqladmin]
に/etc/my.cnf
のセクションがありません。
デフォルトでは/tmp/mysql.sock
に接続しようとしますが、これはMySQLサーバーが使用するソケットではないため、次のエラーが発生します。
error: 'Can't connect to local MySQL server through
socket '/tmp/mysql.sock'
次のように、コマンドラインでソケットを指定できることを知っています。
mysqladmin --socket='/some/other/path/mysql.sock'
Mysqladminが使用するデフォルトソケットを変更して、非標準パスを毎回指定する必要がないようにするにはどうすればよいですか?
/etc/my.cnf
または$USER/.my.cnf
に[mysqladmin]セクションを追加し、ソケットを設定します。これは、コンパイルされたソケットと[mysqld]
セクションで定義されたソケットをオーバーライドします。
以下に示すものからそれを理解できるはずです。
VM52-CentOS58[root@ivdb41 ~]# mysqladmin ping
mysqladmin: connect to server at 'localhost' failed error: 'Can't connect to local MySQL server through socket '/var/lib/mysql/mysql2.sock' (2)' Check that mysqld is running and that the socket: '/var/lib/mysql/mysql2.sock' exists!
VM52-CentOS58[root@ivdb41 ~]# grep -A 1 mysqladmin /etc/my.cnf
[mysqladmin]
socket=/var/lib/mysql/mysql2.sock
VM52-CentOS58[root@ivdb41 ~]# mysqladmin ping mysqld is alive
VM52-CentOS58[root@ivdb41 ~]# grep -A 1 mysqladmin /etc/my.cnf
[mysqladmin]
# socket=/var/lib/mysql/mysql2.sock
さらに良いことに、mysqlクライアント呼び出しをカバーするためにそのセクション[クライアント]を作成します。これはmysqladminでのみ機能するため