MySQLを利用しています。
自分のPC(windowsXP,Apache2.2,Perl5,MySQL5)を入れています。
自分のPC内でデータベースを使って「わー早い早い」と悦に入っているのですが、
ふと「データベースを外部に置いていたらどうなるんだろう?」と思いました。
例えば、外部のどこかに専用サーバーを借りて、そこにデータベースを構築して、
自分のPCから回線を通じてそのデータベースをいじることは可能でしょうか?
それとも、データベースは自分の中に入れておかなければならないのでしょうか?
もし出来るのであれば、参考に出来るサイトや資料などを紹介して下さい。
できます。
特別なことはいらないと思いますが、サーバ側のセキュリティ関連の設定が必要となります。
実際の接続方法については、
perlではないですが、
http://oshiete1.goo.ne.jp/qa1278567.html
と
http://www.atmarkit.co.jp/flinux/rensai/mysql04/mysql04b.html
とを参考にすれば分かるのではないでしょうか?
可能です。
ネットワーク越しの接続は通常の利用範囲内なので、とくにこれといったテクニックは必要ありません。
MySQL AB :: MySQL 4.1 リファレンスマニュアル :: 3.1 サーバへの接続およびサーバからの切断
ただ、気をつけて欲しいのはデータベースへの接続は大抵高速な回線で接続されている事が前提になります。
同一LAN内で使うことが想定されており、自宅からレンタルサーバーに接続する等の場合へたをすれば使い物にならないぐらい遅くなります。
また、セキュリティ上も問題があります。
MySQL は単独でのセキュリティ対策はあまりありませんので、MySQL への通信を暗号化するなど対処をする必要があります。
長々と書きましたが、一言で言うと「出来るけどお勧めしない」です。
ありがとうございます。
やはり、セキュリティ上も問題なのですね。
(国内最安?)さくらの専用サーバ
http://www.sakura.ad.jp/services/dedicated/sakura_dedicated/
↑専用サーバを借りればもちろん可能です。
また、Web上から触りたいだけということであれば
ロリポップ(http://lolipop.jp/)
↑Mysqlのデータベースがひとつ借りられ、phpMyAdminからアクセス可能
という選択肢などもあると思います。
また、ODBCでつなぎたいという場合も、
使えるネット(http://www.tsukaeru.net/plans/vps/)
↑仮想専用サーバでroot権限が使用可能
という選択肢もあります。
ありがとうございます、参考にさせて頂きます。
DBサーバとことばからして他のホストにDBというサービスを提供するという意味です。
Apache2.2,MySQL5
今あなたのPCではWEBサーバとDBサーバの最低2つのプロセスが常時起動しています。例えば、LANを組んでこの2つのプロセスを違うマシンに分けてやれば、状況によって(アクセス数が膨大など)によっては今より早く処理できます。
逆に言うと1台のマシンですべて済ますなら、サーバ機能なんかいらないので、SQLite(http://ja.wikipedia.org/wiki/SQLite)のようなものを使えばいいわけです。実際にはたぶんMySQLより遅くなるのですすめませんが。
ありがとうございます、SQLiteも利用してみました。
趣味程度で扱ったので、よくわかりませんでしたが、手軽に使える感じがします。
ネット環境とかは別にして、MySQLであればmy.cnfにskip-networkingが書いてなければ接続できると思います。
あとデータベース、ユーザ、データベースとユーザごとに接続を制限する事ができるので、それら権限を利用する外部ホストにすればいいかと思います。
ちなみにロリポップとかの格安サーバではlocalhost以外からの接続は出来ないと思いましたので外部から接続できるか確認するのが良いかと思います。(ちがってたらごめんなさい)
なるほど、my.cnfですか、、、。
設定などまったくふれたことがなかったので、教えて頂いてありがとうございます。
ありがとうございます。
セキュリティ関係を勉強しなければいけないのですね。