エックスサーバーのMySQLに外部サーバーから接続する方法

公開日:
更新日:
カテゴリー: サーバー

通常、レンタルサーバーで作成したMySQLデータベースには、そのレンタルサーバーからしかアクセスできません(アクセスを拒否されます)。

しかしエックスサーバーの場合、ちょっとした設定を行うだけでエックスサーバーで作成したMySQLに外部サーバーから接続できます。

【注意】
2014年6月19日以降、エックスサーバーのセキュリティ強化によって、外部サーバーからのエックスサーバーのMySQLへの接続はできなくなっています。

追記

エックスサーバーのセキュリティ強化によって、2014年6月19日より外部サーバーからのエックスサーバーのMySQLへの接続はできなくなりました

以下はエックスサーバーより送られてきたメールです。

平素は当サービスをご利用いただき誠にありがとうございます。
Xserver カスタマーサポートでございます。

この度エックスサーバーでは下記ニュースにてご案内のとおり、
一般的ではない通信ポートを用いた外部からの通信について、
接続制限を実施いたします。

◇セキュリティ対策の強化のお知らせ
 http://www.xserver.ne.jp/news_detail.php?view_id=1819

これに伴い、これまで一部ご契約者様において
ご契約サーバー以外からMySQLをご利用いただいておりましたが、
今後はご契約サーバー以外からはMySQLがご利用いただけなくなります。

ご不便をおかけし誠に申し訳ございませんが、
セキュリティ向上のため、何卒ご理解くださいますようお願いいたします。

1.MySQLユーザを作成

エックスサーバーにログインし、サーバーパネルのDATABASE→MySQL5設定→MySQLユーザの追加 画面までいきます(下の画面)。

エックスサーバーにMySQLユーザーを追加する

そして次のように入力して「MySQLユーザの追加」を行います。

  • MySQLユーザID
    任意の文字列
  • ホスト名
    「%(半角)」のみ
  • パスワード
    任意の文字列
  • パスワードの確認
    任意の文字列

2.作成したユーザにデーターベースの所有権を付与する

上で新規ユーザを追加した後、「MySQLの一覧」にいき、外部サーバーから接続したいMySQLデータベースにそのユーザを追加します。

※データベースが未作成であれば、作成後追加してください

エックスサーバー データベースにユーザを追加する

3.プログラムでアクセス

私は外部サーバーからエックスサーバーのMySQLにPHP(PDOクラス)でアクセスし、データベースの内容を参照しました。

参考程度にそのプログラムをごく簡単に紹介します。

<?php
//PDOオブジェクトの作成
$pdo = new PDO("mysql:host=mysql○○○.xserver.jp;dbname=接続するデータベース名;charset=utf8;", "先ほど作成したユーザ名", "そのユーザのパスワード");
//SQLの発行
$st = $pdo->query("SELECT * FROM ○○○(テーブル名)");
//結果レコードの参照
ここに処理内容
?>

 

あわせて読んでほしい!

 

コメント

1:mysql勉強中:2015/01/06 12:06:57

初めまして、いつも勉強させて頂いています。
初心者の質問で申し訳ないのですが、上記のユーザー追加は現在でも出来るのでしょうか??
私もエックスサーバーを使用していますが、ユーザー追加を試しているのですが、ホスト名が表示されなくて困っています。何か原因があるのでしょうか??

お忙しいところ申し訳ございませんがよろしくお願いします。

2:管理人:2015/01/08 6:43:53

コメントの返信が遅くなってすいません。

2014年6月19日以降、エックスサーバーのセキュリティ強化によって、外部サーバーからのエックスサーバーのMySQLへの接続は制限されるようになっています。
そのため現在はエックスサーバーのMySQLに外部サーバーから接続することはできなくなっています。

記事の鮮度が古く、混乱させる情報を流してしまいすいません。
記事を訂正させていただきました。

3:xserver:2015/05/20 9:21:06

当たり前ですけど、ssh2トンネルでなら接続できますね

4:名無しさん:2019/04/25 11:49:47

xserver mysql 外部
で検索すると未だに上位に出てきますね。。。。

コメントフォーム
お名前
コメント