11
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

pythonでmariaDB(mysql)を操作する方法

Last updated at Posted at 2018-07-31

###はじめに
タイトルの通りpythonでmariaDBを操作する方法についてまとめます。

###環境
CentOS7.4
python3.6.3
5.5.56-MariaDB(mysql)
※mariadbはmysqlの後継みたいなものと思ってください。基本的な使い方は変わりません。

###◆mariaDB(mysql)のインストール
以前にphpからDBを操作する方法についてまとめているのでDBサーバの構築については以下リンク先の"◆DBサーバの構築"参照してください。
また、この記事でもリンク先の記事で使うworldという名前のサンプルDBを使うので、併せてDBに取り込むようにしてください。
[https://qiita.com/johndoe1022/items/006ab3fc61b4e3d67f3d]

###◆pythonのインストール
pyenvをインストールするため、まずはgitからインストール。
yum install -y git

環境変数を設定
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
source ~/.bash_profile

とりあえず必要そうなパッケージをインストール。
※ここはあんまり調べ切れていないので不要なものも混ざっているかもしれません。
yum install -y zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel gcc
インストールできるpythonのバージョンを確認。今回は3.6.3をインストール。
pyenv install -l
pyenv install 3.6.3

現在のpythoのバージョンを確認
python --version

インストールしたpythonのバージョンに切り替えた後、再度現在のバージョンを確認
pyenv global 3.6.3
python --version

mariaDB(mysql)に接続するためのドライバをインストール
pip install PyMySQL

もし以下のような文章が表示されたらpipコマンドをアップグレードしてください。

You are using pip version 9.0.1, however version 18.0 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

以下のコマンドでpipをアップグレードしたら、再度PyMySQKをpipでインストールしてください。
pip install --upgrade pip

/usr/local/に以下のpythonスクリプトを作成。
今回はvim /usr/local/sample01.pyで作成します。
※passwordとホスト名は環境に合わせて変更してください!

sample01.py

import pymysql.cursors

def main():
    conn = pymysql.connect(
        user='root',
        passwd='password',#適宜自分で設定したパスワードに書き換えてください。
        host='192.168.0.1',#接続先DBのホスト名或いはIPに書き換えてください。
        db='world'
    )
    c = conn.cursor()

    # テーブルの作成
    sql = 'select * from city;'
    c.execute(sql)
    print('* cityテーブルの一覧を表示\n')
    for row in c.fetchall():
        print('No:', row[0], 'Content:', row[1])
main()

sample01.pyの権限を変更
chmod 644 /usr/local/sample01.py

作成したpythonスクリプトを実行
python /usr/local/sample01.py

以下のような感じでズラッと表示されたら成功です。

No: 1 Content: Kabul
No: 2 Content: Qandahar
No: 3 Content: Herat
No: 4 Content: Mazar-e-Sharif
No: 5 Content: Amsterdam
No: 6 Content: Rotterdam
No: 7 Content: Haag
No: 8 Content: Utrecht
No: 9 Content: Eindhoven
No: 10 Content: Tilburg
No: 11 Content: Groningen
No: 12 Content: Breda
No: 13 Content: Apeldoorn
No: 14 Content: Nijmegen
No: 15 Content: Enschede
No: 16 Content: Haarlem
No: 17 Content: Almere
11
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?