SSHした先でvagrant環境内にあるmysqlにSequelProから接続する
ssh接続した先で、vagrant環境を立ち上げてmysqlを配置し、そのmysqlにssh接続元の端末からSequelPro経由で接続しようとしました。
そうしたら、まず、出たエラーは以下のような感じ(少し編集しています)
Used command:
<SequelProさんが試みたコマンドがつらつらと表示される>
OpenSSH_7.4p1, LibreSSL 2.5.0
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Control socket " none" does not exist
debug1: Connecting to <接続しようとしたipアドレス> port<ポート番号>.
debug1: connect to address <ipアドレス> port <ポート番号>: Connection refused
ssh: connect to host <ipアドレス> port <ポート番号>: Connection refused
これは、MySql以前に、SSH接続がまずできてませんぜ、というエラーなので、まずSSHの接続情報を確認する。
SSHは、vagrantに接続する場合は、user名:vagrant、パスワード:vagrantとなるのが要注意。
これは一度terminalから実際に接続してみるのも手。
Password: vagrant
これで接続できたら、そのままSequelProの接続にも使えるはず。
次に、Mysqlの接続だが、vagrantにSSHしたあとは、mysqlはそのvagrant内に存在するので、hostは127.0.0.1になることに要注意。
今回はちょっと特殊で、パスワードが通らなかったので、
下記の方法で一度パスワードを変えたところ、
MySQL 5.7でrootユーザのパスワードを再設定 - Qiita
そのあとvagrant sshしてmysqlコマンドでログインできることを何度も確かめたのだが、なぜかSequelPro上では通らない。
その時のエラー内容は以下。
Your password has expiredって、さっき変えたとこなんだけど、と思ったが、
結論としては、前のを覚えてはいなかったが、おそらく同じパスワードに変えてしまったらしく、「それは前のパスワードでっせ」と言われてしまったということ、のようだ。
もしくは、上記のやり方でcheat的にパスワードを変えたとしても、暫定的なもので、ログインできた後に再度ちゃんと以下コマンドで設定し直す必要があるのかもしれない。
(はっきりは分からない)
なので、再度、mysqlにコマンドでログインしてから
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
でパスワードを全く別のものに変えて、そのパスワードでSequelProにログインを試みたところ、うまくいった。
数時間取られてしまったので、今後の備忘のために記す。
勉強にはなった。。。