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


まえがき

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

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)各項目に入力していきます

①上部タブの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名
追記(2022/04/19)
下記画像のように該当のEC2パブリック DNS (IPv4)が"-"となっている方はコチラ

⑩SSH Username: EC2インスタンスのユーザー名(ec2-user EC2 Linuxのユーザー名
⑪SSH Password: EC2インスタンス作成時に任意の場所に保存した秘密鍵(○○○.pem)
右にある鍵マーク🔑をクリックして選択。直接貼り付けは失敗しました。
⑫SSH Port:空欄(22)
⑬Add to Favoritesをクリックしてお気に入りに追加しておけば
入力が保存され、次回からログインが楽になります。

(3)以下のように表示されたらYesをクリックします

接続が成功すればデータベースを参照することが出来ます。

おまけ①:localhostに接続する

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

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:っておちゃめ。

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)

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)

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です。

開いたMAMPページのMySQLを参考に入力していきます。

2. 各項目に入力

(1)上部タブのTCP/IPをクリック

①Name:任意のお名前
②Host:127.0.0.1
③Username:root
④Password:root(設定していなければ)
⑤Database:任意
⑥Port:8889(MAMPが使用するデフォルトのMySQLポート)
8889の方は⑦へ✈️

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


⑦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があれば一括で管理出来るので非常に便利なアプリケーションだと思います。
何故こんなにもデータベースが気になるのか。。
まるでやたらとカカリコ村の井戸の底が気になるナビィみたいです👼

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

参考