はじめに
講釈よりも、とにかく触りたい・使いたい初心者向け手順書テイスト
OCIのMDSをたてて、Python等で繋げて使ってみる。
今回はComputeにConnector/Pythonをインストールし接続まで。
前提:OCIの有償アカウントであること(30日間無料トライアルの方もOKです)
本手順は、翔泳社の良書
MySQL徹底入門 第4版 MySQL 8.0対応を参考としています。
同書籍のサンプルファイルを活用します。
※サンプルファイルのReadMeに以下のありがたいお言葉があるので活用して効率化します。
「本書のサンプルデータは自由に利用できることとします。改変のほか、自由に利用、複製、再配布することができます。」
ただ、サンプルファイルの日本語部分は文字化けしているファイルがあるので、
そのまま使うのが難しい場合があります。
構成
前回:MDS+Python 他①で構成した環境を元に記載します。
未だの方は前回記事を御確認ください。
・Compute:Oracle Linux8
・MDS:MySQL8.0
データベース構造は以下の通りとします。
・データベースとテーブル作成
・データベース名:mdstest
・ユーザー名:mdsuser
・パスワード:任意 (パスワードポリシー:8字以上、大・小・数字・記号 例:Mdsp@ss01)
・文字コード:utf8mb4
・テーブル名:commodity
Field | Type | Null | key | default | extra |
---|---|---|---|---|---|
code | int | Not Null | PRI | NULL | AUTO_INCREMENT |
name | VARCHAR(30) | - | - | NULL | - |
price | int | - | - | NULL | - |
start_date | DATETIME | - | - | NULL | - |
last_update | TIMESTAMP | - | - | CURRENT_TIMESTAMP | DEFAULT_GENERATED |
Connector/Pythonは「Pure Python版」を使います。
MDS データベース作成
cloud shellを起動させコンピュート・インスタンスにssh接続します。
$ ssh -i アップロードした秘密キー パブリックIPアドレス -l opc
例:$ ssh -i ssh-key-2022-05-31.key 150.230.193.122-l opc
MDSに接続
$ mysql -u MDSのユーザー名 -p -h MDSのプライベートIPアドレス
例:mysql -u root -p -h 10.0.1.51
データベース「mdstest」を作成し選択します。
CREATE DATABASE mdstest CHARACTER SET utf8mb4;
use mdstest;
テーブル「commodity」を作成して確認します。
CREATE TABLE commodity(
code INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30),
price INT,
start_date DATETIME,
last_update TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) CHARACTER SET utf8mb4;
desc commodity;
実行ユーザー作成
CREATE USER 'mdsuser'@'%' IDENTIFIED BY 'Mdsp@ss01';
GRANT ALL PRIVILEGES ON mdstest.* TO 'mdsuser'@'%';
SELECT user,host FROM mysql.user;
quit
Connector/Python インストール
■Pythonのバージョン確認、Oracle Linux 8.2以降を実行しているか確認
$ python -V
Python 3.6.8
$ cat /etc/oracle-release
Oracle Linux Server release 8.5
■Python3.8のインストールとコンピュートから一旦ログアウト
$ sudo dnf module install python38 -y
$ sudo alternatives --set python /usr/bin/python3.8
$ python -V
Python 3.8.12
$ exit
■Connector/Python インストール
Connector/Python 公式サイト ダウンロードページ
より、「Connector/Python 」のリンクをクリック
・Select Operating System:Red Hat Enterprise Linux/Oracle Linux
・Select OS Version:Red Hat Enterprise Linux 8/Oracle Linux 8(ARM,64-bit)※
※AmpereシェイプはARMを選択。Intel系シェイプの場合はx86-64bitを選択
・「Download」ボタンをクリック
画面下の「No thanks,just start my download.」を選択
Cloud Shell画面の左上ハンバーガーボタンをクリック
「Upload」ボタンをクリック
表示されたポップアップ画面にコンピュート作成時にダウンロードしたRPMファイルをExplorerからドラッグ&ドロップ
「Upload」ボタンをクリック
scpでコンピュートへRPMファイルを送信
$ scp -i [ssh秘密鍵ファイル] [コピー元のファイル] [コピー先]
例:$ scp -i ssh-key-2022-05-31.key mysql-connector-python3-8.0.29-1.el8.aarch64.rpm opc@140.238.55.10:/home/opc/
sshコンピュートへログイン
$ ssh -i アップロードした秘密キー パブリックIPアドレス -l opc
例:$ ssh -i ssh-key-2022-05-31.key 150.230.193.122-l opc
$ sudo dnf install ./転送したrpmファイル -y
例:$ sudo dnf install ./mysql-connector-python3-8.0.29-1.el8.aarch64.rpm -y
接続確認
■pyファイル作成
$ vi connect.py
下記を転記※し、「ESCキー → :(コロン) → wq!」で上書き保存
※ mysql.connector.connectのカッコ内:user、password、host、databaseを自身の環境に合わせて編集
import mysql.connector
from mysql.connector import errorcode
try:
conn = mysql.connector.connect(user='mdsuser', password='Mdsp@ss01',
host='10.0.1.51',
database='mdstest', use_pure=True)
print(conn.is_connected())
except mysql.connector.Error as err:
#print("Error:", err)
print("VendorError:", err.errno)
print("SQLState:", err.sqlstate)
print("SQLException:", err.msg)
else:
conn.close()
■実行
$ python connect.py
MDSのデータベースへ接続できた場合、「True」が帰ってくる。
$ python connect.py
True
$
今回は以上です。長文お付き合い頂き、ありがとうございました。
【重要】MDSは安価ですが、使わないのであれば、停止する、もしくは削除するのを忘れずに
停止だけだと、ストレージは月単位で課金されます。
お片付け方法は、前回:MDS+Python 他①お片付けを参考にしてください。