1

あるサーバーにある Web サイトと別のサーバーにある別の Web サイトが必要ですが、php と mysql の両方を使用するためのデータベースは 1 つだけです。出来ますか?はいの場合、どのように?

4

6 に答える 6

3

はい。それが可能だ。通常、データベースを離れたサーバーに置くことはありません。高速の内部ネットワーク リンクを利用できるように、同じデータ センターに db サーバーを配置する必要があります。

Web サイトがホストweb1にありweb2、データベースが にdbhost1ある場合は、ホスト名としてmysql に接続しweb1ます。web2dbhost1

みずい

$mysqli = new mysqli("dbhost1", "user", "pass");

PDO

$dbh = new PDO('mysql:dbname=dbname;host=dbhost1', "user", "pass");

従来の mysql 拡張機能

mysql_connect("dbhost1",  "user", "pass");

注:データベースuser@web1(ホスト上web1) またはuser@web2(ホスト上web2) にアクセスできることを確認してください。

于 2013-01-17T14:21:38.357 に答える
1

正しい設定があれば、リモート データベースに接続できます。

それができない場合は、両方のサーバーから呼び出すことができるサービス レイヤーを作成できます。

于 2013-01-17T14:17:54.643 に答える
0

mysql データベースへの接続中に、両方のサーバーで同じデータベース接続資格情報を使用します。

于 2013-01-17T14:21:35.053 に答える
0

はい、そうではありません。しかし、セキュリティとパフォーマンスの問題のために、私はそれをしません。

問題は、別のサーバーが LAN 経由で直接接続されているサーバーであるか、別のデータ センターにあるサーバーであるかを理解することです。サーバーが別のデータ センターにある場合、多くのトラフィックとパフォーマンスの問題が発生する可能性があります。

サーバーが直接接続されている場合、my.cnf を変更して次の行を変更できます。

bind-address 127.0.0.1

サーバーは外部から到達可能です。また、ユーザーに外部から接続するための十分な権限を与える必要があります。

于 2013-01-17T14:22:12.193 に答える
0

はい、可能です。両方のサーバーから到達可能な mysql サーバーを使用する必要があります。両方のサーバーから同じホスト/ユーザー/パスで接続するだけです。

define("WEBDOMAIN", "94.145.22.15"); //some fake data
define("DEFDBNAME", "my_db");
define("DEFUSERNAME", "my_user");
define("DEFDBPWD", "my_pass");

mysql_connect( WEBDOMAIN, DEFUSERNAME, DEFDBPWD );
mysql_select_db( DEFDBNAME);

それで十分なはずです。ホスティング プロバイダーがサーバーから外部サーバーへの接続を許可していない場合 (ポートが閉じている場合もあります)、問題が発生する可能性があります。

于 2013-01-17T14:22:56.653 に答える
0

セキュリティ上の理由から、ホスティング サーバーを承認していない mysql サーバーには接続できないことがよくあります。そのため、mysql では、ユーザーが localhost からだけでなく、他のホストからも接続できるようにする必要があります (十分な権限がある場合は、ユーザー権限を編集して phpMyAdmin から行うことができます)。

于 2013-01-17T14:41:24.713 に答える