无法访问我服务器上的数据库

Posted

技术标签:

【中文标题】无法访问我服务器上的数据库【英文标题】:Can't access database on my server 【发布时间】:2013-05-12 22:54:56 【问题描述】:

我的数据库有一些问题。我创建了一个用户和一个数据库,但我似乎无法使用 php 访问它。

我的代码是:

$host = 'anapaiva.pt:2082';
$user = 'anapaiva_p1';
$pass = 'xxxx';
$db = 'anapaiva_mcmm1';

@mysql_connect($host, $user, $pass) or die('err: '.mysql_error());
@mysql_select_db($db) or die('err: '.mysql_error());

并且在网页上,出现以下错误:

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'anapaiva_p1'@'apollo' (using password: YES) in /home/anapaiva/public_html/mcmm/connection/dbconn.php on line 6

Warning: mysql_select_db() expects parameter 2 to be resource, boolean given in /home/anapaiva/public_html/mcmm/connection/dbconn.php on line 7

相同的代码正在与我的另一台服务器 Hungagegamesportugal.com 一起使用,但我似乎无法将 sql 文件上传到该数据库(它说我没有权限......我不知道为什么) ,并且在这台服务器上它允许我导入 sql 文件,但我似乎无法访问数据库。

有人可以帮忙吗? :/

【问题讨论】:

你的授权参数错误,mysql_*函数也被弃用了 您是否尝试连接到远程服务器?如果没有,您可以使用“localhost”作为主机,看看是否有效。 【参考方案1】:

您使用了错误的端口。 2082 用于 cPanel。 3306 用于 MySQL(通常)。

通常,您可以完全省略端口:

$host = 'anapaiva.pt';

您还需要将连接函数分配给一个变量:

$dh = mysql_connect($host, $user, $pass);

这样你就可以在完成后关闭连接:

mysql_close($dh);

【讨论】:

在我在这里发布之前尝试更改端口并省略它,但它仍然给我同样的错误。 @AnaPaiva 尝试使用$host = 'localhost';。否则,您的登录错误。 当我使用 $host = 'localhost'; ,登录时没有显示任何错误,但是我无法访问数据库中的表 警告:mysql_query() [function.mysql-query]:/home/anapaiva/public_html/mcmm/texte 中的用户 'anapaiva'@'localhost'(使用密码:NO)的访问被拒绝。第 11 行的 php 警告:mysql_query() [function.mysql-query]:无法在第 11 行的 /home/anapaiva/public_html/mcmm/texte.php 中建立到服务器的链接 警告:mysql_fetch_assoc() 需要参数 1作为资源,布尔值在第 12 行的 /home/anapaiva/public_html/mcmm/texte.php 中给出 using password: NO 不好 - 这意味着 $pass 没有被发送,或者是空白的。【参考方案2】:

您可以使用cpanel允许权限,添加远程mysql的权限。我不记得确切的名称,但它类似于远程数据库。单击后,您可以添加 IP 地址以允许数据库权限。这可能会对您有所帮助。在 cpanel 搜索远程数据库。可能对你有帮助,http://forums.cpanel.net/f354/enable-remote-access-customer-database-251951.html

【讨论】:

【参考方案3】: 在 localhost 上测试同一用户 $mysql_host = "localhost"; $mysql_database = "db_name"; $mysql_user = "root"; $mysql_password = "password"; $con = mysql_connect($mysql_host,$mysql_user, $mysql_password); mysql_select_db($mysql_database, $con);

检查用户权限 使用 GRANT 语句检查用户是否有权限。 参考:http://dev.mysql.com/doc/refman/5.0/en/show-grants.html

【讨论】:

其实第二个参数是完全可选的。 mysql_select_db:如果没有指定链接标识符,则假定是mysql_connect()打开的最后一个链接

以上是关于无法访问我服务器上的数据库的主要内容,如果未能解决你的问题,请参考以下文章

服务器上的tomcat正常开启,别的机器无法访问80端口,服务器本机可访问80端口。访问其余端口正常。

无法访问应用引擎开发服务器上的 servlet 过滤器中的会话数据

我无法访问 wampserver 上的 phpmyadmin

无法访问 Heroku 上的 Web 服务器

无法访问本地网络上的 wamp server 2.5 服务

无法使用 SSH 从远程计算机访问 Centos 7 上的 mysql 服务器? [复制]