PythonでXserverのMySQLに外部接続しようとしたら

スポンサーリンク

はじめに

自分のノートパソコンでPythonアプリを実行して、実行結果のCSVファイルをXserverで運用しているデータベースにインポートしたいと思い、ネットでいろいろ調べたのでまとめます。

結論、XserverのMySQLにはセキュリティ的に外部接続出来ないみたいです。

これは「Xserver SQL 外部接続」などで検索すると、外部接続は出来ないといった内容がたくさん出てきます。

MySQL Workbenchをインストールしたり、phpMyAdminを自分のノートパソコンにインストールしたり試した後に、外部接続は出来ないという検索結果を見つけたので諦めがつきました。

一応PythonでXseverのデータベースにアクセスしようとした方法と外部接続は出来ないのでその対応方法を紹介します。

試みたこと

Pythonのmysql.connectorを使えばSQLにアクセス出来るみたいで、下のようなコードを書いてアクセスを試みました。

import mysql.connector

cnx = None

try:
    cnx = mysql.connector.connect(
        user='user_name',  # ユーザー名
        password='password',  # パスワード
        host='sv?????.xserver.jp',  # ホスト名(IPアドレス)
        database='database',  # データベース名
        charset='utf8'
    )
except Exception as e:
    print(f"Error Occurred: {e}")

finally:
    if cnx is not None and cnx.is_connected():
        cnx.close()
  • ユーザー名
    ユーザー名は「サーバーパネル」→「MySQL設定」→「MySQLユーザ一覧」のMySQLユーザ名を入れました
  • パスワード
    パスワードはユーザー名のパスワードを入れました。「サーバーパネル」→「phpMyAdmin」でログインする時のパスワードと同じです。
  • ホスト名
    ホスト名は「サーバーパネル」→「サーバー情報」のホスト名を入れました。
  • データベース名
    データベース名には「サーバーパネル」→「MySQL設定」→「MySQL一覧」のデータベース名を入れました。

上のコードをAnaconda Promptで実行した結果が下のようになりました。

(base) C:\>python sqlconnect.py
Error Occurred: 2003 (HY000): Can't connect to MySQL server on 'sv?????.xserver.jp:3306' (10061)

(base) C:\>

「サーバーに接続できない」というエラーメッセージが出ました。

このエラーメッセージでネットで検索したところ、XserverのMySQLには外部接続出来ないという内容に遭遇しました。

今後の対応

自分のパソコン上でPythonプログラミングを実行し、CSVファイルを取得し、「サーバーパネル」→「phpMyAdmin」で手動でインポートしようと思います。

Xserverのサーバー上でPythonを実行する分にはMySQLにアクセスできるみたいですが、既に入っているPythonのモジュールは不十分らしいです。

モジュールの追加をするためには、2つ目のPythonをインストールし直して環境構築する必要があるみたいで面倒なので、手動インポートがさすがに大変だったら、サーバー上でのPythonの稼働に挑戦しようと思います。

コメント

タイトルとURLをコピーしました