web-dev-qa-db-ja.com

クラスターの構成時にソケット '/var/run/mysqld/mysqld.sock'(2「そのようなファイルまたはディレクトリはありません」)を介してローカルMySQLサーバーに接続できません

3つのMariaDBノードがあります。クラスターを構成したい。すべてのメンバーのgcomm://inmy.cnfipsで指定 this に従ってクラスタ内。

そして、gcomm:// ip1、ip2、ip3のときに?pc.wait_prim=noを追加しました

次に、mysqldプロセスが各VMで開始されますが、mysqlで接続しようとすると、mysql -uroot -ppass実行するには

SET GLOBAL wsrep_provider_options="pc.bootstrap=1";

エラーポップ:

ソケット '/var/run/mysqld/mysqld.sock'を介してローカルMySQLサーバーに接続できません(2 "そのようなファイルまたはディレクトリはありません")

各プロセスのerror.logは次を示します:

2018-02-01 15:13:23 140529975699392 [Note] WSREP: gcomm: connecting to group 'my_wsrep_cluster', peer '10.0.0.42:,10.0.0.44:,10.0.0.43:'
2018-02-01 15:13:23 140529975699392 [Note] WSREP: (71d7b5ed, 'tcp://0.0.0.0:4567') connection established to 71d7b5ed tcp://10.0.0.44:45
2018-02-01 15:13:23 140529975699392 [Warning] WSREP: (71d7b5ed, 'tcp://0.0.0.0:4567') address 'tcp://10.0.0.44:4567' points to own listeddress, blacklisting
2018-02-01 15:13:23 140529975699392 [Note] WSREP: (71d7b5ed, 'tcp://0.0.0.0:4567') connection established to 6ac0d002 tcp://10.0.0.42:45
2018-02-01 15:13:23 140529975699392 [Note] WSREP: (71d7b5ed, 'tcp://0.0.0.0:4567') turning message relay requesting on, nonlive peers:
2018-02-01 15:13:23 140529975699392 [Note] WSREP: (71d7b5ed, 'tcp://0.0.0.0:4567') connection established to 6bd1b1f9 tcp://10.0.0.43:45
2018-02-01 15:13:23 140529975699392 [Note] WSREP: gcomm: connected
2018-02-01 15:13:23 140529975699392 [Note] WSREP: Changing maximum packet size to 64500, resulting msg size: 32636
2018-02-01 15:13:23 140529975699392 [Note] WSREP: Shifting CLOSED -> OPEN (TO: 0)
2018-02-01 15:13:23 140529975699392 [Note] WSREP: Opened channel 'my_wsrep_cluster'
2018-02-01 15:13:23 140529975699392 [Note] WSREP: Waiting for SST to complete.
2018-02-01 15:13:23 140529635424000 [Note] WSREP: declaring 6ac0d002 at tcp://10.0.0.42:4567 stable
2018-02-01 15:13:23 140529635424000 [Note] WSREP: declaring 6bd1b1f9 at tcp://10.0.0.43:4567 stable
2018-02-01 15:13:23 140529635424000 [Warning] WSREP: no nodes coming from prim view, prim not possible
2018-02-01 15:13:23 140529635424000 [Note] WSREP: view(view_id(NON_PRIM,6ac0d002,2) memb {
        6ac0d002,0
        6bd1b1f9,0
        71d7b5ed,0
} joined {
} left {
} partitioned {
})
2018-02-01 15:13:23 140529627031296 [Note] WSREP: New COMPONENT: primary = no, bootstrap = no, my_idx = 2, memb_num = 3
2018-02-01 15:13:23 140529627031296 [Note] WSREP: Flow-control interval: [28, 28]
2018-02-01 15:13:23 140529627031296 [Note] WSREP: Trying to continue unpaused monitor
2018-02-01 15:13:23 140529627031296 [Note] WSREP: Received NON-PRIMARY.
2018-02-01 15:13:23 140529975253760 [Note] WSREP: New cluster view: global state: :-1, view# -1: non-Primary, number of nodes: 3, my ind protocol version -1
2018-02-01 15:13:23 140529975253760 [Note] WSREP: wsrep_notify_cmd is not defined, skipping notification.
2018-02-01 15:13:26 140529635424000 [Note] WSREP: (71d7b5ed, 'tcp://0.0.0.0:4567') connection to peer 71d7b5ed with addr tcp://10.0.0.44timed out, no messages seen in PT3S
2018-02-01 15:13:26 140529635424000 [Note] WSREP: (71d7b5ed, 'tcp://0.0.0.0:4567') turning message relay requesting off

なぜそれが起こり、何が悪いのですか?

3
rok

再起動後に私に起こった...ソケットファイルがどこにも見つかりませんでした。私の場合、それは次の場所にあるはずです:/var/run/mysqld/mysqld.sock

私の場合、次のようにして修正しました:

apt-get update
apt-get upgrade

これらの手順の後、ソケットがmysqldディレクトリに表示され、mysql(mariaDB)を起動できました。

2
user2677034

設定ファイル_/etc/my.cnf_および_/etc/my.cnf.d/server.cnf_を確認して、ソケットパラメータを探します。クライアントとサーバーで同じであることを確認してください。ソケットパラメータの適切な場所は、_/etc/my.cnf_の[client-server]セクションにあります。ソケットファイルは、起動時にMariaDBサーバーによって作成されます。

MariaDB構成ファイルが存在する可能性のある他の場所があり、これらが上記の2つのファイルの設定を上書きする可能性があることに注意してください。詳細については、MariaDB KBの このページ を参照してください。

また、ソケットではなくTCPを介してMariaDBに接続できる場合があります。ソケットではなくTCPを使用することを指定できます。 _mysql ... --protocol=TCP_を使用します。これが成功した場合、_SHOW VARIABLES LIKE 'socket';_を実行して、ソケットファイルが実際にどこにあるか(またはあるはずです)を確認できます。次に、_mysql ... --socket=/path/to/file.sock_を使用して接続するか、設定を編集できます。クライアントがファイルを正しく読み取れるようにします。

場合によっては、プロセスを一覧表示することにより、どのソケットファイルの場所が使用されているかを把握できる場合もあります。_ps -ef | grep mysql_は、

_root     23900     1  0 13:27 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/vserv-03.pid
mysql    24402 23900  0 13:27 ?        00:00:50 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --wsrep_on=ON --wsrep_provider=/usr/lib64/galera/libgalera_smm.so --log-error=/var/lib/mysql/vserv-03.err --open-files-limit=65535 --pid-file=/var/lib/mysql/vserv-03.pid --socket=/var/lib/mysql/mysql.sock --wsrep_start_position=98b22222-aa16-1114-ba1a-886633c6b8eb:55133333
_

ここを見ると(右にスクロール)、_/var/lib/mysql/mysql.sock_でソケットを使用しています。

EDIT:ソケットファイルの場所を見つける本当に良い方法は次のとおりです。

_netstat -ln | grep mysql
unix  2      [ ACC ]     STREAM     LISTENING     22418    /var/lib/mysql/mysql.sock 
_
1
dbdemon