【发布时间】:2013-06-07 22:14:56
【问题描述】:
此代码在我的 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();
?>
【问题讨论】:
-
localsystem.com 是什么?您能否在连接之前回显连接变量以确保它们符合您的预期?也许有人以某种方式改变了。
-
原始帖子中的代码也已更新。我添加了代码: echo "Remote host:" 。 $主机名。 "
";回声“远程用户:”。 $用户名。 "
";回声“远程数据库:”。 $数据库名。 "
"; - 它返回没有@localsystem.com 的用户标识 -
该系统可能在某处有一个配置来自动附加@localsystem.com?
-
是的,当然。但是哪里?以及如何覆盖或更改它?
标签: php mysqli remote-access