やったもん勝ち

主にプログラミングのこと。生産性向上の某とかも。

python36で別のホストのmysqlに接続する。

環境

接続元

接続先

準備

MySQLサーバ

事前にDBとテーブルを作っておきます。 ユーザー、パスワードとかは特に作成せず、起動したてのままでOKです。 SQLは適当に作成します。

mysql > CREATE DATABASE testdb;
mysql > USE testdb;
mysql > CREATE TABLE employee(name varchar(20), age int, job varchar(20), salary int);
mysql > INSERT INTO employee (name, age, job, salary) VALUES ('tanaka',20,'engineer',400);
mysql > GRANT ALL PRIVIEGES ON *.* TO root@aaa.aaa.aaa.aaa;

AWS

セキュリティグループをMySQLのport3306を開けておいてください。

python

sudo pip-3.6 install pymysqlが必要です。

実装コード

import pymysql

db = pymysql.connect(
    host='xxx.xxxx.xxx.xxx',
    user='root',
    password='',
    db='testdb',
    charset='utf8',
    cursorclass=pymysql.cursors.DictCursor,
)


cur = db.cursor()
sql = "select * from employee"
cur.execute(sql)
employees = cur.fetchall()
print(employees)
[{'name': 'tanaka', 'age': 20, 'job': 'engineer', 'salary': 400}]

と、listになって返ってくるので、あとは煮るなり焼くなり好きにしてです。