2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AmazonRDSで外部接続できるMysql環境構築

Posted at

AmasonRDSにMysql環境を構築(無料利用枠)してみました。
あと、はまった内容も載せています。

こんな人にはいいかも?
・自分のパソコンにインストールしたくない。
・パソコンが壊れた場合、リカバリ作業をしたくない。
・別のパソコンと共有したい。
・お金を使いたくない。
・大容量じゃなくても大丈夫。
・一時的(1年以内)な利用で大丈夫。

忙しい方は、以下の項をどうぞ。
・3.セキュリティグループの作成
・7.パラメータグループの作成
・9.再度データベースの作成

参考

[AWS]RDSにて外部サーバーからの接続を許可する

手順

1.データベースの作成

「Amazon RDS」→「データベース」→「データベースの作成」
image.png

2.データベースの作成

赤枠の所を変更していきます。
image.png
image.png
image.png
image.png
image.png
最後に「データベースの作成」


image.png
「ステータス」が「利用可能」になるまで待ちます・・。5~10分位だった気がします。

3.セキュリティグループの作成

「amazon EC2」→「セキュリティグループ」
image.png
「セキュリティグループの作成」を選択


image.png
「セキュリティグループ名」「説明」を入力。(何でもよい)
「インバウンドルール」に「ルールを追加」で、ポートを「3306」、アクセス許可するIPアドレスを指定します。


image.png
最後に「セキュリティグループの作成」

4.セキュリティグループの適用

「Amazon RDS」→「データベース」
image.png

対象のデータベースを選択して、「変更」


image.png
「セキュリティグループ」に先ほど作成した内容を選択します。


image.png
「すぐに適用」、「DBインスタンスの変更」

5.接続確認

「A5SQL」で接続確認します。
image.png

・「ホスト名」は、エンドポイント
・ユーザID、パスワードは「1.データベースの作成」より。

エンドポイント

「amazonRDS」→「データベース」→作成したデータベースのリンクをクリック
image.png

パスワードを忘れた場合

上記の「4.セキュリティグループの適用」の手順を行い、
「セキュリティグループ」ではなく、「新しいマスターパスワード」を設定してください。
image.png

image.png
接続できなければ、再度、1~4の手順をやり直してみてください。。

6.Mysqlの設定(大文字・小文字区別)

テーブルを作成して、クエリを実行してみる。

select COUNT(*) from USER_MST

こんなエラーが表示される。。

# 42S02Table 'xxxxxx.USER_MST' doesn't exist

「USER_MST」というテーブルが無い・・・?

image.png

A5SQLを見てもあるんだけど・・。

テーブル名を小文字にすると、問題無し。。

select COUNT(*) from user_mst

原因は、「大文字・小文字」の区別が有効になっているからの模様。
以下、公式より。
9.2.2 識別子の大文字と小文字の区別

7.パラメータグループの作成

通常であれば「my.cnf (linux) / my.ini (windows) 」の値を書き換えればよいのですが、
amazonRDSの場合は、「パラメータグループ」の書き換えになります。


「amazonRDS」→「パラメータグループ」
image.png

「パラメータグループの作成」


image.png
「パラメータグループファミリー」→「mysql8.0」
「グループ名」「説明」に入力(なんでもよい)

最後に「作成」


image.png
出来上がったパラメータを選択


image.png
「lower_case_table_names」で絞り込んで、パラメータの値を「1」にする。
最後の「変更の保存」

8.DBパラメータグループの適用

上記「4.セキュリティグループの適用」の手順を行い、
「セキュリティグループ」ではなく、「DBパラメータグループ」を作成した内容に変更。
image.png


で、ここではまる。。。

image.png
「すぐに適用」、「DBインスタンスの変更」をしようとすると・・・

The parameter value for lower_case_table_names can't be changed for MySQL 8.0 DB instances

ググってヒットした記事↓
Amazon RDS における MySQL の既知の問題と制限

「Amazon RDS DB インスタンスに使用する MySQL のパラメータの例外」の項を読んでも問題なさそうだけど・・。

再起動してみよう!

変更を破棄して、「停止」→「再起動」

Can only reboot db instances with state in: available, storage-optimization, incompatible-credentials, incompatible-parameters. Instance database has state: stopping

「停止」後、起動できなくなる。。。

https://aws.amazon.com/jp/premiumsupport/knowledge-center/rds-incompatible-parameters/
https://qiita.com/matsumoto_sp/items/4808576159c92f8916f5

「リセット」かサポート問い合わせ・・?
めんどくさそう。。

9.再度データベースの作成

データベースを最初から作りました。

※Mysqlのバージョンがたまたま悪かったのかと思い、「8.0.20」にしています。
 赤枠がデフォルトからの変更点です。

image.png
image.png
image.png
image.png
image.png

※「3.セキュリティグループの作成」「7.パラメータグループの作成 」で
既に「セキュリティグループ」と「パラメータグループ」を作成済みなので、他に操作は必要ありません。

10.再度クエリの実行

image.png

うまくいった!

2
0
1

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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?