Railsアプリを実行しているため、mysqlにリモート接続しようとしていますが、このエラーが発生します接続できませんでした:「初期通信パケットの読み取り」でMySQLサーバーへの接続が失われました、システムエラー:0
/ etc/hosts.denyを確認してください。
ALL: ALL: DENY
または
mysqld: ALL: DENY
あなたの敵です。
サーバーを再起動するとうまくいきました。設定を変更する必要はありません。
そのホストから確認する
Shell> telnet IP 3306
MySQLが起動していて到達可能な場合は、Telnet出力にmysqlバージョンが表示されます。それ以外の場合は、Telnetが成功するまでファイアウォールなどを確認します。
次に、最初にネイティブmysqlクライアントに接続してRailsを問題ariaから除外することをお勧めします。
リモートアクセスを有効にする
MySQLサーバーはデフォルトでTCPポート3306をリッスンしません。(リモート)TCP接続を許可するには、/ etc/mysql /の次の行をコメント化しますmy.cnf:
スキップネットワーキング
次の行を追加して、/ etc/hosts.allowを編集してください。
mysqld:ALL:ALLOW
mysqld-max:ALL:ALLOW
Mysql構成ファイルを編集する必要があります。デフォルトではbind-adress
に設定されています 127.0.0.1
。
開いた: /etc/mysql/my.cnf
変更 bind-adress
yoursefをデータベースサーバーに接続するために使用するIPに。
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
誰もこれに答えたようには見えませんでした、そしてそれは最初に提出されてからほぼ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*
mysqld-max:ALL:ALLOWが問題を解決してくれました
あなたの努力をありがとう、私は解決策を見つけました、私はリモート接続をMySQLに設定すると仮定しましたここに同じエラーが発生した誰かのためのリンクがあります http://benrobb.com/2007/01/15/ howto-remote-root-access-to-mysql /
私たち全員が知っているように、マシンに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をインストールしたため
MySQLインスタンスのステータスはNOT OKでした上記のイメージは、MySQL OSX APPの単なる参照です。
単純なサーバーの再起動で問題が解決しました。(私の場合、マシンを再起動する必要がありましたが、MySQLサーバーの再起動が必要です)
私はようやく、再びlocalhostインスタンスに問題なく到達でき、変更する必要はなく、単一のファイルを作成しました。
これがお役に立てば幸いです Malcolm の回答とコメントが表示され、投稿してよかったと思いました。