Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Message: Configured database connection is persistent. Aborting

Codeigniter 2 to 3 version after upgrading, I get this error.. Why would that be?

An uncaught Exception was encountered

Type: Exception

Message: Configured database connection is persistent. Aborting.

Filename: /var/www/vhosts/xxx.com/app/system/libraries/Session/drivers/Session_database_driver.php

Line Number: 94

Backtrace:

File: /var/www/vhosts/xxx.com/app/application/core/MY_Controller.php Line: 11 Function: __construct

File: /var/www/vhosts/xxx.com/app/application/core/MY_Controller.php Line: 52 Function: __construct

File: /var/www/vhosts/xxx.com/app/application/controllers/Dashboard.php Line: 7 Function: __construct

File: /var/www/vhosts/xxx.com/application/index.php Line: 293 Function: require_once

like image 435
Demir Aksa Avatar asked Apr 04 '15 13:04

Demir Aksa


3 Answers

I had the same issue, and found that it was just a matter of changing a setting:

Modify your database.php config file and turn 'pconnect' to false. As part of the CI 3 Framework, it would be part of this array:

$db['default'] = array(
    'pconnect' => FALSE // This value
);

Or if your config file looks more like the CI 2 version:

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

A bit of searching seems to suggest that the database doesn't like a persistent connection, possible because of security reasons.

like image 130
Parker1090 Avatar answered Nov 02 '22 11:11

Parker1090


Disable caching in database.php file, define caching folder in database.php by

'cachedir' => APPPATH.'cache/db/',

setting and only use

$this->db->cache_on(); 

command where you want your database query being cached.

Don't forget to use

$this->db->cache_off();

after select queries for unwanted cached results.

like image 38
MERT DOĞAN Avatar answered Nov 02 '22 13:11

MERT DOĞAN


It seems like codeigniter 3.0 doesn't support sessions using database, when persistent is enabled. form: http://www.codeigniter.com/user_guide/libraries/sessions.html?highlight=session#session-preferences

However, there are some conditions that must be met:

Only your default database connection (or the one that you access as $this->db from your controllers) can be used. You must have the Query Builder enabled. You can NOT use a persistent connection. You can NOT use a connection with the cache_on setting enabled.

like image 23
Phoebus Avatar answered Nov 02 '22 13:11

Phoebus