2016年6月5日日曜日

Python3ではmysql-pythonが使えない

Python3ではmysql-pythonが使えない

Python3ではMysql-pythonが使えないということで
mysqlclientとmysql-connector-phythonを導入する必要があるということ。

$ sudo pip3 install mysqlclient
$ sudo pip3 install --upgrade pip

試しに以下のようにMySQLでデータベースを用意する。

$ mysql -u root -p
mysql> create database list;
mysql> create table list.personal(id int, name varchar(20));
mysql> show tables from list;
+----------------+
| Tables_in_list |
+----------------+
| personal       |
+----------------+
mysql> insert into list.personal(id,name) values(1,'Satoh');
mysql> select * from list.personal;
+------+-------+
| id   | name  |
+------+-------+
|    1 | Satoh |
+------+-------+
定義は省略できるので、以下でもOK.
mysql> insert into list.personal values(2,'Kondo');

以下のコード(dbsample.py)を作成し、データベースの読み出しと追加ができた。

python3 dbsample.py
#!/usr/bin/python3

import MySQLdb
def showUser():

    connector = MySQLdb.connect(
            user='root',
            passwd='mysql',
            host='localhost',
            db='list',
            charset="utf8")

    cursor = connector.cursor()

    # read
    cursor.execute("select * from personal")

    for row in cursor.fetchall():
        print("ID:" + str(row[0]) + "  NAME:" + row[1])

    # insert
    sql = u"insert into list.personal values(3,'Abe')"
    cursor.execute(sql)
    connector.commit()

    # read
    cursor.execute("select * from personal")

    for row in cursor.fetchall():
        print("ID:" + str(row[0]) + "  NAME:" + row[1])

    cursor.close
    connector.close

参考
http://note.kurodigi.com/python3-mysql/

Python - if name == ‘main‘: の意味に関しては以下が参考になった。
http://azuuun-memorandum.hatenablog.com/entry/2015/05/09/002549

0 件のコメント :

コメントを投稿