普段思ったことや、雑記。

Menu & Search

Vagrant(Virtualbox)のデータベースへ、設定が正しくてもSequel proで接続できない場合の対処

2016年6月12日

ある時からふと、Sequel ProでVagrant内にあるデータベースへ接続ができなくなる

Sequel ProとはMac向けの無料で使えるGUIのDBクライアントだ。ある時からSequel Proに接続ができなくなり、設定情報を何度も確認した。例えば、Vagrant内のDBについて、IPアドレスを192.168.33.10、対象となるDBのポート番号を3306(MySQL標準ポート)とした場合には、接続するSequel Proの正しい設定は下記のようになる。

DBの設定により、ユーザ名やパスワード、許可DBの設定などはもちろん必要だ。ポートとSSHポートは、標準から変更がない場合は特に入力する必要はない。SSHパスワードは、これはVagrantのvagrantユーザのものなので、通常はvagrantと入力する。

しかしながら、このように正しい情報を入力したとしても遭遇したトラブルの場合は接続ができない。

 

原因はknown_hostsであり、SSH接続による問題。Vagrantで仮想マシンを構築しては壊す人は陥りやすい

見出しのそのままで、正しい接続設定でも接続ができない場合の原因はknown_hostsである。端的に言うと、該当マシンの設定IPの~/.ssh/known_hostsの行を削除してやれば解決する。解決にあたり、下記の記事を参考にさせてもらった。

SSH接続で WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! って言われて接続を拒否られるとき – Qiita

http://qiita.com/wnoguchi/items/690f3f4651f8f11e4ed3

問題の解決のきっかけは、Sequel Proのエラーメッセージでは原因が掴みにくいと感じたため、直接設定情報をもとにマシンにsshをしてみたことだった。実際にsshを実行してみた結果がこれである。

このように、「リモートホストのフィンガープリントの情報が変わってしまった」と警告が出て接続ができないことが確認できた。ということで、エディタで~/.ssh/known_hostsの該当マシンのIP、192.168.33.10を消して接続をし直すことで、フィンガープリントが登録しなおされ、Sequel Proでもsshコマンドでも接続できるようになった。

vagrant sshは便利だけど、やはり通常のsshとは振る舞いが異なる。あれ?おかしいな、sshできるのに、と、vagrant sshでマシンにいつも接続している人には、わりと盲点かもしれない。vagrant sshとsshは異なるものであり、SSHで問題が出ていそうなら、やはりsshで調査をするというのが正しい。

 

慣れた頃にでもハマる。それがSSH

今回は、Sequel Proの問題というよりは、SSHの仕組み上の問題ということで、ある程度慣れた頃にたまにハマるのがSSHということで、1つ勉強になった。個人的なSSHについての印象は、すごくつまらないことでハマるということが多いと思う。理解すると、「なーんだ、そうなんだぁ…」で済むような事が多い。例えば、新規ユーザを作って公開鍵認証の設定をするも、公開鍵認証に使う各種ディレクトリやファイルの設定権限はあっていたが、そもそもユーザにパスワードつけ忘れて接続できない!とか、すごく微妙なところでハマることのあるSSHなのである(パスワードつけ忘れは、もはやヒューマンエラーだが、本当にハマったので辛かった。パスワード未設定ということでLinuxのコア部分がそもそも接続を認めないということかもしれないが、この際sshコマンドでコケてるしSSHのせいで良い笑)。SSHには、いつ何があるか分からない。SSHの世界は広大だわ…。

Article Tags
mmiyauchi

プログラムを書きながらTranceを聴くのが良いですね。みなさんも聴いたほうがいいですよ、Trance。EDMよりハードトランスでしょ。

Related article

WordPress公式コンテナのError establishing a database connection(データベース接続確立エラー)の修復

Error esta…

WordPressのディレクトリを変更したら404が出てしまったときの対処

突然の404、突然の…

結局のところ、さくらのVPSとお名前.com VPSはどちらのほうが良いのか?

いきなり脱線だが、こ…

Discussion about this post

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Type your search keyword, and press enter to search
%d人のブロガーが「いいね」をつけました。