実務に生かすPythonサンプル

Python3でMySQL Connectorのインストール・接続方法【快適に使う方法を紹介】

こんにちは。現役Webエンジニアの三年坊主です。

 

今回は、Python3のプログラムからMySQLを操作したい人の、このような疑問に答えます。

「Python3でmysql connectorというライブラリをインストールして使いたい。基本的な使い方を教えてください。」

 

結論としては、mysql-connector-python を pipでインストールするのが一番簡単でおすすめです。

 

なお、私は大学の研究と自分の趣味、最近では業務も合わせて、合計5年以上Pythonを使ってきました。

 

この記事では、その経験を生かして、Python3で使えるmysql connectorのインストール方法と基本的な使い方、さらに変なエラーになるべく苦しまず快適に使うための知識を紹介します。よければ参考にしてください。

 

この記事の内容

  • Python3で使えるmysql connector【インストール】
  • mysql connector pythonの基本的な使い方
  • mysql connector pythonを快適に使うための知識【エラー処理】

 

Python3で使えるmysql connector【インストール】

Pythonプログラム単体で、これからライブラリをインストールして使いはじめる場合には、mysql-connetor-python をインストールして使いましょう。

仮想環境内に”pip install mysql-connector-python”でインストールする方法をおすすめします。

 

「pipで一発でインストールできるなら楽でありがたい!」

 

「ですね!」

 

 

mysql connectorは、正式には”MySQL Connector/Python”といいます。Pythonプログラムからデータベースにアクセスするためのライブラリの一つです。

 

Pythonで使えるMySQLライブラリは他にもいくつかありますが、mysql connectorにはこのような特徴があります。

  • MySQLの開発元、Oracle社によってアクティブに開発されている
  • Python Database API Specification v2.0 という共通の仕様に対応
  • 依存がPythonの標準ライブラリだけなのでインストールが楽

 

実は、Python3で使えるmysql connectorを探すと、主に2つ見つかると思いますが、

 

2018年9月現在の開発状況を踏まえて、mysql-connetor-pythonを選びましょう。

 開発状況対応している最新Pythonバージョン最終更新
mysql-connetor-python-rf4 – Beta3.32017年2月
mysql-connetor-python5 – Production/Stable3.62018年7月

 

また、mysql-connector-pythonとPythonのバージョン対応表を見てみると、特にPython3.6を使う場合は mysql-connector-pythonの最新版 (8.0) 一択のようです。

 

ちなみに、細かく見るとさらにたくさんのライブラリがありますが、他のライブラリを使わなくてよさそうと判断した理由も書いておきます。

  • mysql-connector (2.1.6):mysql-connector-pythonをもとに個人が開発している様子
  • bottle-mysql-connector (0.0.4):軽量WebフレームワークBottle 向け
  • mysql-connector-repackaged (0.3.1):最終更新が2012年と古い
  • mysql-connector-async-dd (2.0.2):非同期処理向けに改良したもの(ただし個人ベースで開発しているように見える)
  • mysql-connector-python-dd (2.0.2): Pythonの対応バージョンが3.3まで
  • py_mysql_connector (0.1):mysql-connector-pythonをもとに個人が趣味的に開発している様子

 

インストール方法

mysql-connector-pythonを、仮想環境内にpipでインストールします。

 

この記事で使う表記法

  • コメント
  • ターミナル上で実行するコマンド($マークは入力不要)
  • py3envという名前の仮想環境を有効化した状態で実行するコマンド(”(py3env) $” は入力不要)
  • Pythonを起動した状態で実行するコマンド

 

このように、Pythonプログラム単体で、これからライブラリをインストールして使いはじめる場合には、mysql-connetor-pythonをインストールしましょう。

方法としては、仮想環境内に”pip install mysql-connector-python”でインストールするのがおすすめです。

 

mysql connector pythonの基本的な使い方

mysql-connector-pythonの基本的な使い方について説明します。

 

コピペで動くサンプルコードを紹介するので、mysql-connector-pythonのインストール後、すぐにMySQLに接続して操作をはじめることができます。

 

MacでMySQLサーバをセットアップする方法は、この記事などを参考にしてください。

 

接続(コネクションの作成)

 

標準ライブラリからurlparseを使って、このように値をセットしても大丈夫です。

 

再接続の設定方法と、接続できているか確認する方法を紹介します。

 

テーブル作成 (CREATE)

cursorメソッドを使って、コネクションからカーソルを作成します。

そのカーソルに対して、executeメソッドを使ってSQL文を実行します。

 

データ挿入 (INSERT)

id, name, priceを持つテーブルを作成したので、たとえばあなたが持っている仮想通貨の金額を、日本円換算で挿入してみましょう。

 

データ選択 (SELECT)

 

データ更新 (UPDATE)・データ削除 (DELETE)

 

コネクションを閉じる

データベースの操作が終わったら、カーソルとコネクションを閉じましょう。

 

以上、基本的な操作方法について説明しました。

「コネクション作成→カーソル作成→操作→カーソル閉じる→コネクション閉じる」の流れになります。

 

mysql connector pythonを快適に使うための知識【エラー処理】

少し発展的な内容になりますが、なるべく変なエラーに苦しまず、mysql connectorを快適に使うために、簡単なエラー処理をする習慣を身につけておくと役立ちます。

 

エラー処理をして、実際にどのエラーが発生したのかすぐに確認できるようにしておくと、変な現象が起こった時に「何が原因か分からない!」と苦しむ時間を短くすることができるからです。

 

