Help us understand the problem. What is going on with this article?

PythonからMySQLへ接続する

More than 3 years have passed since last update.

はじめに

pythonからmysqlにmysql-connectorを利用して接続を試みます。

環境

  • windows7
  • MySQL5.7
  • python3.5

mysql-connectorをインストール

pipでインストールできるらしいので、pip install mysql-connector-pythonを実行
SnapCrab_NoName_2016-6-18_17-51-26_No-00.png

はい、エラー。
よくわからなかったので別のやり方で。

まずはconnectorをこちらからダウンロード
SnapCrab_NoName_2016-6-19_11-39-6_No-00.png
※Programming LanguageにPython3.5の記述がないので対象外なのかと思いましたが、接続は成功しました。

解凍したディレクトリで、python setup.py install を実行すればインストールされます。

確認はpip listで。
SnapCrab_NoName_2016-6-18_18-12-45_No-00.png

無事にインストールできた様子。

データベース、テーブル、データの準備

今回は以下のように作成します。

# データベース
create database test;

# テーブル
create table user (id char(10), name char(20));

# データ登録
insert into user values ('01', 'hoge');

では、さっそく。

SnapCrab_NoName_2016-6-18_18-15-51_No-00.png

こんな感じでさくっとできました。
問題なさそうですね。

pythonからmysqlにアクセスして情報を取得する

ついにこの時がやってきました。
涙が出そうですが、まだ早いです。
コードはこんな感じ。

db_access.py
# -*- coding: utf-8 -*-

import mysql.connector

conn = mysql.connector.connect(user='root', password='root', host='localhost', database='test')
cur = conn.cursor()

cur.execute("select * from user;")

for row in cur.fetchall():
    print(row[0],row[1])

cur.close
conn.close

みじかっ。
こんなに簡単にDBアクセスして情報の取得ができるんですね。

実行した結果はこちら。
SnapCrab_NoName_2016-6-18_18-18-44_No-00.png

問題なく01hogeが取得できていますね。

最後に

connectorcursorについては全く理解できてません。。。
別の機会に調べてまとめたいと思います。

a_t_a
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away