web-dev-qa-db-ja.com

接続できませんでした:「初期通信パケットの読み取り」でMySQLサーバーへの接続が失われました。システムエラー:0

Railsアプリを実行しているため、mysqlにリモート接続しようとしていますが、このエラーが発生します接続できませんでした:「初期通信パケットの読み取り」でMySQLサーバーへの接続が失われました、システムエラー:0

14
Steven

/ etc/hosts.denyを確認してください。

ALL: ALL: DENY

または

mysqld: ALL: DENY

あなたの敵です。

11
jlg

サーバーを再起動するとうまくいきました。設定を変更する必要はありません。

4
Malcolm

そのホストから確認する

Shell> telnet IP 3306

MySQLが起動していて到達可能な場合は、Telnet出力にmysqlバージョンが表示されます。それ以外の場合は、Telnetが成功するまでファイアウォールなどを確認します。

次に、最初にネイティブmysqlクライアントに接続してRailsを問題ariaから除外することをお勧めします。

3
noonex

リモートアクセスを有効にする

MySQLサーバーはデフォルトでTCPポート3306をリッスンしません。(リモート)TCP接続を許可するには、/ etc/mysql /の次の行をコメント化しますmy.cnf:

スキップネットワーキング

次の行を追加して、/ etc/hosts.allowを編集してください。

mysqld:ALL:ALLOW

mysqld-max:ALL:ALLOW

3

Mysql構成ファイルを編集する必要があります。デフォルトではbind-adress に設定されています 127.0.0.1

開いた: /etc/mysql/my.cnf

変更 bind-adress yoursefをデータベースサーバーに接続するために使用するIPに。

3
Roch

OS Xを使用していますか?この問題は、mysqldを再起動してしばらくすると消えますか?これらのエラーが発生した場合は、mysqlサーバーのログを確認してください。以下のようなエントリがたくさんあります。

2019-01-30T17:34:04.009979Z 0 [Warning] File Descriptor 1564 exceeded FD_SETSIZE=1024

このエラーは潜在的な解決策を示しています: https://expressionengine.com/blog/mysql-5.7-server-os-x-has-gone-awayhttps://wilsonmar.github .io/maximum-limits /

それらの1つはmy.cnfに次の設定を追加しています

[mysqld]
table_open_cache=250
2

誰もこれに答えたようには見えませんでした、そしてそれは最初に提出されてからほぼ7年後に問題として再び現れたようです。 Railsアプリが(phantomjsを使用して)Capybaraを実行している)でこれを見て、私の統合仕様(のみ)が断続的に失敗しました。

マシンを再起動すると、一時的に問題が解決しました。

次に、MySQLインストールを完全に爆破し( https://community.jaspersoft.com/wiki/uninstall-mysql-mac-os-x を参照)、homebrewを使用して再インストールしました。問題はなくなったようですが、問題が解決した場合は更新します。

mySQLインストールを完全に爆破するには(- https://community.jaspersoft.com/wiki/uninstall-mysql-mac-os-x から):

ターミナルウィンドウを開きます。mysqldumpを使用してデータベースをテキストファイルにバックアップします。データベースサーバーを停止します

Sudo rm /usr/local/mysql
Sudo rm -rf /usr/local/mysql*
Sudo rm -rf /Library/StartupItems/MySQLCOM
Sudo rm -rf /Library/PreferencePanes/My*

/ etc/hostconfigを編集して、行MYSQLCOM = -YES-を削除します

rm -rf ~/Library/PreferencePanes/My*
Sudo rm -rf /Library/Receipts/mysql*
Sudo rm -rf /Library/Receipts/MySQL*
Sudo rm -rf /private/var/db/receipts/*mysql*
1
Jason FB

mysqld-max:ALL:ALLOWが問題を解決してくれました

1
Ben

あなたの努力をありがとう、私は解決策を見つけました、私はリモート接続をMySQLに設定すると仮定しましたここに同じエラーが発生した誰かのためのリンクがあります http://benrobb.com/2007/01/15/ howto-remote-root-access-to-mysql /

1
Steven

私たち全員が知っているように、マシンにmySQL dbms(データベース管理システム)をインストールして構成するには、さまざまなOS(linux、osx、win $ hitなど)以外にもさまざまな方法があります。

私の場合、特に私は得ていました

connect': Lost connection to MySQL server at 'reading initial communication packet', system error: 102 (Mysql2::Error)

[〜#〜] but [〜#〜]/etc/hosts.deny持っていたのは/etc/hostsシンプルなGUI OSXアプリを使用してOSXマシンにmySQLをインストールしたため

enter image description here MySQLインスタンスのステータスはNOT OKでした上記のイメージは、MySQL OSX APPの単なる参照です。

単純なサーバーの再起動で問題が解決しました。(私の場合、マシンを再起動する必要がありましたが、MySQLサーバーの再起動が必要です)

私はようやく、再びlocalhostインスタンスに問題なく到達でき、変更する必要はなく、単一のファイルを作成しました。

これがお役に立てば幸いです Malcolm の回答とコメントが表示され、投稿してよかったと思いました。

1
d1jhoni1b