mysql-connector-python では、起こりうるエラーの一覧が整理されています。これをうまく活用しましょう。

B.3 Server Error Codes and Messages

B.4 Client Error Codes and Messages

 

リンク先を見ると、基本的に番号(error number)とメッセージ(error message)の組み合わせで一つのエラーが表現されているようです。

 

この中から、よく出現する番号とメッセージの一部を下の表にまとめます。

番号対応するシンボル (SQLSTATE)メッセージ考えられる原因(一部)
1045ER_ACCESS_DENIED_ERROR (28000)Access denied for user ‘%s’@’%s’ (using password: %s)ユーザネームかパスワードが間違っている
1049ER_BAD_DB_ERROR (42000)Unknown database ‘%s’指定した名前のデータベースが存在しない
1051ER_BAD_TABLE_ERROR (42S02)Unknown table ‘%s’指定した名前のテーブルが存在しない
2002CR_CONNECTION_ERRORCan’t connect to local MySQL server through socket ‘%s’ (%d)MySQLサーバが実行されていない
2003CR_CONN_HOST_ERRORCan’t connect to MySQL server on ‘%s’ (%d)ネットワーク接続が拒否されている

 

エラー一覧の活用方法ですが、Pythonプログラムで「エラーコードとメッセージを出力して、一覧と照らし合わせられる状態にする」のが基本です。

 

上のプログラムを実行して、もしこのようなエラーが出たら、「指定した名前のデータベースが存在しない」ということが分かります。

 

より実践的には、このようにするといいでしょう。

  • “from mysql.connector import errorcode”を一行追加する
  • mysql-connector-python関係でエラーが起こりそうなところをtryとexceptではさむ
  • 事前に予想できるエラーはなるべくif文で場合分けして、原因が分かりやすいメッセージを出力する
  • それ以外のエラーは、エラー内容をそのまま出力して一覧で確認できるようにする

 

エラー処理をしてエラーの内容を確認しやすい状態にすると、あなた自身で修正の手がかりがつかみやすいですし、人に聞くときにも原因を正しく伝えられるので、時間の節約になります。

 

コピペからはじめて大丈夫なので、簡単なエラー処理を組み込んで、mysql connectorを快適に使いましょう。

 

Pythonのインストール・環境構築の記事もよければご覧ください。

 

より本格的にPythonを学ぶなら

より本格的にPythonを学びたい場合には、プログラミングスクールを活用するのがオススメです。

プログラミングスクールって、「プログラミングって何?」みたいな超初心者だけのものと思っていませんか?

最近では、経験者向けにも、レベルや希望に合わせた様々なコースが展開されています。

オススメなのが、Aidemyです。

特徴は、人工知能特化型のプログラミング学習サービスということ。

Pythonを学べるコース

  • AIアプリ開発コース(画像認識)
  • データ分析コース(数値予測)
  • 自然言語処理コース
  • E資格対策コース
  • クラウドAI開発コース
  • 実戦データサイエンスコース

Aidemyの教材は「理論よりもまずは実践」をうたっていて、他社と比較すると、かなり本格的に、現場でも実際に使われるスキルを身につけられます。

そして、どのコースも同じ料金で受け放題

余裕があれば、AIアプリ開発コースの内容と、クラウドAI開発コースの内容を組み合わせて学習することもできてしまいます。

無料のカウンセリングで、不明点や学習したい内容をまずは相談してみましょう。

» Aidemyの無料カウンセリングはこちら

 

もう一つオススメなのが、TechAcademyです。

オンラインプログラミングスクール受講者数No.1の実績に加えて、受講生限定の転職サポートもあり、TechAcademyで学んだスキルを生かせる職場への転職も可能です。

「セット割」を活用すると、Pythonを使った人工知能・データ分析のスキルを過不足なく身につけられます。

1週間の無料体験があるので、システムの使い心地やサポート体制をのぞいてみるのがいいかなと思います。

» TechAcademyの無料体験はこちら

 

どちらのスクールも質問サポートが充実していて、早ければその場で、遅くとも次の日には疑問が解消するので、

「独学でプログラミングを勉強してきたけど、行き詰まるたびに時間が奪われるし、周りに気軽に聞ける人もいない」

みたいな無駄な一日を過ごすことがなくなります。

 

以上、Pythonを本格的に学べるプログラミングスクールを2校紹介しました。どちらも最初に20〜30万円くらいの投資が必要ですが、実際にスキルを身につけてしまえば、あとで簡単に回収できるはずです。例えば、

  • Pythonエンジニアに転職して年収を上げる:50万円
  • 副業で業務委託:20万円(時給5,000円で週10時間、1か月)
  • クラウドソーシングの単発案件:5〜10万円

このように、プログラミングスクールにお金を払ってもすぐに回収できることが分かると思います。

実際に、Pythonを使う業務委託で時給5,000円というのは普通にあるので、スキルをつけたら「週末にちょっと作業」を1〜2か月続けるだけですよね。

Google検索で問題解決するのもいいですが、「毎回ちょっと場当たり的に対応していて苦しいな・・・」と感じているあなたは、一度腰を据えてPythonを本格的に学ぶことを選択肢に入れてみてはいかがでしょうか。

記事で紹介したプログラミングスクールの一覧

  • Aidemy→人工知能特化、無料カウンセリングあり
  • TechAcademy→受講者数No.1、1週間の無料体験あり

RELATED POST

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください