DjangoでMariaDBを使う

Twitterでシェア FaceBookでシェア はてなブックマークでシェア

Python - Django
2018年11月22日21:14に更新(約21日前)
2018年10月15日18:07に作成(約59日前)

旧ブログ移行記事です。

概要

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

まず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 データベース名

これでサーバ側の設定は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
Twitterでシェア FaceBookでシェア はてなブックマークでシェア

記事にコメントする