LoginSignup
token
@token

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

[XAMPP] [MySQL] ローカルから1度接続すると外部からMySQLに接続できなくなる

昨日から色々とネット上を検索しているのですが、同様の課題が見つからずに困っております。あるいは下名の単純な誤認かもしれませんが、ご教示頂けると助かります。

1.問題

1) XAMPP上で構築したWordPressのMariaDBに外部接続したい
2) サーバ起動直後は外部PCから直接MariaDBに接続できるが、1度サーバ内部で接続すると、外部からは接続できなくなる

2.目的

1) WordPressで作成している投稿中のAdvanced Cunstom Fieldのデータ(在庫数データ)を外部PCから一括で書き換えたい
2) 書き換えるデータは社内の在庫管理システムから取得する
3) 在庫管理システムからのデータ取り出しとWordPressへのデータ書き出しプログラムはVBAで作成する

3.環境

サーバ

PC: Windows10Home 64bit
XAMPP : 3.2.4
MariaDB : 10.4.8(port 3306)
Apache : 2.4.41
PHP : 7.3.11
phpMyAdmin : 4.9.1

クライアント

PC : Windows10Home 64bit
MySqlAdministrator : 1.1.9

ネットワーク環境

社内LAN : 192.168.1.0

4.接続確認方法とエラー内容

1) mySqlAdministratorでクライアントからサーバに接続
-> Can't connect to MySQL server on '192.168.1.79'(10060) と表示
2) PowerShellで Test-NetConnection を実行
-> TCP connect to (192.168.1.79 : 3306) failed と表示

5.正常稼働からエラーへの移行

1) 上2方法とも、サーバ再起動直後は正常接続を確認できる
2) 1度クライアントから下記3方法のいづれかでサーバにHTTP接続してMariaDBに接続すると、エラーが発生するようになる
- WordPressの編集画面を開く
- WordPressで生成されるサイト画面を開く
- phpMyAdminを開く
3) 上の症状はブラウザを閉じても継続する

6.これまでに行ったこと

my.ini

1) skip-name-resolve を追加
2) enable-named-pipe のコメントを外す(有効化)
3) bind-address を①削除 ②0.0.0.0を指定 の2通り試す(現在は②に)

httpd-xampp.conf

1) Alias /phpmyadmin "C:/xampp/phpMyAdmin/" を Require all granted に変更

ファイアウォール

1) サーバ側、クライアント側ともに、3306の受信許可を追加
2) サーバ側、クライアント側ともにFWを無効に設定(現在は有効に)

netstat

1) サーバ側で netstat -an で 0.0.0.0:3306 Listened を確認

7.悩んでいること

1) とにかく1度は接続できるので、ポート開放やファイアウォールの通過の問題では無いと思われる
2) my.iniには以下の設定項目が記述されていないので、デフォルトが適用されていると思われる
- max_connect_errors
- max_connections
- max_error_count
3) my.conf や my.cnfファイルは無く、my.iniのポート指定を3307に変更すると反映されるので、MariaDBの設定はmy.iniを変更すればよいと思われる
4) PSのTest-NetConnectionでエラーが出るので、MariaDBからエラーが返ってくるというよりは、TCPの3306ポートでの接続の問題だと思われる

以上のような状況です

1度サーバのApacheからMariaDBにアクセスすると、他からのアクセスが拒否される、ということなのでしょうか?
ブラウザを閉じてもエラーが継続するのは、Apacheからの接続は閉じられていないということなのでしょうか?
その場合、ApacheあるいはXAMPPの設定で解決できるのでしょうか?
あるいは、MariaDBに複数のポートを設定して、3306にはApacheが、別のポートに外部から接続するようなことはできるのでしょうか?

あるいは全く別の問題なのかもしれませんが、みなさまのお力添えを頂けると大変助かります。よろしくお願いします。
(Markdown記法に慣れていないため、読みづらい面がありましたらご容赦のほど)

0

1Answer

mysqlサーバープロセスが不正に終了しているのではないでしょうか?
(exe自体がしんでいる)

もう一台PCを用意して環境を作ってみるか、
社内サーバーをLinuxを入れてた仮想マシンで構築するのが良いと思います。
(windows 10 であれば WSL2 が使えます)

0Like

Comments

  1. @token

    Questioner
    tukiyo3様

    ご連絡、ありがとうございます
    mysqlサーバは正常に稼働していると思います
    そのことは、以下2点からそう言えると考えます
    1) WordPressの画面(Admin画面、Webサイト)は正常に表示される
    2) サーバ側でmysqlコマンドを実行すると、お返事がある

    また、実はその後サーバ側にSSHサーバを入れてみたのですが、同様にサーバ起動直後は外部からSSHサーバに接続できるが、WordPress画面表示後はSSHサーバに接続できなかったりしています
    (なので、SSHポートフォワーディングで接続するという案も絶たれてしまいました)

    もう1台マシンを用意するのは、アドバイス頂いたWSL2も含めて、社内的にちょっと難しそうでした(撤退する事業の整理用なので資源確保=マン・マシン・マテリアル・マネー=が難しいのです...)

    個人的には隙を見て試してみたいと思います

    アドバイス、ありがとうございました

Your answer might help someone💌