HeidiSQLでエックスサーバーのMySQLにSSHポートフォワード接続

前回の記事で、レンタルサーバーで外部からデータベースクライアント接続が制限されていた為に  phpMyAdmin を使ってテーブルインポートを行ったことを書きました

MySQLテーブルデータのエクスポート/インポート
MySQLのデータベーステーブルのエクスポート/インポートについて紹介します (^^)
MySQLテーブルデータのエクスポート/インポート

その後、何か方法がないか調べていると、SSHポートフォワードという方法で出来るかもしれないということが分かり、確かエックスサーバーでも SSH が使えたはずということでやってみました (^^)

SSHポートフォーワード

SSHポートフォワードとは、ローカルの特定ポートへの送信をリモートサーバーの特定ポートへ転送できるというルーターのような機能のようです

詳細までは理解はできていないので、これ以上の説明は カッツアイ (^_^;)

興味がある方は、各自調べてみてください

それでは、エックスサーバーの MySQL に HeidiSQL で接続するまでを紹介します

SSH接続

まずは、エックスサーバーの管理パネルからSSHを使えるようにします

エックスサーバーのマニュアル にそって行っていきます

SSH有効化

SSH設定を ON にします

SSH有効化

公開鍵認証用鍵ペアの生成

パスフレーズ(任意の文字列)を入力します

公開鍵認証用鍵ペア生成確認

公開鍵認証用鍵ペアの生成(確認)ボタンをクリック

公開鍵認証用鍵ペア生成確定

公開鍵認証用鍵ペアの生成(確定)ボタンをクリック

秘密鍵のダウンロードダイアログが表示されます

秘密鍵ダウンロード

秘密鍵ファイルを任意の場所に保存しておきます

これでSSH接続を行う準備の第一段階が終了です

 

SSH接続確認

エックスサーバーのマニュアル でも紹介されている TeraTerm で接続してみます

TeraTerm 起動

TT起動

SSH認証設定

先ほど保存した秘密鍵ファイルを指定します

TTSSH認証設定

新しい接続

メニューから 新しい接続 を選択して実行します

TT新しい接続

ホストに初期ドメイン名、TCPポートに 10022 を入力します

認証ダイアログ

初回は接続に対する警告ダイアログが表示されます

known_hostsリスト確認

続行をクリック

TTSSH認証

ユーザー名(サーバーID)と秘密鍵のパスフレーズを入力します

接続

TT接続成功

SSH接続出来たようです

一旦 exit と入力して終了させます

次は、いよいよ HidiSQL からアクセスしてみます

 

MySQL接続

エックスサーバー上の MySQL への接続情報を確認しておきます

接続情報

エックスサーバーの管理パネルの MySQL設定からデータベースやユーザーを作成できるのですが、今回は既存の WordPress のデータベースとアクセスユーザー情報を使って接続してみます

データベース名やユーザー名、パスワードが分からない場合は FTP で接続して wp-config.php の中を見て下さい

下記のような感じで必要な情報が記述されています

/** WordPress のためのデータベース名 */
define('DB_NAME', 'xxxxxx_wp1');

/** MySQL データベースのユーザー名 */
define('DB_USER', 'xxxxxx_wp1');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'xxxxxxxxxx');

/** MySQL のホスト名 */
define('DB_HOST', 'mysqxxxx.xserver.jp');

この情報を使って wordpress のデータベースへ接続してみます

 

plink

次に HeidiSQL でSSHポートフォワードを使うには plink.exe というプログラムがいるようなので準備します

plink.exe と言うのは、puTTY というオープンソースのターミナルエミュレータに含まれているコマンドラインプログラムでSSHポートフォワード接続機能をサポートしてるようです

puTTY

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

日本語版も有志の方によって配布されているようです

http://hp.vector.co.jp/authors/VA024651/PuTTYkj.html

今回は、この日本語版のZipファイルをダウンロードして任意のフォルダーに解凍して使用します

これで準備完了です とこの時点では思ってました (^_^;)

以降、うまく行った手順をまとめても良いのですが、失敗も情報のうちなので、実際に行った手順どおりに紹介していきます

 

HeidiSQLに接続用セッション作成

HeidiSQLを起動してセッションを追加します

HeidiSQLセッション追加

データベース情報設定

ネットワーク種別を MySQL (SSH tunnel) に設定して、先ほど確認したMySQLデータベース接続情報のホスト名、ユーザー名、パスワードを設定します

データベース情報設定

SSHトンネル設定

SSHトンネルと言うのは、SSHポートフォワードのことです

TeraTerm でSSH接続した時に使用した情報を設定します

ホスト名 初期ドメイン名
TCPポート 10022
ユーザー名 サーバーID
パスワード 秘密鍵のパスフレーズ

plink.exe プログラムと秘密鍵ファイルを指定して、保存キーでセッション情報を一旦保存

※秘密鍵ファイルの設定についてはあとで修正があります

SSHトンネル設定

接続

うまく接続してくれるでしょうか

keyキャッシュ確認

はい で継続するとエラー発生です (>_<)

SSH接続エラー1

詳細はよくわかりませんが、MySQL のエラーというよりは、plink でなにか問題があった模様

もうちょい情報がないか、コマンドラインでやってみる

SSH接続エラー2

なんかキーファイルが使えないとか言っている (>_<)

“Unable to use key file (OpenSSH SSH-2 private key)” でググってみる

まさにこれと同じ状況のようです

putty でエックスサーバに接続する際の注意点 | 備忘録
エックスサーバー(http://www.xserver.ne.jp/) に putty でssh2接続できなかったのでメモ。こんな感じで “Unable …

puttygen.exe で秘密鍵の形式を変換してあげれば良いようです

起動して、Load からキーファイルを指定

puttygenファイル指定

パスフレーズを入力

puttygenダイアログ

puttygen変換

Save Private Key ボタンをクリックして保存

セッション情報修正

SSHトンネルの秘密鍵ファイルの設定を変換した ppk タイプのファイルに入れ替え

SSHトンネル設定修正

 

接続してみます

 

うまくいくか

うむー

うむむー

 

待たされます

 

 

じぇ

じぇじぇじぇ

つながりました \(^o^)/

 

HeidiSQL_SSH接続成功

SSHポートフォワードを使うことで、HeidiSQLでエックスサーバーの MySQL に接続することが出来ました (^^)

注意

ここで紹介しているのは、エックスサーバーでの接続例です

他のレンタルサーバーでは、SSHの使用や、秘密鍵の形式、接続ポートの番号等が異なると思いますのでここで紹介した手順では接続出来ない可能性が高いと思われます

また、接続できた場合でも、データベースを直接操作することが出来るようになるので十分な注意が必要です

HeidiSQL を使うと簡単に様々な処理を行うことが出来てしまうので間違えてデータを削除してしまう等、 WordPress に重大な影響を与える可能性があります。

MySQLデータベースを扱うスキルや経験がある方以外は止めておいたほうが無難です

ですが、普段から phpMyAdmin を使って操作している方にとっては、HeidiSQL を使うとかなりデータベースが扱いやすくなると思いますので、そのような方へはお勧めします (^^)

 


まとめ記事紹介

go-to-top