发生数据库错误

时间:2014-01-27 10:24:43

标签: php codeigniter

我正在使用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 Code就在这里。

$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中。在localhost工作,但在现场有错误。请帮助我。谢谢你

3 个答案:

答案 0 :(得分:0)

您说明了您的用户名和密码是否正确,但主机名呢?

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

E.g。

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

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

您还需要更改$db['default']['database_name']以匹配您尝试使用的数据库的名称。

答案 1 :(得分:0)

您需要从Dreamhost获取正确的数据库连接信息。您可以在Dreamhost Web Panel中的左侧MySQL Databases选项卡下找到为该域设置的域。在该页面下,您可以找到主机名,数据库和用户名。如果单击有权访问数据库的用户名,则可以找到密码。将这些值放入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';

答案 2 :(得分: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