2016-09-22 187 views
1

我尝试使用JSON解析器连接我的android应用程序到虚拟主机。但是,无论何时我尝试连接(甚至只是在浏览器中使用url打开),我都会收到错误消息。MySQL连接失败。无法连接到'http'上的MySQL服务器(4)

<?php 
    $dbHost = 'http://sql4.000webhost.com/localhost'; 
    $dbUser = 'a6410240_cbetTD'; 
    $dbPass = 'xxxxxx'; 
    $dbName = 'a6410240_cbetTD'; 

    $conn = mysql_connect ($dbHost, $dbUser, $dbPass) or die ('MySQL connect failed. ' . mysql_error()); 
    mysql_select_db($dbName,$conn); 
?> 

这是我的database.php文件。完整的错误信息是

Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'http' (4) in /home/a6410240/public_html/database.php on line 8. 

我试过改变$ conn但它仍然没有为我工作。

感谢

+1

对不起,但是MySQL服务器和HTTP服务器是完全不同的东西。你显然试图混合... MySQL服务器不是通过像你尝试的URL寻址,而只是与主机名。为此,必须在主机系统上打开MySQL服务器端口。 – arkascha

+0

@arkascha在我的cPanel中,数据库存储在mySQL(phpMyAdmin)中,所以我只是将我的dbHost分配为localhost?那是你的意思吗? – gpsrosak

+0

我不知道'cPanel'。但phps'mysql_connect()'函数明确要求_host name_:http://php.net/manual/en/function.mysql-connect.php为什么不阅读所用工具的文档?事情清楚地在那里解释...... – arkascha

回答

2

如果你的数据库和应用程序是同一台服务器上然后使用“的locahost”$ DBHOST

如果你的数据库和应用程序是不同的服务器,那么你需要在$ DBHOST使用IP地址或主机名数据库用户应提供所需权限的数据库服务器上进行添加。

+0

我已将主机名更改为本地主机,因为它位于同一服务器上,但仍无法连接。这恰好是主机问题,因为我无法连接,即使我手动打开(phpMyAdmin)在cPanel中。 – gpsrosak

+0

你现在正在得到什么错误,你创建了用户“a6410240_cbetTD”并将它与数据库“a6410240_cbetTD”映射? – PravinS

+0

我现在收到此错误拒绝访问用户'a6410240_cbetTD'@'10.1.1。20'(使用密码:是)在/home/a6410240/public_html/database.php在第8行,因为我在000webhost(#1045) – gpsrosak

0

您所遇到的问题已经在其中一条评论this one中提到。

为了您的解决方案的工作,您只需在开头处省略部分http://,最后可能需要/localhost

主机只是您所指的域。在这种情况下sql4.000webhost.com。使用/ localhost,您尝试已经连接到数据库,但您配置的数据库应该是a6410240_cbetTD

+0

我已经解决了这个问题。谢谢 – gpsrosak

0

MySQL默认使用TCP端口3306 ($ dbport)和主机名或IP地址($ dbhost)。对于LAMP(Linux-Apache-MySQL-php),你可以找到很多教程。 为安全起见,MySQL服务器通常监听内部端口(无法通过Internet访问)。 如果您熟悉docker,只需从hub.docker.com下载LAMP解决方案的示例即可。

相关问题