想ひ出18: GCP/Flask1.0/GCE/CloudSQLと接続
おはようございます、moqrinです。
前回、GCEにFlaskのチュートリアルのCRUDシステムをデプロイしました。
そいつをCloudSQLと接続しましょう、というお話です。
ちなみに、ちゃんとシステムを動かそうとすると、
f1.microでは無理でしたのでお気を付け下さいw
やること
1. MySQLをインストールする
2. IP アドレスを使用して MySQL クライアントを接続する設定する
3. DBを作成してconfigを書き換えてMigrationする
1. MySQLをインストールする
とりあえず、CloudSQLを作成しておきましょう。
そして、サーバーにドキュメント通り、MySQLクライアントをインストールしよう。
yum install mysql
コケる。。。
mariaDBをコロす。
yum -y remove mariadb-libs
MySQL57のリポジトリを追加してインストールする。
(pip install mysqlclientするためにMySQLサーバーも必要になるので注意です。)
rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm yum install mysql-community-client mysql-community-server mysql-community-devel
pip install mysqlclient
コケる。。
手順はこのページ通り
2. IP アドレスを使用して MySQL クライアントを接続する設定する
[承認] タブから[承認済みネットワーク] で [ネットワークを追加] をクリックし、
クライアントをインストールしたクライアント マシンの IP アドレスを入力する。
画像参照
暗号化しないで Cloud SQL インスタンスに接続する。
mysql -u root -h SQLのIP -p
3. DBを作成してconfigを書き換えてMigrationする
①DBを作成する。
create database flaskr_db; grant all privileges on flaskr_db.* to moqrin3@"%" identified by 'pass' with grant option; select user,host from mysql.user;
②(環境変数で切り替えるのが適切なのですが)configを書き換える。
# vi instance/config.py ... SQLALCHEMY_DATABASE_URI = 'mysql://moqrin3:pass@SQLのIP/flaskr_db' ...
flask db init flask db migrate flask db upgrade
表示を確認して喜びます。
わーい。