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

代码点火器错误:无法使用提供的设置连接到数据库服务器。文件名:core/Loader.php行号:346,php,mysql,codeigniter,Php,Mysql,Codeigniter,我正在本地主机上使用codeigniter开发一个网站应用程序,然后在hawkhost中托管它 在本地主机上运行良好,但在主机上存在以下错误: 无法使用提供的设置连接到数据库服务器。 文件名:core/Loader.php行号:346 这是我的数据库配置 $active_group = 'default'; $active_record = TRUE; $db['default']['hostname'] = 'localhost'; $db['default']['username'] =

我正在本地主机上使用codeigniter开发一个网站应用程序,然后在hawkhost中托管它

在本地主机上运行良好,但在主机上存在以下错误:

无法使用提供的设置连接到数据库服务器。 文件名: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
to false仅隐藏错误,但当我尝试从查询中获取数据时,它不会返回任何内容

我还尝试将
$db['default']['pconnect']=FALSE
设置为true,但仍然不起作用


需要帮忙吗

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

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


问题解决了。感谢大家的帮助。

大多数情况下,当codeigniter处于实时环境中时,此问题会发生

这就是为什么我假设了一个域名(例如:domainname.com),在创建了一个mysql数据库(例如:testDb)和用户名(例如:testUser)之后,您会发现一个前缀名自动添加到您的mysql数据库名和用户名中,比如“domainname_uu'testDb”和“domainname_u'testUser”

现在在codeigniter/application/config/database.php中编辑以下内容:

$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;
换衣服

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


瞧。

在我的例子中,将pconnect设置为false有效

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

只需将
localhost
更改为本地ipaddress,即
127.0.0.1
即可开始工作


如果其他人有此问题,请尝试禁用SE Linux(如果已启用)。这导致了我在使用PHP5.4时出现连接问题

同样值得检查的是切换

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


由于mysql在PHP5.5之后贬值。

检查凭证,我认为凭证应该是机密的。@sgt您所说的凭证是什么意思?我怎样才能修改它呢?数据库名,密码,用户名等等…我确信它们是正确的。我在任何地方都找不到关于如何解决这个问题的答案。你做过这个吗@在本例中,JCm后缀_user是myUsername_DbUser。示例:stormrage_admin2。我如何检查在托管时是否有额外的suffic?后缀可以在cPanel中看到。如果它是共享主机,那么它是必需的,并且后缀也适用于db name问题,因此我改为
FALSE
,现在可以正常工作。您好,请在代码中添加一些解释,因为这有助于理解您的代码。只有密码的答案是不受欢迎的。非常感谢它救了我一天
$db['default']['hostname'] = 'localhost';
$db['default']['hostname'] = '127.0.0.1';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbdriver'] = 'mysqli';