0

localhost で Web を作成していましたが、それをホストに移動しようとすると、多くのエラーが表示されます。ローカル データベースに接続できないようです。コードは次のとおりです。

$host = "myip";
$user = "root";
$pass = "";
$db = "mydatabase";

mysql_connect($host, $user, $pass);
mysql_select_db($db);
$on = mysql_fetch_row(mysql_query("SELECT COUNT(online) FROM characters WHERE online=1"));
echo "<br>Online: $on[0]<br><br>";

出力は次のとおりです。

Warning: mysql_connect() [function.mysql-connect]: Host 'myip' is not allowed to connect to this MySQL server in * on line 46

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in * on line 48

Online: 

手伝ってくれてありがとう

4

2 に答える 2

4

これは、mysql ユーザー権限の問題です。たとえば、phpmyadmin で新しいユーザーを作成し、そのホストを、localhost から接続する場合は localhost に設定し、外部から接続する場合は % に設定します。

于 2009-03-22T12:53:40.007 に答える
3

Alekcが正しく述べたように、それは許可の問題です:

これは、MySQL プロンプトで実行できます。

grant all privileges on mydatabase.* 
   to youruser@'your_ip_address' 
   identified by 'your_password';

続いて:

flush privileges;

そして、再接続を試みます。それを念頭に置いて:

your_ip_address: MySQL サーバーの IP アドレスではなく、接続元 (Web サーバー?) の IP アドレスです。 your_password: PHP 側で接続を確立するときに使用する必要があるものです

また、このソリューションは機能するはずですが、Web アプリケーションで使用されるすべての権限をユーザーに付与することはお勧めできません。より少ない権限で同じことを行うことができます。

これはすべて、素敵な GUI フロントエンドで行うことができます。私はコマンドラインを好みます。

于 2009-03-22T12:59:46.497 に答える