无法访问我服务器上的数据库
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 过滤器中的会话数据