2012-08-15 179 views
0

我刚写完一个在我的本地服务器(xampp)上运行良好的网站。 以下是我的本地服务器连接的数据库定义:将MySQL从本地主机移动到远程服务器

<?php 
    $host="localhost"; 
    $username="root"; 
    $password="1234"; 
    $db_name="partnership"; 

    mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
    mysql_select_db("$db_name")or die("cannot select DB"); 
?> 

我已经成功地加载我的文件,并把它们在远程服务器上(www.mydomain.com),我已经创建了相关的数据库“伙伴关系“(成功地将所有表从phpMySQL本地服务器导入远程服务器)。

我可以查看网站(www.mydomain.com),但没有连接到数据库(MySQL)。 错误信息当然是“无法连接”。

我已将$host="localhost"更改为$host=”www.mydomain.com”但仍收到相同的错误消息。

对上述问题的任何帮助将不胜感激。

+1

您使用的是托管服务提供商,还是您所控制的服务器? – BrianS 2012-08-15 03:45:13

+2

已创建数据库,但用户和权限如何? – 2012-08-15 03:49:59

+0

我有一个来自Web主机服务公司的托管帐户。 – blsn 2012-08-15 03:50:24

回答

0

如果您正在使用的cPanel,当您创建MySQL表时,请确保您的用户分配到它(小事,我知道,但伊夫忘记了几次,我自己)。

如果你的脚本从远程服务器运行,只需使用localhost即可。将工作正常。

最后,我唯一的建议,直到一个更好的答案是说,请尝试使用

$host = 'localhost'; 
$user = 'username'; // Im pretty sure your username isn't root. 
$pass = '1234'; 
$db = 'partnership'; 
/* Alot of hosts like to append your cPanel login to your db and username fields. 
Check to see what your table is. It might actually be 'youruser_partnership' */ 

$mysqli = new mysqli($host, $user , $pass, $db); 
if (mysqli_connect_error()) { 
    die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); 
} 

如果你的主机支持mysqli的(大多数人)。如果没有,当你做死你的陈述时,仍然使用die(mysql_error());来得到确切的错误。它很可能是您创建并分配给您的数据库的用户名/密码

+0

谢谢大家回复我,并感谢上述解决了问题的评论(“许多主机喜欢将你的cPanel登录追加到你的数据库和用户名字段中。”)。这些是现在成功连接到DB的更改: $ user ='mydomai_username'; $ db ='mydomai_partnership'; – blsn 2012-08-15 13:58:18

2

如果您尝试通过应用程序进行连接,是否还应该使用localhost作为$host?该脚本与数据库位于同一台服务器上。

+0

这是我不知道的。即什么/如何定义$ host(主机名)。 – blsn 2012-08-15 03:52:19

+0

@user尝试将其定义为“127.0.0.1”。 ''localhost''并不总是出于某种原因。 – 2012-08-15 03:53:25

+0

@ user1315169:如果您使用的是PHPMyAdmin,它可以告诉您。否则,只需查看你的主机的管理面板,它应该告诉你数据库托管在哪里。 – 2012-08-15 03:53:38

0

啊,这一直是这个过程中最令人讨厌的部分。试试这个,看看它是否工作:

$host="127.0.0.1"; // "localhost" should work, but don't count on it 
$username="user"; // username you use to log into phpMyAdmin 
$password="password"; // password you use to log into phpMyAdmin 
$db_name="dbname"; // database you want to connect to 

你需要创建了这个用户名/密码对,并给予他们相应的权限来访问数据库。另外请注意,mysql PHP函数已被弃用,不应使用。 PDO或mysqli是未来的首选。

+0

是的,使用PDO,好多了。 – NewInTheBusiness 2012-08-15 03:58:04

+0

我的本地服务器上的phpMyAdmin总是要求登录(用户名和密码)。 在我的远程服务器上,我可以访问没有“欢迎使用phpMyAdmin”屏幕的数据库。 (没有登录过程输入数据库,但我已经创建了用户名和密码)。 它是否与上述连接问题有关? – blsn 2012-08-15 04:18:57

相关问题