【问题标题】:Database Error Occurred发生数据库错误
【发布时间】:2014-02-18 03:25:32
【问题描述】:

我正在使用 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 中。在本地主机中工作,但在现场有错误。请帮助我。谢谢你

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    首先,如果您在同一台电脑中访问数据库。 (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
    

    【讨论】:

      【解决方案2】:

      您需要从 Dreamhost 获取正确的数据库连接信息。您可以在 Dreamhost Web 面板的左侧 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';
      

      【讨论】:

        【解决方案3】:

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

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

        例如

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

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

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

        【讨论】:

        • 我的数据库在dreamhost上,我使用了'mysql.demos.smartmobe.com'。主机名应该是'127.0.0.1'吗?我很困惑。数据库也是正确的
        • 我不知道你的数据库服务器是什么,你当然应该知道。
        • 它不起作用。 htaccess 连接数据库有问题吗?
        • 不,htaccess 不会影响您的数据库连接。当您说它不起作用时,我认为您遇到的错误与原始帖子中的错误相同。我们无法帮助您 - 您为 hostnamedatabase_name 或凭据提供了错误的值。
        • 不知道你看懂了答案!
        猜你喜欢
        • 2013-02-06
        • 2017-07-31
        • 2014-05-17
        • 2011-10-26
        • 2012-10-31
        • 1970-01-01
        相关资源
        最近更新 更多