エックスサーバーの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ユーザ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 ○○○(テーブル名)"); //結果レコードの参照 ここに処理内容 ?>
あわせて読んでほしい!
コメント
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 外部
で検索すると未だに上位に出てきますね。。。。
1:mysql勉強中:2015/01/06 12:06:57
初めまして、いつも勉強させて頂いています。
初心者の質問で申し訳ないのですが、上記のユーザー追加は現在でも出来るのでしょうか??
私もエックスサーバーを使用していますが、ユーザー追加を試しているのですが、ホスト名が表示されなくて困っています。何か原因があるのでしょうか??
お忙しいところ申し訳ございませんがよろしくお願いします。