amimoto-330
2022年8月16日 14時47分
お世話になります。
コンテナの中にデータベースを参照するスクリプトをPython言語で作成して実行させているのですが、
サーバにアクセスできないエラー(添付ファイル)が表示されてしまいます。
データベースはG4とLAN接続されたWindows PCにあるMySQLを使用しています。
(Python3.9を使用し、mysql-connector-pythonライブラリをインストール済)
エラーの原因としては、IPアドレス、ポート番号やテーブル名が間違っている可能性はありますが、
その他に考えられる原因があれば教えて頂けないでしょうか?
以前同じ設定でarmadillo-640を使って実施した時は、問題無くアクセスできた記憶があります。
以上、よろしくお願いします。
ファイル | ファイルの説明 |
---|---|
mysql_connector_error.png | エラー発生時のログ |
コメント
amimoto-330
at_dominique.m…
amimoto-330さん、
> ご指示頂いた通り、Windowsの設定に問題があるかも知れませんので、もう少し調査してみます。
お願いします。
> また、コンテナにncatをインストールしましたが、ncatを実行すると「command not found」となってしまいます。
> 恐らく手順を間違えていると思うので、申し訳ありませんがインストール方法を教えて頂けないでしょうか?
すみません、コンテナが debian ベースだと思って確認しませんでしたが、何をコンテナとして使ってますか?
debian の場合では ncat のパッケージに /usr/bin/ncat のコマンドが入っていますので、 command not found になっていたら日本語のスペースが混ぜられたか PATH に /usr/bin が入ってない等のいくつかの可能性もありますが、コンテナの外でも使えます。
私のパソコンに mysql を起動させていませんが、ポート 80 で http サーバーの確認を以下のように取れます。(apk コマンドでインストールされたパッケージはメモリ上にだけインストールされますので、再起動したら再びインストールしてください。)
armadillo:~# apk add nmap-ncat (1/2) Installing lua5.3-libs (5.3.6-r3) (2/2) Installing nmap-ncat (7.92-r2) Executing busybox-1.35.0-r17.trigger OK: 217 MiB in 224 packages armadillo:~# ncat -w 1 -v 192.168.1.42 3306 Ncat: Version 7.92 ( https://nmap.org/ncat ) Ncat: TIMEOUT. armadillo:~# ncat -w 1 -v 192.168.1.42 80 Ncat: Version 7.92 ( https://nmap.org/ncat ) Ncat: Connected to 192.168.1.42:80. # ここで ctrl + d で停止させます Ncat: 0 bytes sent, 0 bytes received in 5.67 seconds.
よろしくお願いします。
amimoto-330
マルティネ様
ご連絡ありがとうございます。
> すみません、コンテナが debian ベースだと思って確認しませんでしたが、何をコンテナとして使ってますか?
コンテナはdebianベースを使っています。
armadillo:~# podman ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS S
32ee41a7ae93 docker.io/library/debian:bullseye /bin/bash 3 weeks ago Exited (127)e
armadillo:~#
コンテナの外でapkコマンドを使いncatをインストールし、「ncat -w 1 ・・・」を実行すると、TIMEOUTになりますが実行できました。
しかし、相変わらずコンテナ内だと、command not foundになってしまいます。
コンテナの作成に失敗している可能性があるので、もう一度コンテナを再作成して試してみます。
本題のMySQLサーバに接続できないのは、Windows PCに問題がありそうなので、引き続き調査してみます。
ありがとうございました。
at_dominique.m…
2022年8月16日 15時09分
amimoto-330さん
お世話になっています、
アットマークテクノのマルティネです。
> コンテナの中にデータベースを参照するスクリプトをPython言語で作成して実行させているのですが、
> サーバにアクセスできないエラー(添付ファイル)が表示されてしまいます。
> データベースはG4とLAN接続されたWindows PCにあるMySQLを使用しています。
> (Python3.9を使用し、mysql-connector-pythonライブラリをインストール済)
>
> エラーの原因としては、IPアドレス、ポート番号やテーブル名が間違っている可能性はありますが、
> その他に考えられる原因があれば教えて頂けないでしょうか?
コンテナのデフォルトネットワークは Armadillo によって NAT されてますが、外に接続するに関しては制限がありません。
Windows の方に firewall が追加されたか、サーバーが localhost のみに bind/listen された場合に接続できませんので、そのあたりの設定も確認してみてください。
後、添付していただいたイメージではログが読みづらいですので、ファイルを使って最後まで読めるようにするか、
例えばコンテナに「ncat」のパッケージをインストールして、「ncat -v 3306」で接続確認してみてください。
よろしくお願いします。