1

このコードは私の Mac から実行されますが、ホストされたサーバーからは実行されません。エラーメッセージは次のとおりです。

Tue, 11 Jun 2013 14:46:48 -0700
Remote host: my_remoteserver.com
Remote user: my_user
Remote db: my_remotedbname
mysqli Failed to connect to MySQL: Access denied for user 'my_user'@'localsystem.com' (using password: YES)

何らかの理由で、ローカルの apache/php システムが "@localsystem.com" をユーザー ID に追加しています。それを防ぐために調整できる構成パラメーターは何ですか?

Mac から実行すると、出力は予想どおり次のようになります。

Tue, 11 Jun 2013 18:03:41 -0400
mysqli Connection was OK!
Show databases returned 2 rows.
information_schema ()
my_remotedatabase ()

コード:

<?php
$hostname = "my_remoteserver.us";
$user = "my_user";
$password = "_today0613";
$dbname   = "my_remotedbname";

echo date(r, time());
echo "Remote host: " . $hostname . "<br/>";
echo "Remote user: " . $username . "<br/>";
echo "Remote db: " . $dbname . "<br/>";


$con=mysqli_connect($hostname,$user,$password,$dbname);

// Check connection
if (mysqli_connect_errno($con))
  {
  echo "mysqli Failed to connect to MySQL: " . mysqli_connect_error();
  } else { echo "mysqli Connection was OK!<br />\n";}

/* Select queries return a resultset */
if ($result = $con->query("SHOW databases")) {
    printf("Show databases returned %d rows.<br />\n", $result->num_rows);

    /* fetch object array */
    while ($row = $result->fetch_row()) {
        printf ("%s (%s)<br />\n", $row[0], $row[1]);
    }
    /* free result set */
    $result->close();

    }
$con->close();
?>
4

2 に答える 2

0

ユーザーのリモート アクセスを有効にしましたか? そうでない場合は、root または別の管理ユーザーとして mysql にログインし、次を発行します。

GRANT ALL PRIVILEGES ON *.* TO  ‘USERNAME’@‘IP’  IDENTIFIED  BY  ‘PASSWORD’;

変化する:

*.*は、すべてのスキーマ、すべてのテーブルの略です。1 つのスキーマへの特定のアクセス (推奨):

SchemaName.*

usernameアクセスしたいユーザーに

ipサーバーが存在する IP に変更します

identified by passwordpasswordユーザーのパスワードを置き換えます。

次に発行します。

FLUSH PRIVILEGES

またはmysqlサービス全体を再起動します

于 2013-06-11T22:16:47.093 に答える
0

わかりました、これは問題です。原因である可能性が高い.

$con=mysqli_connect($hostname,$user,$password,$dbname);

デバッグで使用します。

echo "Remote user: " . $username . "<br/>";

これらは同じ変数である必要があります。@localsystem.com が入力されていない場合、システムはおそらくデフォルトで @localsystem.com を使用しています。

于 2013-07-14T18:39:32.837 に答える