このエラーメッセージは、サーバーへの接続が試行されたがサーバーに到達できなかったため、クライアント(サーバーではなく)によって生成されます。
これにはさまざまな原因が考えられます:
1)mysqldがサーバーで実行されていることを確認します:
ps -ef | grep mysqld
次のようなものを返す必要があります:
root 2435 2342 0 15:49 pts/1 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/var/ --user=mysql
mysql 2480 2435 0 15:49 pts/1 00:00:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/var/ --user=mysql ...
デーモンサービスを実行するには、redhat / fedora / centosで実行します:
service mysqld start
または、systemdに依存するFedoraリリース> =16の場合:
systemctl start mysqld.service
システム起動時にデーモンの自動起動を有効にする場合:
systemctl enable mysqld.service
2)サーバー上でmysqldが実行されているポートを確認します:
netstat -lnp | grep mysql
戻る必要があります:
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2480/mysqld
unix 2 [ ACC ] STREAM LISTENING 8101 2480/mysqld /tmp/mysql.sock
後者はローカル接続用のソケットであり、最初はネットワーキング用のtcpポートです(デフォルトは3306)。ポートがデフォルトのポートでない場合は、クライアントで接続ポートを設定する必要があります。 mysqlクライアントを使用している場合:
mysql dbname -uuser -ppasswd -P<port> ...
3)別のネットアドレスを使用している場合は、サーバーが接続元のネットアドレスをリッスンしていることを確認します:ファイル/etc/my.cnf
次の行を検索します:
bind_address=127.0.0.1
アドレスが127.0.0.1の場合、ローカル接続のみが許可されます。 172.16.1.0の場合、172.16.2.xxxから接続できませんでした
4)サーバー上にファイアウォールが実行されておらず、mysqlポート(3306がデフォルトのポート)への接続をブロックしていないことを確認します。 redhat / fedora/centosの実行の場合
service iptables status