NARITO BLOG

DjangoでMariaDBを使う

Python, Django, MariaDB,

概要

CentOS7でDjangoを動かすシリーズシリーズの一つです。DjangoでMariaDBを使います。MariaDBと互換性のあるMySQLも同様に扱えます。

MariaDBのインストール

先に、MariaDB(MySQL)のインストールも行ってください。
CentOS7 MariaDBの導入

データベースの作成と権限

まずrootなり何なりでログインしましょう

sudo mysql -u root -p

特定のIPアドレス、つまり自分のローカル環境や特定のサーバーからのみアクセスしたいというケースがあります。 その場合は以下のようにしましょう。ユーザー名をnarito, データベース名をnaritoblog 、パスワードをaiueoとしています。 そして、111.111.111.111というIPアドレスからのみ、接続ができるようにしています。

create database naritoblog;
grant all privileges on naritoblog.* to narito@111.111.111.111 identified by 'aiueo';

localhostからも接続できるようにするには、以下のように設定します。

grant all privileges on naritoblog.* to narito@localhost identified by 'aiueo';

もし、上記の設定が面倒だ、どこからでもデータベースにアクセスできる一般ユーザが欲しいならば以下のようにします。

grant all on *.* to narito@'%' identified by 'aiueo';

以下のコマンドで、どんなユーザがいるか見れます

SELECT user,host FROM mysql.user;

作成したユーザの削除は以下のように

drop user 'user'@'localhost';
drop user 'root'@'%';

全てのデータベースを表示

show databases;

データベース内の全てのテーブル

SHOW TABLES FROM データベース名

Django側の設定

これでサーバ側の設定はOKです。次はDjangoの設定です

先に以下のライブラリをインストールしておきましょう。PythonからMySQLやMariaDBを扱うためのライブラリです。

sudo pip install PyMySQL

終わったら、settings.pyを開いて DATABASES+αを次のようにします。

import pymysql
pymysql.install_as_MySQLdb()
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'naritoblog',  # データベース名
        'USER': 'narito',  # ユーザ名
        'PASSWORD': 'aiueo',  # ぱすわど
        'HOST': '222.222.222.222',  # MariaDBがあるサーバのIPアドレスやホストを。空欄はローカルホスト
        'PORT': '3306',  # 空欄はデフォルトポートの3306
    }
}

migrateで、エラーがでなければ完了です。

python manage.py migrate