2014-01-27 111 views
0

我正在使用CI,并且我的数据库位于梦想主机上。当我连接数据库。它给错误这样发生数据库错误

数据库出错

无法使用所提供的 设置连接到你的数据库服务器。

文件名:
/home/demo_smartmobe/demos.smartmobe.com/nayacinema/webpart/third_party/MX/Loader.php

行号:98

我的数据库连接CI码是

$db['default']['hostname'] = 'hostname'; 
$db['default']['username'] = 'username'; 
$db['default']['password'] = '​******'; 
$db['default']['database'] = 'database_name'; 
$db['default']['dbdriver'] = 'mysql'; 
$db['default']['dbprefix'] = ''; 
$db['default']['pconnect'] = TRUE; 
$db['default']['db_debug'] = TRUE; 
$db['default']['cache_on'] = FALSE; 
$db['default']['cachedir'] = ''; 
$db['default']['char_set'] = 'utf8'; 
$db['default']['dbcollat'] = 'utf8_general_ci'; 
$db['default']['swap_pre'] = ''; 
$db['default']['autoinit'] = TRUE; 
$db['default']['stricton'] = FALSE; 

用户名和密码是否正确。 和我曾尝试通过简单的PHP代码,它的工作原理。 PHP代码在这里。

$hostname = "mysql.demos.smartmobe.com"; // eg. mysql.yourdomain.com (unique) 
$username = "nayacinema"; // the username specified when setting-up the database 
$password = "****"; // the password specified when setting-up the database 
$database = "nayacinema"; // the database name chosen when setting-up the database (unique) 



$con=mysqli_connect($hostname,$username,$password,$database); 
// Check connection 
if (mysqli_connect_errno()) 
{ 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
}else{ 
    echo 'done'; 
} 
$result = mysqli_query($con,"SELECT * FROM TblUsers"); 
print_r($result); 

while($row = mysqli_fetch_array($result)) 
{ 
    echo $row['FirstName'] . " " . $row['LastName']; 
    echo "<br>"; 
} 

可能是什么问题?我已经在Ci文件夹中添加了MX文件夹以使其成为HMVC。错误显示在/third_party/MX/Loader.php中。在本地主机工作,但在现场有错误。请帮助我。谢谢你

回答

0

你说你的用户名和密码是正确的,但是主机名呢?

修改您的主机名设置为您正确的主机名。

E.g.

$db['default']['hostname'] = 'localhost';

$db['default']['hostname'] = '127.0.0.1';

您还需要改变$db['default']['database_name']来匹配你试图使用的数据库的名称。

+0

我的数据库是Dreamhost上,我用 'mysql.demos.smartmobe.com'。主机名应该是'127.0.0.1'?我很困惑。数据库也是正确的 – Meow

+0

我不知道你的数据库服务器是什么,当然你应该。 – Ryan

+0

它不起作用。是htaccess连接数据库的问题? – Meow

0

您需要从Dreamhost获取正确的数据库连接信息。您可以在Dreamhost Web Panel的左侧的MySQL数据库选项卡下找到您为该域设置的域名。在该页面下,您可以找到主机名,数据库和用户名。如果您单击可访问数据库的用户名,则可以查找您的密码。将这些值放入database.php配置文件中,如下面的字段所示。

$db['default']['hostname'] = 'mysql.example.com'; 
$db['default']['port']  = "3306"; 
$db['default']['username'] = 'mysql_username'; 
$db['default']['password'] = '​mysql_password'; 
$db['default']['database'] = 'mysql_database'; 
0

首先,如果您正在访问同一台PC内的数据库。 (localhost and 127.0.0.1相同)

如果不是,主机名应通过DNS名称或域名来标识包括在内。

如果数据库端口不是默认值(3306),则应将其包含在配置中。

就像在你的PHP代码:

$db['default']['hostname'] = 'mysql.demos.smartmobe.com'; 
$db['default']['username'] = 'nayacinema'; 
$db['default']['password'] = '​******'; 
$db['default']['database'] = 'nayacinema'; 
$db['default']['dbdriver'] = 'mysql'; 
$db['default']['dbprefix'] = ''; 
$db['default']['pconnect'] = TRUE; 
$db['default']['db_debug'] = TRUE; 
$db['default']['cache_on'] = FALSE; 
$db['default']['cachedir'] = ''; 
$db['default']['char_set'] = 'utf8'; 
$db['default']['dbcollat'] = 'utf8_general_ci'; 
$db['default']['swap_pre'] = ''; 
$db['default']['autoinit'] = TRUE; 
$db['default']['stricton'] = FALSE; 
//$db['default']['port'] = 3307;  //modify if the port is not the default 3306