Sequel Ace - RDS/localhostのMySQLに接続する

# まえがき
前回の投稿でphpMyAdminに手こずったと記述しました。
🔗 [RDS - 既存のRDSを削除して新たにRDSを作成しWordPress.orgと接続させる](https://qiita.com/figgy-pudding/items/2fda5832d8b77505c6e5)
localhost上でphpMyAdminに触れ、MySQLの管理・可視化の大切さを感じ、
安心感を持つことができました。CUIに少しは慣れたつもりですが、
phpMyAdminみたいにデータベースのGUIツールがあればなぁと思って辿り着いたのが
[Sequel Ace](https://apps.apple.com/us/app/sequel-ace/id1518036000)でした。アプリケーションかつSSHキーでの認証なので安全性の確立と、
ブラウザにバーンとエラーが出ないのでそちらの安心感もあります笑
本編のSequel Aceは1時間ほどで設定が完了しました。
おまけではMAMPを使用し、表題のTCP/IPでlocalhost上のMySQLと接続します。
さあ、ドーレ港に到着しました！一本杉を目指しましょう🌲
もうレオリオとクラピカがいるから安心ですねo(^o^)o

<font color="red">※</font> TCP/IP接続なのですが、127.0.0.1をlocalhostと統一しています。

|説明|localhost|127.0.0.1|
|:-:|:-:|:-:|
|種類|ホスト名|IPアドレス|
|接続|UNIXソケット|TCP/IP
|目的|自分自身を指すホスト名（名前）|自分自身を指すIPアドレス（住所）|

# 動作環境
・MacBook Air (Retina, 13-inch, 2020)
・Big Sur11.4

# 前提
・AWSでEC2インスタンス（サーバ）を作成済み
・RDSインスタンス（データベース）がMySQLで作成済み

# 1. App StoreでSequel Aceをインストール
Homebrewでのインストールもあるのでお好きな方法でインストールしてください。
# 2. Sequel Aceの設定
（1）インストールが完了したらアプリを開きます
（2）各項目に入力していきます
![SequelAce2-1-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1588933/329e6832-e59c-c23d-a636-826acd85e61b.png)
①上部タブのSSHをクリックします
②Name：任意のお名前
・RDS情報
③MySQL Host：RDS DBインスタンスのエンドポイント（○○○rds.amazonaws.com）
④Username：RDS DBインスタンスのマスターユーザー名
⑤Password：RDS DBインスタンスのマスターパスワード
-> RDS作成時に設定したマスターユーザー名とマスターパスワードです。
⑥Database：任意のお名前（空白可）
⑦Port：空欄（3306）

⑧Time Zone:デフォルトでOK

・EC2情報
⑨SSH Hostname: EC2インスタンスのパブリックDNS名
<font color="red">※</font> 追記（2022/04/19）
下記画像のように該当のEC2パブリック DNS (IPv4)が"-"となっている方は[コチラ](https://qiita.com/figgy-pudding/items/17717dd5e30d2f262da3#3-2-dns%E3%83%9B%E3%82%B9%E3%83%88%E5%90%8D%E3%81%8C%E7%84%A1%E5%8A%B9%E3%81%AE%E6%96%B9%E3%81%B8dns%E3%83%9B%E3%82%B9%E3%83%88%E5%90%8D%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B)
![スクリーンショット 0004-04-19 11.50.17-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1588933/5625c530-2c7f-eecd-8066-531ce24c8785.png)
⑩SSH Username: EC2インスタンスのユーザー名（ec2-user <font color="red">※</font> EC2 Linuxのユーザー名 <font color="red">※</font>）
⑪SSH Password: EC2インスタンス作成時に任意の場所に保存した秘密鍵（○○○.pem）
<font color="red">※</font> 右にある鍵マーク🔑をクリックして選択。直接貼り付けは失敗しました。
⑫SSH Port：空欄（22）
⑬Add to Favoritesをクリックしてお気に入りに追加しておけば
入力が保存され、次回からログインが楽になります。
![SequelAce3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1588933/aa007aec-42a1-cd49-4c55-8666223a2aae.png)
（3）以下のように表示されたらYesをクリックします
![スクリーンショット 0004-04-19 12.02.00-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1588933/8d28cf36-4ed6-41b6-61eb-b08480f3add7.png)
接続が成功すればデータベースを参照することが出来ます。
![SequelAce2-2-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1588933/a099060a-1857-f20c-de66-ba5ce6309cba.png)

# おまけ①：localhostに接続する
（´-`）.｡o（ localhostに接続してphpMyAdminで作成したデータベースって見れるんかなぁ）
とふと思い、phpMyAdminと決着着けな！と勝手に闘争心燃やして決行することにしました。
かなり苦戦してしまいましたが、[Sequel Aceの公式ドキュメント](https://sequel-ace.com/get-started/mamp-xampp.html)にて、
<font color="red">同じコンピューターで実行されているMAMPまたはXAMPPのMySQLサーバーに接続する方法</font>
でphpMyAdminで作成したデータベース・テーブルを参照することが出来たので
こちらも書いておこうと思います！！！！参考になれば嬉しいです😊
本題よりも時間がかかってしまいました。。
参考 🔗 [MAMPまたはXAMPPに接続する](https://sequel-ace.com/get-started/mamp-xampp.html)
苦戦の最中でMAMP接続の公式ドキュメントと運命の出合いを果たしたものの
上手くいかず、またエラーかぁと思ってテスト接続したら「接続出来ません！」
ではなく「接続が成功しました」と表示され思わず声が出ました。
考えられる理由としてはphp.iniを触ったときにApacheを2回再起動したこと、ぐらいです。。
調べた際のほとんどのエラーはMySQL8.0の認証プラグインで当てはまりませんでした。

```zsh
MySQL [(none)]> SELECT user, host, plugin FROM mysql.user;
+------------------+-----------+-----------------------+
| user             | host      | plugin                |
+------------------+-----------+-----------------------+
| wordpress_user   | %         | mysql_native_password |
~                  |           |                       |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.sys        | localhost | caching_sha2_password |
| hoge             | localhost | mysql_native_password |
+------------------+-----------+-----------------------+
5 rows in set (0.01 sec)
```

`表示されたエラー`
MySQL said:っておちゃめ。

:::note warn
MySQL said: Can't connect to MySQL server on '127.0.0.1' (61) Can't connect to MySQL server on '127.0.0.1' (61)
:::

:::note warn
SequelAce Unable to connect to host 127.0.0.1, or the request timed out. 
Be sure that the address is correct and that you have the necessary privileges,
or try increasing the connection timeout (currently 10 seconds).
MySQL said: Can't connect to MySQL server on '127.0.0.1' (61) Can't connect to MySQL server on '127.0.0.1' (61) Unable to connect to host 127.0.0.1, or the request timed out.
Be sure that the address is correct and that you have the necessary privileges, or try increasing the connection timeout (currently 10 seconds).
MySQL said: Can't connect to MySQL server on '127.0.0.1' (61) Can't connect to MySQL server on '127.0.0.1' (61)
:::

:::note warn
Unable to connect to host 127.0.0.1, or the request timed out.
Be sure that the address is correct and that you have the necessary privileges,
or try increasing the connection timeout (currently 10 seconds).
MySQL said: Can't connect to MySQL server on '127.0.0.1' (61) Can't connect to MySQL server on '127.0.0.1' (61) Unable to connect to host 127.0.0.1, or the request timed out.
Be sure that the address is correct and that you have the necessary privileges, or try increasing the connection timeout (currently 10 seconds).  MySQL said: Can't connect to MySQL server on '127.0.0.1' (61) Can't connect to MySQL server on '127.0.0.1' (61)
:::

### 1. TCP/IP接続を介してMAMPに接続
（1）MAMPを起動させます
Start -> WebStart✈️で準備OKです。
![SequelAce5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1588933/c7f019c2-2ac6-107d-7fd4-255fef625a11.png)

開いたMAMPページのMySQLを参考に入力していきます。
![SequelAce0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1588933/88646090-683f-a993-a33a-abe22b2b5019.png)

### 2. 各項目に入力
（1）上部タブのTCP/IPをクリック
![SequelAce7-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1588933/90898d24-385a-2667-fa80-63b7f7ed3c14.png)
①Name：任意のお名前
②Host：127.0.0.1
③Username：root
④Password：root（設定していなければ）
⑤Database：任意
⑥Port：8889（MAMPが使用するデフォルトのMySQLポート）
8889の方は⑦へ✈️

:::note
MAMPの設定で3306に変更している方は3306です。
MAMP -> Preferences -> Ports で確認できます。
:::

![SequelAce6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1588933/0af20ece-0424-dd3c-5b65-d37259c2fd73.png)
![SequelAce8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1588933/8a7654f6-fdb1-70a7-6578-afcf3dd21f09.png)
⑦Test connection をクリック
⑧接続が成功しましたと表示されれば、
⑨の接続をクリックします


これでphpMyAdminで作成したデータベースやテーブルを参照することが出来ます！
もちろんSequel Ace内で作成することも可能です。ものすんごい成長した気分です。。

# おまけ②：WordPressのデータベースのテーブル
頭にある❓マークはそのように解釈しているんですが、
全然ちゃうわ！でしたらご教示くださるとめちゃくちゃ嬉しいです。

| テーブル名 | 保存しているデータ |
|:-|:-|
|❓wp_as3cf_items|プラグインのWP Offload Media＋S3にアップロードしたメタデータ（本体であるデータに関する付帯情報が記載されたデータ）|
|wp_commentmeta|各コメントのメタデータ情報|
|wp_comments|WordPressで投稿した記事のコメント・トラックバック（他のブログの記事を自分のブログで引用・参考にしたときに、そのブログに対して通知するしくみ。通知を受けたブログは自分の記事が紹介された記事を関連記事としてその記事内で表示することでお互いに記事をリンクさせることができる）・ピンバックデータ（記事内に記載されたリンク先に対して自動で送信されるデータ）を格納|
|wp_options|サイトURL・ホームURL、サイト名などの基本情報に加え、一部プラグインの設定といったWordPressの各種設定が保存されている|
|wp_postmeta|wp_postsのメタデータ。主にカスタムフィールド（記事のタイトルや本文以外に別の情報を追加してサイトに掲載する属性を設定する機能）|
|wp_posts|投稿、固定ページ、メディア、カスタムメニュー、カスタム投稿、リビジョン（執筆・編集した記事の内容をDBに保存して差分を見たり、復元したりする機能）etcの投稿関連の主要データ|
|wp_term_relationships|カテゴリー・タグ・カスタムタクソノミー（taxonomy、情報やデータなどを階層構造で整理したもの）と投稿を関連付けるためのデータ|
|wp_term_taxonomy|カテゴリー・タグ・カスタムタクソノミーのターム名（タクソノミーの中で追加する個々の項目名）やそのスラッグの情報|
|wp_termmeta|プラグインや個別にカスタマイズする際に使用|
|wp_terms|カテゴリー・タグ・カスタムタクソノミーとターム名や、そのスラッグ（記事やカテゴリなどに付与される名前のひとつ、英語名）の情報|
|wp_usermeta|各ユーザー独自の、ユーザー・メタデータを格納|
|wp_users|管理者等のユーザー情報を格納しているテーブル。ユーザー名・パスワード・メールアドレスetcを保存している|

# あとがき
すんなりと接続が成功し感動の連続でした。Yesとクリックしたあとスッと表示されたので
「えっ」と言ってしまうぐらいあっという間に設定が完了して中身を見ることが出来ました。
Sequel Aceがあれば一括で管理出来るので非常に便利なアプリケーションだと思います。
何故こんなにもデータベースが気になるのか。。
まるでやたらとカカリコ村の井戸の底が気になるナビィみたいです👼

ここまでお読みいただきありがとうございました。

# 参考

https://qiita.com/a-nishimura/items/40b864c93245921d9eb5

https://sequel-ace.com/get-started/local-connection.html

https://qiita.com/ucan-lab/items/b1304eee2157dbef7774?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items

https://aws.amazon.com/jp/premiumsupport/knowledge-center/rds-connect-ec2-bastion-host/

https://www.lancork.net/2013/11/connect-mysql-on-amazon-rds-with-sequel-pro/

https://illustswitch.com/database-table/

https://wp-1.club/pinback-trackback/

https://www.petitmonte.com/database/mysql_authentication_plugin.html

http://tooljp.com/windows/chigai/html/TCPIP/localhost-127.0.0.1-chigai.html