![mysql はリモート アクセスを設定できません](https://rvso.com/image/1520082/mysql%20%E3%81%AF%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%20%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93.png)
任意のホストからアクセスできるように 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 アドレスを指定して実行されています。