MySQL 5.7 bind-addressが機能しません


17

MySQL 5.5のリモート接続を常に正常にセットアップしました。

今日、Ubuntu 16.04とMySQL 5.7を備えた新しいサーバーをインストールしました。しかし、いくつかの理由から、私はこのMySQLのインストールを行うことができない他のホストに聞くけど127.0.0.1

ここに私の/etc/mysql/conf.d/mysql.cnf

[mysqld]
bind-address = 0.0.0.0

リモートホストからこのMySQLサーバーに接続できなかったため、を確認netstatしたところ、MySQLは接続localhostのみをリッスンしていることがわかりました。

lsof -Pni :3306 出力は次のとおりです。

COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld  5302 mysql   25u  IPv4  37280      0t0  TCP 127.0.0.1:3306 (LISTEN)

何が問題ですか?


mysqlをバウンスしましたか?netstat -lntpの出力は何ですか?
Linuxx

@Linuxxマシン全体を再起動しました。tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 13050/mysqld
ハスト

そのファイルにその行を追加したと思います。その行を削除し、ファイル/etc/mysql/mysql.conf.d/mysqld.cnfを編集して、そこでパラメーターを変更します。
Linuxx

1
@Linuxxこれは魔法のように機能しました:)さらに別の* .conf.dディレクトリがあることに気付いていません。したがって、基本的に5.7は[mysql]の設定をconf.dディレクトリに保持しますが、[mysqld]の設定はmysql.conf.dに保持されます。ありがとうございました!答えてください、私はそれを受け入れます。
ハスト

1
/etc/mysql/mysql.conf.d/mysqld.cnfと/etc/mysql/conf.d/mysql.cnfの両方でbind-addressを変更しました。サーバーを再起動しましたが、まだ「tcp 0 0 127.0」が表示されています。 0.1:3306 "<netstat -tulpen
Chepech

回答:


39

MySQLパッケージを変更して、バインドパラメータが/etc/mysql/mysql.conf.d/mysqld.cnfにあるようにしました。そこでバインドパラメータを変更し、/ etc / mysql / conf.d / mysql.cnfに配置したものをすべて削除してください。


しかしこれはばかげています。「conf.d」の目的は、パッケージが提供するデフォルトを編集せず、独自の構成でオーバーライドすることでした。しかし、現在「mysql.conf.d」が私たちのものをオーバーライドしているので、「mysql.conf.d / mysqld.cnf」を編集しない限り、最後に私たちのものを確実にする確実な方法はありません。
ケン

@kenn:代わりに/ mysql.conf.dの下で、あなたの設定を追加し、「X-何か」という名前を付けます
ベル

3
確かに、しかし「conf.d」のポイントは何ですか?「mysql.conf.d」は、「conf.d」によって上書きされることになっているパッケージ提供のデフォルトではありませんか?MySQLパッケージレベルでは、「/ etc / mysql / my.cnf」で「conf.d」と「mysql.conf.d」のロード順序を逆にする必要があると思います。
ケン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.