[さくらインターネット] SSHでデータベースに接続する際に ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ が発生する


こんにちは、fujinyoです。
SSHを使ってデータベースに接続したい時があります。

サーバーは、さくらのレンタルサーバーのスタンダードプラン。
接続がうまくいかず、ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ が表示されてしまいました。

まずは、SSH接続について
Server room with grass!Server room with grass! / Tom Raftery

SSHでサーバーへ接続する際は、「Poderosa」というターミナルエミュレータを使います。
Poderosaの起動から接続まではさくらインターネットに開設があります。

SSH について – さくらインターネット公式サポートサイト
SSH(Secure Shell) とは、物理的に遠いところから、サーバを操るための手段のひとつです。例えば、サーバへログインして直接HTML文書を書いたり、フォルダを作成・削除など、 まるで目の前でサーバを操っているかのように、操作することができます。(※)ネットワーク上に流れるデータは暗号化されるため、インターネット上での操作を安全に行えます。

ここを読めば、PoderosaでSSH接続まではうまくいくかと思います。

DBに接続してみる

SSHでDBに接続する際は

mysql -u xxxxx -p xxxxx

-u に続けてデータベースユーザー名、-p に続けてパスワードを入力します。

が、うまく接続できません。こんなエラーが表示されます。
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ とはなんぞや

早速、エラー文言でググってみますが解決方法が見つかりません。
ユーザー名とパスワードを何度も確認しますが、間違ってない。と、言うことでさくらインターネットさんに問い合わせてみる。

すぐに回答が返ってきました。

さくらのレンタルサーバはウェブサーバとデータベースサーバは別の
サーバとなります。

データベースサーバ名に localhost 等を指定されている場合は接続を
行うことはできません。

さくらのレンタルサーバにて提供しているデータベースサーバ名は
mysql***.db.sakura.ne.jp となります。

– サポートからのメール一部抜粋

あぁ…そうだった。さくらのレンタルサーバーはウェブとデータベースのサーバーが別だった…。
問い合わせに回答してくれた方、ありがとうございました。

mysql -h mysqlXXX.db.sakura.ne.jp -u xxxxx -p xxxxx

-h をつけて接続したいDBサーバーを指定すればうまく接続できました。XXXの部分は数字が入ります。

では、また。

[PR] 「結さん」があなたに代わって開発案件の依頼主を探します

  • 「既存のクライアントにギャラアップは言いにくい」
  • 「営業活動する時間がないし、苦手」
  • 「仕事が途切れたらどうしよう」

ITエンジニアのこんな悩みを「結さん」が解決してくれます
結さんへの無料会員登録後は提案メールを待つだけです!

関連記事