想ひ出のへっぽこBlogⅡ from35

~ 自身の備忘録および学習促進のためにブログります。~

想ひ出18: GCP/Flask1.0/GCE/CloudSQLと接続

f:id:moqrin3:20181201110911p:plain
GCP 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 アドレスを入力する。

画像参照

f:id:moqrin3:20181201161039p:plain

暗号化しないで 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'
...

③プロジェクトディレクトリでMigrationをかます

flask db init
flask db migrate
flask db upgrade

表示を確認して喜びます。
わーい。

参考:

IP アドレスを使用して MySQL クライアントを接続 CentOS7にMySQLをインストールする