我在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,但仍然无效。
请帮忙吗?
答案 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之后折旧。