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になって返ってくるので、あとは煮るなり焼くなり好きにしてです。