mysql はリモート アクセスを設定できません

mysql はリモート アクセスを設定できません

任意のホストからアクセスできるように MySQL を設定しようとしています。

> 'root'@'%' の権限を表示します。

GRANT オプションを使用して、*.* のすべての権限を 'root'@'%' に付与します。

マイ.cnf

[root@p419386 etc]# cat my.cnf
#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

/etc/my.cnf.d内のファイル: client.cnf enable_encryption.preset mysql-clients.cnf server.cnf tokudb.cnf 含まれないものskip-networking

サーバー.cnf

bind-address=0.0.0.0

私はCentOS 7を使用していますuname -aが、

Linux p419386 2.6.32-042stab120.16 #1 SMP Tue Dec 13 20:58:28 MSK 2016 x86_64 x86_64 x86_64 GNU/Linux

MySQLサーバーは10.1.21-MariaDB MariaDB Server

まだリモートホストから接続できません:(

問題は間違いなくネットワークやファイアウォールにはありません。

上記の設定は正しいですか?どうしたの?

結局問題が発見されたiptables ルールで。MySQL 構成は OK です!

答え1

あなたが持っている設定を見ると(あなたが明示的に投稿し、その内容を教えてくれた限りでは)、それは動作するはずです。少なくとも公式 MariaDB KBこれを示します。

そのため、これらの構成ファイル内で何かが不足しているか、別の問題に直面している可能性があります。問題はネットワークやファイアウォールに関連していないとおっしゃいましたが、最新のエラーは、ERROR 2003 (HY000): Can't connect to MySQL server on '<host>' (113)それがまだ問題である可能性があることを示しています。

mysql コマンドを使用して、サーバー上のローカル IP (127.0.0.1) に接続してみることができます。私がリンクした質問を見ると、次のように使用します。

mysql -h 127.0.0.1 -u root -p

そのコマンドを使用して接続を確立できる場合は、MariaDB が起動して実行されており、IP ベースの接続を受け入れていることがわかります。

ここで発生している可能性のある問題は、外部 IP アドレスにバインドされていない (外部 IP のみを設定してみてくださいbind-host) か、ファイアウォール (クライアントまたはサーバー) または別のネットワーク コンポーネントが干渉して接続をブロックしている可能性があります。

サーバーがバインドしているものを確認するには、次のコマンドを実行します (root として、または sudo を使用)。

netstat -l -n -p

次のような行が表示されます。

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
...
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      1234/mysqld
...

ご覧のとおり、この場合、MySQL サーバーはポート 3306 の localhost アドレスを指定して実行されています。

関連情報