The default config file is located in MODPATH/database/config/database.php
. You should copy this file to APPPATH/config/database.php
and make changes there, in keeping with the cascading filesystem.
The database configuration file contains an array of configuration groups. The structure of each database configuration group, called an "instance", looks like this:
string INSTANCE_NAME => [
'type' => string DATABASE_TYPE,
'connection' => array CONNECTION_ARRAY,
'table_prefix' => string TABLE_PREFIX,
'charset' => string CHARACTER_SET,
],
Understanding each of these settings is important.
The example file below shows 2 MySQL connections, one local and one remote.
return [
'default' => [
'type' => 'PDO',
'connection' => [
'dsn' => 'mysql:host=localhost;dbname=my_db_name',
'username' => 'dbuser',
'password' => 'mypassword',
'persistent' => false,
],
'table_prefix' => '',
'charset' => 'utf8',
],
'remote' => [
'type' => 'PDO',
'connection' => [
'dsn' => 'mysql:host=55.55.55.55;dbname=my_remote_db_name',
'username' => 'remote_user',
'password' => 'mypassword',
'persistent' => false,
'database' => 'my_remote_db_name',
],
'table_prefix' => '',
'charset' => 'utf8',
],
];
Note that the 'type' parameter is case sensitive (e.g., 'PDO', 'MySQLi').
Each configuration group is referred to as a database instance. Each instance can be accessed by calling Database::instance. If you don't provide a parameter, the default instance is used.
// This would connect to the database defined as 'default'
$default = Database::instance();
// This would connect to the database defined as 'remote'
$remote = Database::instance('remote');
To disconnect the database, simply destroy the object:
unset($default);
// Or
unset(Database::$instances['default']);
If you want to disconnect all of the database instances at once:
Database::$instances = [];
Every database driver has different connection settings.
A PDO database can accept these options in the connection
array:
Type | Option | Description | Default value |
---|---|---|---|
string |
dsn | PDO data source identifier | mysql:host=localhost;dbname=kohana |
string |
username | Database username | empty |
string |
password | Database password | empty |
array |
options | Driver-specific options | none |
boolean |
persistent | Persistent connections | false |
The connection character set should be configured using the DSN string or options
array.
If you are using PDO and are not sure what to use for the dsn
option, review PDO::__construct.
A MySQL database can accept the following options in the connection
array:
Type | Option | Description | Default value |
---|---|---|---|
string |
hostname | Hostname of the database | localhost |
integer |
port | Port number | null |
string |
socket | UNIX socket | null |
string |
username | Database username | empty |
string |
password | Database password | empty |
boolean |
persistent | Persistent connections | false |
string |
database | Database name | kohana |
array |
ssl | SSL parameters | null |
SSL parameters should be specified as key
=> value
pairs.
Available keys: client_key_path, client_cert_path, ca_cert_path, ca_dir_path, cipher