[WordPress] SSHを通してMySQLにODBC接続、Access版エクスポーターの改良

先日作成したWordPressのAccess版エクスポーターを、エックスサーバー(XServer)のMySQLを参照するよう改良しました。ダンプファイルの取得やリストアが不要になり、使い勝手が向上しました。

具体的には、Accessのテーブルのリンク先を、SSHを通したエックスサーバー上のMySQLに、ODBC接続して一括更新しました。

一括更新には、Accessのリンクテーブルマネージャーを使用しています。以前より格段に使いやすくなっていて、一からリンクテーブルを作るより全然楽でした。使う機会があれば、ぜひお試しください。

また、SSHクライアントには「RLogin」を使用しています。

ぺんたんさんの次の記事がとても参考になりました。
貴重な情報を公開いただき、ありがとうございます<(_ _)>

目次

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

最初に、公開鍵認証用鍵ペアを生成して、秘密鍵を入手します。

エックスサーバーのサーバーパネルにログインしてSSH設定を表示します。SSHをオンにして、公開鍵認証用鍵ペアを生成します。生成時のパスフレーズと、ダウンロードした秘密鍵は、SSHクライアントの設定で使用します。

SSHをオン
公開鍵認証用ペアの生成

RLoginの設定

SSHクライアント「RLogin」に、エックスサーバーのサーバーエントリを追加します。
RLoginを起動して「新規」をクリックします。

SSHサーバー

画面左の「サーバー」をクリックして、エックスサーバーのガイドを参考に、次の通り入力します。

プロトコルssh
ホスト名
(サーバーIPアドレス)
サーバーID.xsrv.jp
※ホスト名(sv***.xserver.jp)でも接続可能です。
TCPポート10022
ログインユーザー名サーバーID
パスフレーズ公開鍵認証用鍵ペアを生成した時のもの

秘密鍵のファイルは「SSH認証鍵」から設定します。

SSHサーバーの設定

サーバーID
エックスサーバーの「サーバーパネル」から確認できます。

MySQLホスト

画面左の「プロトコル」をクリックして「ポートフォワード」から設定します。

次の通り入力します。

ListenedLocal
Host Name:localhost
Port:3306
ConnectHost Name:MySQLホスト名
Port:3306

この設定により、クライアントの「localhost」への要求が、「MySQLホスト」に受け渡されるようになります。

ポートフォワードの設定

MySQLホスト名
サーバーパネルの「MySQL設定」から確認できます。

RLoginの実行

接続するサーバーエントリを選んで「OK」をクリックします。

このあと、Accessから使用するので起動したままにしておきます。

リンクテーブルの更新

Accessを起動して、リンクテーブルのリンク先を更新します。

一からリンクテーブルを作成することもできますが、今回はAccessの「リンクテーブルマネージャ」を使用して、一括更新したいと思います。

マネージャーの起動

「外部データ」タブの「リンクテーブルマネージャー」をクリックします。

接続文字列の変更

「ODBC」のチェックボックスにチェックを入れて、「編集」をクリックします。
※ ODBCのリンクテーブルをまとめて選択できます。

リンクの編集画面が開きます。

「接続文字列」を次のように編集して「保存」をクリックします。

サーバー名localhost
ユーザー名アクセス権所有ユーザ
***_wpadmin
パスワードpassword
データベース名***_wpdb

● 接続文字列

Driver=MySQL ODBC 8.0 Unicode Driver;
SERVER=localhost;UID=***_wpadmin;PWD=password;
DATABASE=***_wpdb;PORT=3306;DFLT_BIGINT_BIND_STR=1;NO_I_S=1

データベース名とアクセス権所有ユーザ
サーバーパネルのMySQL設定から確認できます。
また、パスワードはMySQLユーザ一覧からリセットすることもできます。

リンクテーブルの一括更新

「更新」をクリックして、リンクテーブルを一括更新します。

途中、次のようなメッセージが表示された場合、そのまま「OK」をクリックします。
※ 参照するだけなので問題ありません。

更新が完了したら「閉じる」をクリックして終了します。

エクスポートの確認

クエリを開いて、データが表示されることを確認します。

実際に、保存済みのエクスポート操作からエクスポートしてみました。

問題なく動作することが確認できました。

これで、SSHを通してMySQLにODBC接続するよう、Access版エクスポーターを改良することができました。

最後までご覧いただき、ありがとうございます。
では、また。

コメント

コメントする

目次