将MySQL从localhost移动到远程服务器

时间:2012-08-15 03:42:39

标签: php mysql phpmyadmin

我刚刚编写了一个在我的本地服务器(xampp)上运行良好的网站。 以下是本地服务器的连接数据库定义:

<?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”,但仍会收到相同的错误消息。

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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是未来的首选。

答案 2 :(得分: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语句时,仍然使用die(mysql_error());来获取确切的错误。它很可能是您创建并分配给数据库的用户名/密码