Open edX: MySQLとMongoDBを外部から操作できるようにする

アンケートだけでは見つけられない学習者のニーズを見つけるために,学習履歴等を観察するために,Open edXで使われているDBへアクセスします.

しかし,当然ながら,基本的なセキュリティによりMySQLは外部からアクセスできません.それをアクセスできるようにするのが今回の記事となります.

Open edXは,主に2つのDBを使っています.

1つ目は,MySQLです.ユーザ情報,受講情報・成績,Wiki,ORA等の情報が格納されています.学習状況や成績を取得したい場合はこちらを参照します.

2つ目は,MongoDBです.コース情報が記録されています.ユーザが何を受講しているのかは,MySQLでわかりますが,そのコースがどんなものなのか,回答データはどのコースのどの設問なのかは,こちらを参照しないとわかりません.

※Vagrant fullstack版での設定変更方法となります.

MySQLを外部から接続できるようにする

vagrant ssh

アクセス権の変更

mysql -u root -p
mysql> grant all privileges on *.* to root@"%" identified by '' with grant option;
mysql> quit

他のサーバからアクセスを許可する

sudo vi /etc/mysql/my.cnf

- bind-address           = 127.0.0.1
+ #bind-address           = 127.0.0.1

リスタート

sudo service mysql restart

接続テスト

mysql -h 192.168.33.10 -u root -p

MongoDBのRESTを許可する

Mongoはデフォルトで外部からの操作が可能となっているのでREST操作をONにするだけ.

vagrant ssh

sudo vi /etc/mongodb.conf

+ rest = true

リスタート

sudo service mongodb restart

こんな感じです