代码点火器错误:无法使用提供的设置连接到数据库服务器。文件名:core / Loader.php行号:346

时间:2014-11-06 03:32:30

标签: php mysql codeigniter

我在localhost上使用codeigniter开发网站应用程序,然后在hawkhost中托管它。

在localhost上它运行良好,但在主机上有错误:

  

无法使用提供的设置连接到数据库服务器。   文件名:core / Loader.php行号:346

这是我的数据库配置

$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = '****';
$db['default']['password'] = '****';
$db['default']['database'] = '****';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = FALSE;
$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']['db_debug'] = TRUE;更改为false只会隐藏错误,但当我尝试从查询中获取数据时,它不会返回任何内容。

我还尝试将$db['default']['pconnect'] = FALSE;更改为true,但仍然无效。

请帮忙吗?

6 个答案:

答案 0 :(得分:4)

在我的情况下,将pconnect设置为false工作。

$db['default']['pconnect'] = FALSE;

答案 1 :(得分:2)

问题在于凭证。 我使用简单的代码测试它,以检查是否可以建立连接。

问题在于用户名,我意识到使用托管时会有额外的后缀。例如suffix_user 我认为Core / Loader.php行号:346中的相同错误具有相同的解决方案。确保用户名,密码和主机是正确的。

它已经解决了。谢谢大家的帮助。

答案 2 :(得分:1)

只需更改

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

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

瞧。

答案 3 :(得分:1)

只需改变即可开始工作。

$ db ['默认'] ['主机名'] =' localhost';

$ db ['默认'] ['主机名'] =' 127.0.0.1';

答案 4 :(得分:0)

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'domainname_ testDb ';
$db['default']['password'] = '*******';
$db['default']['database'] = 'domainname_ testUser';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = FALSE;
$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;

答案 5 :(得分:0)

如果其他任何人遇到此问题,请尝试禁用SE-Linux(如果已启用)。它对我来说导致了php 5.4的连接问题。

也值得一试的是切换

$db['default']['dbdriver'] = 'mysql';

$db['default']['dbdriver'] = 'mysqli';

由于mysql在PHP 5.5之后折旧。