PROGRAM PYTHON

Pythonスクリプト【MySQLにリモート接続しよう①~準備】

 

PythonスクリプトからMySQL Serverにリモート接続しよう

今回は、Pythonスクリプトから別マシンにあるMySQL Serverに接続してみましょう。
MySQL ServerとPythonの接続には、MySQL Connector/Pythonライブラリーを使います。
なお、MySQL ServerとPythonは、それぞれ別マシンのWindows10 home上に存在しています。

 

MySQL側の準備

前提として、MySQL Serverはインストールされている状態とします。
MySQL Serverのインストールは、こちらの記事 を参照してください。

 

ユーザーを作成する

PythonスクリプトからMySQL Serverに接続するためのユーザーを作成します。

CREATE USER ユーザー名@'許可するIPアドレス(ホスト名)' IDENTIFIED BY 'パスワード';

ワイルドカードは、「'%'」を使います。

 実行例
mysql> CREATE USER user1@'192.168.%' IDENTIFIED BY 'password1';

 

DBを作成する

DBを作成します。

CREATE DATABASE DB名;

 実行例
mysql> CREATE DATABASE db1;

 

DB権限を追加する

Pythonスクリプトからリモート接続するDBに権限を追加します。

GRANT all ON DB名.テーブル名 TO ユーザー名@'IPアドレス';

 実行例
mysql> GRANT all ON db1.* TO user1@'192.168.%';

メモ

allは全ての権限を許可しています。

 

Python側の準備

PythonスクリプトからMySQL Serverに接続するために、MySQL Connector/PythonをPythonスクリプトがあるマシン上にインストールします。
MySQL Connector/Pythonは、PythonスクリプトからMySQL Serverに接続するためのライブラリーとドライバーです。
前提として、Python本体はインストールしている状態とします。

 

MySQL Connector/Pythonをインストールする

MySQL Connector/Pythonのインストールは、Pythonのpipコマンドで行います。

pip install mysql-connector-python

 

MySQL Connector/Pythonをインポートする

MySQL Connector/Pythonのインポートは、以下のように行います。

import mysql.connector

 

MySQL Serverに接続する

MySQL Serverへの接続は、以下のように行います。

接続オブジェクト = mysql.connector.connect(オプション)

 実行例
cnx = mysql.connector.connect(user='scott', password='password', host='192.168.0.1', database='db1')

 

mysql.connector.connect()のオプション

mysql.connector.connect()の主なオプションは、以下の通りです。

オプション名 内容
user MySQL Serverの認証で使用されるユーザー名
password MySQL Serverの認証で使用されるパスワード
database MySQL Serverに接続する時の、DB名
host MySQL Serverのホスト名またはIPアドレス(デフォルトは127.0.0.1)
port MySQL ServerのTCP/IPポート。整数(デフォルトは3306)
charset 使用するMySQL文字セット(デフォルトはutf8)
connection_timeout TCPおよびUNIXソケット接続のタイムアウト

 

MySQL Serverから切断する

MySQL Serverからの切断は、以下のように行います。

接続オブジェクト.close()

 実行例
cnx.close()

 

カーソルを作成する

MySQL Connector/PythonでMySQL Serverとデータのやり取りをするには、カーソル(cursor)を使います。

カーソルオブジェクト = 接続オブジェクト.cursor()

 実行例
cursor = cnx.cursor()

 

カーソルをクローズする

カーソルを使い終わったら、close()メソッドを使ってカーソルをクローズします。
このメソッドは、すべての結果をリセットして、カーソルオブジェクトが元の接続オブジェクトを参照しないようにします。

カーソルオブジェクト.close()

 実行例
cursor.close()

 

 

-PROGRAM, PYTHON
-