鶏口牛後な日々

心の赴くまま、やりたいことを仕事に。

SSHした先でvagrant環境内にあるmysqlにSequelProから接続する

ssh接続した先で、vagrant環境を立ち上げてmysqlを配置し、そのmysqlssh接続元の端末から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の接続情報を確認する。

 

f:id:TACOSVilledge:20171002144358p:plain

 

SSHは、vagrantに接続する場合は、user名:vagrant、パスワード:vagrantとなるのが要注意。

ipアドレスは、まさに接続先のipアドレス

 

これは一度terminalから実際に接続してみるのも手。

$ ssh vagrant@<ipアドレス>

Password: vagrant

 

これで接続できたら、そのままSequelProの接続にも使えるはず。

 

次に、Mysqlの接続だが、vagrantSSHしたあとは、mysqlはそのvagrant内に存在するので、hostは127.0.0.1になることに要注意。

 

今回はちょっと特殊で、パスワードが通らなかったので、

下記の方法で一度パスワードを変えたところ、

MySQL 5.7でrootユーザのパスワードを再設定 - Qiita

そのあとvagrant sshしてmysqlコマンドでログインできることを何度も確かめたのだが、なぜかSequelPro上では通らない。

その時のエラー内容は以下。

f:id:TACOSVilledge:20171002144055p:plain

 

Your password has expiredって、さっき変えたとこなんだけど、と思ったが、

結論としては、前のを覚えてはいなかったが、おそらく同じパスワードに変えてしまったらしく、「それは前のパスワードでっせ」と言われてしまったということ、のようだ。

もしくは、上記のやり方でcheat的にパスワードを変えたとしても、暫定的なもので、ログインできた後に再度ちゃんと以下コマンドで設定し直す必要があるのかもしれない。

(はっきりは分からない)

なので、再度、mysqlにコマンドでログインしてから

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');

でパスワードを全く別のものに変えて、そのパスワードでSequelProにログインを試みたところ、うまくいった。

 

数時間取られてしまったので、今後の備忘のために記す。

勉強にはなった。。。