mysql-connector-pythonを使ってみよう

本チュートリアルの内容

■ 開発環境 の確認

前提とする環境

このチュートリアルでは、以下の環境を想定します。


開発の準備

開発に使用するMySQLはMySQLのページからダウンロードして、インストールする必要があります。以下のリンクでMySQLに関するチュートリアルをまず実施しましょう。

DBは、上のチュートリアルで作成したものを利用することとします。

次に、mysql-connector-pythonをインストールします。Pythonの実行環境は、このウェブの別のチュートリアルで解説をしているAnacondaを利用しているとして説明をします。


図 mysql-connector-pythonのインストール

インストールするのはPyCharmで使用するインタープリターで設定する環境になります。

(ページの先頭へ


■ PyCharmを使ってDB接続する

では、さっそく、PyCharmを立ち上げて、MySQLに接続してみましょう。PyCharmで、mysql_connectというプロジェクトを作成しましょう。


図 プロジェクトのスタート

次に、プログラムを作成します。先ほど作った、mysql_connectプロジェクトのフォルダでマウスを右クリックし、新規のpythonファイルの追加を選択します。


図 プログラムファイルの作成

クラスの設定画面では、以下のように、my_query.pyという名前のファイルを追加しました。


図 プログラムファイル名

次に、MySQLアクセスをするためのライブラリをインポートしておきます。

             import mysql.connector
        

このままではインタープリターが先ほどmysql-connector-pythonをインストールした環境ではないので、エラーが出ていると思います。PyCharmの設定から正しい実行環境を選び直します。


図 インタープリターの選択

これで、先ほどまで出ていたエラーは消え、ライブラリが利用できるようになります。

では、実際のプログラミングに入ろう。クラスの中に次のようなコードを追加してみましょう。

def main():
    connection = mysql.connector.connect(
        host='192.168.0.19', # 接続先
        port='3306',
        user='picklog', # mysqlのuser
        password='p!cklog', # mysqlのpassword
        database='picklog_db',
        use_pure=True,
    )

    # コネクション断時の再接続設定
    connection.ping(reconnect=True)

    cur = connection.cursor()

    cur.execute("SELECT * from log_tbl")

    # 全データ取得
    rows = cur.fetchall()

    # 結果の表示
    for row in rows:
        print(row)

    # DB接続終了
    cur.close()
    connection.close()


if __name__ == '__main__':
    main()
    
        

ここで書いたコードについて、少しだけ解説をすると、connectionでは、接続するDBを定義しています。ここでは、前提としているMySQLのチュートリアルで作成した、DB(picklog_db)に接続しています。ユーザ名とパスワードもその際のものです。また、接続先として、サーバーが動いている端末のIPアドレスも指定しています。これは、チュートリアルを作成した環境のPCのアドレスです。

(ここで注意したいのは、MySQLの接続は、TCP3306番を使用しているので、ファイアウォール内の端末から、ファイアウォール外のサーバーに接続しようとしたり、あるいは、使用しているPCのセキュリティソフトが、3306ポートを遮断している場合には、接続ができなくなります)

カーソルをつかってSQLをハンドリングするので、curを定義しています。ここではexecuteメソッドを用いてSQL文を実行し、結果をfetchallメソッドですべて抽出しrowsタプルに格納しています。ここでは単純にrowsの中身をfor文で出力しています。最後に、DB接続をクローズして終了します。

では、実際にこのコードを動かしてみましょう。


図 プログラムの実行

すると、コンソール画面に以下のような検索結果が表示されると思います。


図 実行結果

無事にMySQLに接続できたのが確認できたでしょうか。

ページの先頭へ

■ 応用問題に挑戦してみよう

データの更新もやってみよう!

ページの先頭へ