PythonでエックスサーバーのMySQLを使おうとしてエラー続出もMySQL ConnectorからPyMySQLに替えると解決

PytonでXserverのMySQLに接続・操作しようとしたときのエラーを解決した方法

今回はPythonの解説記事というよりはただの愚痴と備忘録のようなものです。

みんな大好きなレンタルサーバーのエックスサーバー(Xserver)私もイチオシです。そのエックスサーバーで利用できるデータベースはMySQLです。

そこでPythonを使ってSSH接続によりエックスサーバー上のMySQLを操作してみようとふと思い立って簡単なプログラムを作ったのですがエラーが出て動かない状態に。

それを解決するのになんと4時間も費やしたという愚痴です。しかも解決方法はとても容易なものでした・・・。

ただし、今回の解決に役立った方法はあくまで私個人の環境・事例においてのもので、一般的な解決方法としては適さないかもしれません。ですが、なんらかの参考にはなると思います。

エラー:ライブラリMySQL Connectorで上手くいかない

SSH接続

まずSSH接続をするため、「sshtunnel」というライブラリをpipでインストール。そしてインポートして利用しました。設定項目で何度かハマりましたが、無事にSSH接続に成功。

エックスサーバー上のMySQLへの接続

次にエックスサーバー上のMySQLに接続する段階へ。ここでは「MySQL Connector」というライブラリをpipでインストール。そしてインポート。

しかし、何度やってもエラーがでます。設定項目(変数に代入する情報)をいろいろ変更しても全然上手くいきませんでした。設定を変更するたびにエラーの内容も変わります。

このエラーの解決のために、上のSSH接続の段階とあわせて日曜日の午後が4時間潰れました・・・

解決方法:ライブラリをPyMySQLへ変更すると一発で成功

最終的に使用するライブラリを変えようと決断。MySQL ConnectorからPyMySQLへ変更。

すると、設定項目は同じだったにも関わらず一発で接続が成功。

新規テーブルの作成やデータの挿入なども一発で成功。

日曜日の貴重な4時間が・・・😥

というわけで、Pythonを使ったMySQLへの接続が上手くいかない場合は、使うライブラリを変えてみてはいかがでしょう。

Amazon:SQL 第2版 ゼロからはじめるデータベース操作 Kindle



プログラミングを学びIT業界へ転職するなら現役エンジニアから学べるプログラミングスクールTechAcademy [テックアカデミー]でオンライン講座を受講するのが良いと思います。1人で悩みながら学習を進めるよりもわかりやすく、費やす時間も少なく合理的・効率的に学習できるからです。

など各種の講座が用意されています。無料で体験できるテックアカデミー無料体験も用意されています。