Closed9

Terraform:RDS 2

やること(2022/09/01~)

  • 10_alter_user 👈OK
  • 20_create_table
    • ddlの作成
      • p_info, p_stats, p_reply
    • shの作成
  • 30_insert_data
    • p_info, p_stats
    • shの作成
  • dbaccess.cnfの修正
    • address, port, username, password
  • RDSへの反映
    • ローカル⇒踏み台サーバへ転送
    • 踏み台サーバ⇒RDSへのシェル実行
    • SQLでデータ取得・確認

20_create_table

  • ddlの作成: p_info, p_stats, p_reply
  • カラムの個数・型の見直し
  • shellの作成

30_insert_data

  • セルヒオゴメス、アカンジのデータ取得
  • sqlの作成: p_info
  • sqlの作成: p_stats
  • カラムの個数・型の見直し
  • shellの作成

※p_reply.replyはlongtextにできなかったのでvarchar(2000)にしといたけどええのかね。
後からでもDDLは更新できるのでいったんOKとする、更新は初回のみ手動で次回以降github actions ci/cdで実施する予定。

今、2022/09/03/11:41...

sqlの作成に引くほど時間かかった
今、2022/09/03/15:17...

RDSへの反映

  • 圧縮して
  • 踏み台サーバに送信
  • 踏み台サーバで解凍 」2022/09/03/16:12...
  • RDSでテーブル作成
  • RDSでデータ投入
  • RDSでデータ確認 」2022/09/03/16:54...

詳細手順はこれ
https://zenn.dev/link/comments/ff310ed9b61801

圧縮フォルダを踏み台に送信

下記フォルダ・ファイルを踏み台サーバに転送したいです。

  • p_info, p_stats, p_replyテーブルを作成するddl用フォルダ
  • p_info, p_statsにデータをインサートするsql用フォルダ

※RDSへのアクセス設定ファイルは前回設定したのと同じなので今回は送信しない

転送するために下記コマンドで圧縮します。

$ tar czf city.tar.gz ./

ディレクトリ圧縮手順はこちらを参照しました。
https://qiita.com/sympe/items/13819ebe57a46090f064#ディレクトリの場合

下記手順を実施し、転送完了を確認しました。

  • Powershellを開き、踏み台サーバに転送
  • 踏み台サーバにログインし、解凍
  • ls -l / viで内容を確認
create_table_city]$ ls -l
total 8
-rwxr-xr-x 1 ec2-user ec2-user   69 Sep 24  2020 create_table.sh
-rw-r--r-- 1 ec2-user ec2-user 3846 Sep  3 07:07 ddl.sql
-----------------------------------------------------------------------------------
insert_data_city]$ ls -l
total 16
-rwxr-xr-x 1 ec2-user ec2-user  131 Sep  3 02:33 insert_sampledata.sh
-rw-r--r-- 1 ec2-user ec2-user 7490 Sep  3 06:16 p_info.sql
-rw-r--r-- 1 ec2-user ec2-user 2509 Sep  3 06:15 p_stats.sql

RDSにテーブルを作成

DBアクセス設定の確認

cat dbaccess.cnf

テーブル作成のシェルを流します

create_table_city]$ sh create_table.sh

おいおいここでエラー出るとかマジかよ

ERROR 1064 (42000) at line 26: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= InnoDB' at line 19

「26 行目: SQL 構文にエラーがあります。 」

CREATE TABLE IF NOT EXISTS `database`.`p_info` (

...

  UNIQUE INDEX `idxxx` (`id` ASC) VISIBLE )👈ここの閉じる括弧" ) "がなかった...
ENGINE = InnoDB;

編集して保存

vi ddl.sql
i
Esc :wq

再度シェルを流します

create_table_city]$ sh create_table.sh

RDSのテーブルにデータをインサート

シェルを流します

insert_data_city]$ sh insert_sampledata.sh

MySQLにてデータを確認します

mysql> show tables;
+--------------------+
| Tables_in_tastylog |
+--------------------+
| p_info             |
| p_reply            |
| p_stats            |
+--------------------+
3 rows in set (0.00 sec)

p_info, p_stats へのデータインサートが確認できました。p_replyはユーザが口コミ投稿した際にデータがインサートされるので今はデータ0件です。p_statsは選手成績取得用のバッチを流す際にデータが更新されるので、とりあえず初期値が0になっていることを確認できました。

後片付け

マネジメントコンソールでインスタンスを終了

キーペアを削除

このスクラップは5ヶ月前にクローズされました
ログインするとコメントできます