mysqli::real_connect(): (HY000/1049): Unknown database error in codeigniter mysqli::real_connect(): (HY000/1049): Unknown database error in codeigniter codeigniter codeigniter

mysqli::real_connect(): (HY000/1049): Unknown database error in codeigniter


I was getting same error when i installed new wampserver 3.2.0, it is an evil it installs MariaDB by default and port 3306 is assigned to it , you cannot even change it. I think codeigniter/php tries to connect to this port by default.I used following , it worked for me i.e. hostname => 'localhost:3308'

 $db['default'] = array(        'dsn'   => '',        'hostname' => 'localhost:3308',        'username' => 'root',        'password' => '',        'database' => 'soft',        'dbdriver' => 'mysqli',        'dbprefix' => '',        'pconnect' => FALSE,        'db_debug' => (ENVIRONMENT !== 'production'),        'cache_on' => FALSE,        'cachedir' => '',        'char_set' => 'utf8',        'dbcollat' => 'utf8_general_ci',        'swap_pre' => '',        'encrypt' => FALSE,        'compress' => FALSE,        'stricton' => FALSE,        'failover' => array(),        'save_queries' => TRUE    );


That's what i did to handle whether db exists or not :

First Change this in application/config/database.php

'db_debug' => (ENVIRONMENT !== 'production')

to

'db_debug' => FALSE; 

Then add these two in your controller

    $this->load->dbforge();    $this->load->dbutil();

Then check it in your method

    if( $this->dbutil->database_exists($this->db->database))    {        echo 'Database Already Exists';    }    else    {        if($this->dbforge->create_database($this->db->database))        {            echo 'Database created successfully !';        }else        {            print_r($this->db->error());            /*               Array (                      [code] => 1007                      [message] => Can't create database 'my_db'; database exists                     )           */        }    }


I was too getting this error. There are 2 fields in application/config/database.php file that should match up with your actual database:

'char_set' => 'utf8','dbcollat' => 'utf8_general_ci',

Make sure, the actual DB is of the same type & char_set as mentioned in the above file.