连接到远程主机的mysql失败

时间:2014-06-26 14:55:25

标签: php mysql mysql-connect

在我的de webserver脚本中,我尝试通过(旧的)mysql_connect()连接到mysql到同一网络中的ip(db服务器)。

MySQL不断向我提出错误: 用户访问被拒绝' @' localhost'到数据库' dbname'

这似乎是在本地主机(网络服务器)上搜索数据库而不是输入的IP(数据库服务器)。

我已经检查了my.cnf,无法找到绑定地址或其他任何内容。

当我通过mysqli_connect()连接时,可以建立连接,所以我猜不应该是防火墙问题。

我还在使用mysql_connect的原因是因为我将大型网站转移到新服务器,并且没有时间通过​​所有脚本更改功能。

有谁熟悉这个问题并得到任何建议?提前谢谢!

更新:代码

$link = mysql_connect("12.34.56.78", "username", "password");
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
$db_selected = mysql_select_db('dbname', $link);
if (!$db_selected) {
    die ('Can\'t use dbname : ' . mysql_error());
}

2 个答案:

答案 0 :(得分:1)

确保您拥有" SQL安全模式"在php.ini文件中禁用。

来自server参数的the documentation mysql_connect:

  

服务器
      MySQL服务器。它还可以包含端口号。例如"主机名:端口"或者本地套接字的路径,例如":/路径/到/插座"对于localhost       如果PHP指令mysql.default_host未定义(默认),则默认值为' localhost:3306'。 SQL safe mode中,此参数被忽略,并且值为' localhost:3306'总是被使用。

类似的过滤适用于usernamepassword参数:
username参数默认为拥有服务器进程的用户的名称,password默认为空字符串。

您可以从这里阅读有关SQL安全模式的更多信息:
http://us1.php.net/manual/en/ini.core.php#ini.sql.safe-mode

答案 1 :(得分:0)

看起来php正在本地主机上搜索,但使用的是用户名""。我认为您的用户/通行证组合存在问题,并且还将IP地址放在错误的位置。你能粘贴你的代码吗?