从Dreamhost迁移到HostGator时出现MySQL问题

时间:2011-06-07 03:16:16

标签: php hosting

首先,让我首先说网站在Dreamhost上工作得非常好(上周除了可怕的滞后和停机时间 - 但这并不是让我离开它们的原因,请参阅下文)。

我在Dreamhost上托管我的网站。由于收入托管所有者的问题,我不得不搬家(他不让我在面板上更改dns配置,也不会为我做这件事)。 所以我与HostGator签约,现在我遇到了这个MySQL问题。这是我到目前为止所做的:

首先,我通过ftp将所有文件上传到HostGator服务器。然后,我从旧服务器导出数据库并将其导入新服务器。然后我更改了域名注册商的名称服务器,最后,一段时间后,在浏览器上点击F5。

然后有大量的错误行。所以我搜索了HostGator支持门户网站,发现我必须改变这个(我之前使用的代码):

<?
date_default_timezone_set('America/Sao_paulo');

if ($_SERVER['HTTP_HOST']=='localhost') {
    $conexao = mysql_connect("localhost");
    $bd = mysql_select_db("tablename");     
} else {
    $conexao = mysql_connect("mysite.phpmyadmin.com","mylogin","mypassword");
    $bd = mysql_select_db("mydatabasename");
}
mysql_query("SET time_zone='-3:00'");
?>

对于这样的事情:

<?
define('DB_NAME', 'mydatabasename');
define('DB_USER', 'mylogin');
define('DB_PASSWORD', 'mypassword');
define('DB_HOST', 'localhost');
?>

问题是我不是PHP或MySQL专家。程序员让我没有支持,所以我靠自己。

当我尝试加载我的网站时,会出现以下错误:

Warning: mysql_query() [function.mysql-query]: Access denied for user 'mylogin'@'localhost' (using password: NO) in /home/mylogin/public_html/index.php on line 42

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/mylogin/public_html/index.php on line 42

ERROR 40 >Access denied for user 'mylogin'@'localhost' (using password: NO)

在文件index.php上,第42行是:

$sqlo = mysql_query("select *, max-buyers as left from offers inner join rel_city on rel_city.id_offer = offers.id  where id_city=$city and startdate <= now() and enddate >= now() order by  priority desc, left desc, enddate asc") or die("ERROR 40 >".mysql_error());

一个重要的细节是我需要这两行来处理新托管,但每当我尝试插入它们时,它都会产生新的错误:

date_default_timezone_set('America/Sao_paulo');
mysql_query("SET time_zone='-3:00'");

有关如何使其发挥作用的任何想法?

4 个答案:

答案 0 :(得分:2)

试试这个:

<?
date_default_timezone_set('America/Sao_paulo');
$conexao = mysql_connect("localhost","mylogin","mypassword");
$bd = mysql_select_db("mydatabasename");
mysql_query("SET time_zone='-3:00'");
?>

我所做的是简化原始代码以删除看起来可能用于开发目的的IF / ELSE语句。

如果您收到其他未发布的错误,请将其包含在内。

答案 1 :(得分:0)

我不熟悉HostGator的设置,但似乎问题是您尝试访问服务器的地址或凭据。

也许HostGator会为用户名和数据库名称添加前缀? (例如,也许它应该是something_mydatabasename而不是简单的mydatabasename)

或许他们的设置不支持使用localhost作为数据库地址;也许他们有一个明确的隔离地址供你连接。

我会支持大喊大叫,或仔细检查cPanel设置中的地址,用户名和数据库名称。它可能会给你一个良好的开端。

(当然,这个建议是假设您拥有正确的数据库用户名和密码,错误表明情况并非如此。)

答案 2 :(得分:0)

从错误中看,您似乎没有在MySQL中设置数据库用户和密码。

答案 3 :(得分:0)

您的数据库有用户名和密码。确保您已正确指定它们,否则您将无法连接到数据库。

您看到的错误消息是由于您的程序员使用PHP die()函数,这不是一个很好的做法。

请与您的主机核实,并确保您对表有权限。你应该,但你永远不知道。