LoginSignup
1
3

More than 5 years have passed since last update.

DjangoのデータストアにMariaDBを使う準備

Last updated at Posted at 2017-06-16

MraiDB Sever

本体インストール

Homebrewでインストールする。(その前に、ローカルに古いMySQLがインストールされていたので諸々削除した。)

$ brew list | grep mysql
$ brew list | grep mariadb
$ brew install mariadb

... (中略) ...
==> Pouring mariadb-10.2.6.el_capitan.bottle.tar.gz
==> Using the sandbox
==> Caveats
A "/etc/my.cnf" from another install may interfere with a Homebrew-built
server starting up correctly.

MySQL is configured to only allow connections from localhost by default

To connect:
    mysql -uroot

To have launchd start mariadb now and restart at login:
  brew services start mariadb
Or, if you don't want/need a background service you can just run:
  mysql.server start
==> Summary
🍺  /usr/local/Cellar/mariadb/10.2.6: 620 files, 145.6MB

DB設定

DBサーバ起動

$ mysql.server start
Starting MySQL
.170616 23:05:14 mysqld_safe Logging to '/usr/local/var/mysql/shoota.local.err'.
170616 23:05:14 mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql
 SUCCESS! 

mysqlにログインして操作

$ mysql -u root
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.2.6-MariaDB Homebrew

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

DB/user作成

MariaDB [(none)]> CREATE DATABASE mysite_db CHARACTER SET utf8;
Query OK, 1 row affected (0.01 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON mysite_db.* TO mysite_user@localhost IDENTIFIED BY '********';
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> exit
Bye

確認する。

$ mysql -u mysite_user -p********
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 10.2.6-MariaDB Homebrew

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysite_db          |
| test               |
+--------------------+
3 rows in set (0.00 sec)

クライアントドライバ

とりあえずpip3でインストールしてみる

$ pip3 install mysqlclient

... (中略)  ...

_mysql.c:1911:42: error: no member named 'reconnect' in 'struct st_mysql'
            if ( reconnect != -1 ) self->connection.reconnect = reconnect;
                                   ~~~~~~~~~~~~~~~~ ^
    1 error generated.
    error: command 'clang' failed with exit status 1

    ----------------------------------------
Command "/usr/local/opt/python3/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/private/var/folders/d2/gv7h2z9j3l924fwbmx65sztw0000gn/T/pip-build-8pji4qs8/mysqlclient/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /var/folders/d2/gv7h2z9j3l924fwbmx65sztw0000gn/T/pip-09g524al-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/var/folders/d2/gv7h2z9j3l924fwbmx65sztw0000gn/T/pip-build-8pji4qs8/mysqlclient/

めっちゃエラーでた。

公式のREADMEにナンカ書いてた。

Note on Python 3 : if you are using python3 then you need to install python3-dev using the following command :

sudo apt-get install python3-dev # debian / Ubuntu

sudo yum install python3-devel # Red Hat / CentOS

brew install mysql-connector-c # macOS (Homebrew)

python3だと、brew install mysql-connector-cが必要でした。

うまくいかない

brew install mysql-connector-cが必要だと書いていたが、実際うまくいかなかった。
よくよく調べてみると、MariaDB10.2.x以降はこれだけだとうまく行かないらしく、追加の手順が必要とのこと。

$ brew unlink mariadb
Unlinking /usr/local/Cellar/mariadb/10.2.6... 124 symlinks removed
shoota-2:mysite[master]$ brew install mariadb-connector-c
==> Downloading https://homebrew.bintray.com/bottles/mariadb-connector-c-2.2.2.el_capitan.bottle.tar.gz
######################################################################## 100.0%
==> Pouring mariadb-connector-c-2.2.2.el_capitan.bottle.tar.gz
==> Using the sandbox
🍺  /usr/local/Cellar/mariadb-connector-c/2.2.2: 58 files, 1MB

$ ln -s /usr/local/opt/mariadb-connector-c/bin/mariadb_config /usr/local/bin/mysql_config

$ pip3 install mysqlclient
Collecting mysqlclient
  Using cached mysqlclient-1.3.10.tar.gz
Building wheels for collected packages: mysqlclient
  Running setup.py bdist_wheel for mysqlclient ... done
  Stored in directory: /Users/kumanoshuta/Library/Caches/pip/wheels/32/50/86/c7be3383279812efb2378c7b393567569a8ab1307c75d40c5a
Successfully built mysqlclient
Installing collected packages: mysqlclient
Successfully installed mysqlclient-1.3.10

$ rm /usr/local/bin/mysql_config

$ brew unlink mariadb-connector-c
Unlinking /usr/local/Cellar/mariadb-connector-c/2.2.2... 4 symlinks removed

$ brew link mariadb
Linking /usr/local/Cellar/mariadb/10.2.6... 124 symlinks created

これでサーバ・クライアントの準備ができたはず。

開発中に使用しそうなコマンドをメモ

  • サーバ側
    • 起動:mysql.server start
    • 確認:mysql.server status
    • 停止:mysql.server stop
  • クライアント側
    • ログイン:mysql -u mysite_user -p********

次はAdminの設定をする

1
3
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
1
3