简体   繁体   中英

Codeigniter Error “Unable to connect to your database server using the provided settings”

When I trying upload this project on my domain m facing error "Unable to connect to your database server using the provided settings"

I have checked my config.php and database.php file and all the information are correct:

 $db['default']['hostname'] = "etc.com";
 $db['default']['username'] = "etc"; 
 $db['default']['password'] = "etc@etc";
 $db['default']['database'] = "visiting_link";
 $db['default']['dbdriver'] = "mysql";
 $db['default']['dbprefix'] = "";
 $db['default']['pconnect'] = TRUE;
 $db['default']['db_debug'] = TRUE;
 $db['default']['cache_on'] = FALSE;
 $db['default']['cachedir'] = "";
 $db['default']['char_set'] = "utf8";
 $db['default']['dbcollat'] = "utf8_general_ci"; 

Is any solution to that problem? please refer any helping material. I am using fileZilla.
Thanks !

Setting "db_debug" to false solved my problem.

I'm using Snow Leopard.

EDIT: db_debug just obfuscated my direction. The solution in my case was just the mysql.sock reference path, as solved on this question: Warning: mysql_connect(): [2002] No such file or directory (trying to connect via unix:///tmp/mysql.sock) in

OS X use /tmp/mysql.sock, and by default php.ini is referencing /var/mysql/mysql.sock. Just creating a symlink solves the problem:

sudo mkdir -p /var/mysql/ && cd /var/mysql/
sudo ln -s /tmp/mysql.sock ./mysql.sock

Try setting the 'dbdriver' to 'mysqli'

$db['default']['dbdriver'] = "mysqli";

It's the MySQL Improved Extension ( http://php.net/manual/en/book.mysqli.php ) and your server may be set to use this rather than the standard MySQL extension.

I've seen this happen a few times when all other settings are correct, as the connection will fail if the wrong driver is selected.

If the database settings are correct, than something is wrong anywhere else:

  • maybe the database does not accept connections from anywhere; in this case, you need to allow connections from your 'username'@'server IP'

  • maybe PHP or the server itself is not allowing the connection, due to a php.ini setting, a firewall, or something else

Back to the CI DB settings, you need to be sure they are correct. Are you sure the "hostname" is correct?

if u use codeigniter 3 then please use latest version of php. Once i got these errors but then i update my php then it works after successfully setup codeigniter on my project.

And please follow in your application/config/database.php

$active_group = 'default';
$query_builder = TRUE;

$db['default'] = array(
    'dsn'   => '',
    'hostname' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'db_bdtimes', // your database name
    '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
);

I was getting this error

    <div id="container">
        <h1>A Database Error Occurred</h1>
        <p>Unable to connect to your database server using the provided settings.</p>
        <p>Filename: C:/xampp/htdocs/WORK/Vishal/UI-Demo/system/database/DB_driver.php</p>
        <p>Line Number: 436</p>
    </div>

I resolved this error by change debug option to FALSE in database.php

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

TO

'db_debug' => FALSE,

Change this

$db['default'] = array(
'dsn'   => '',
'hostname' => 'XXXX',
'username' => 'XXXX',
'password' => 'XXXX',
'database' => 'XXX',
'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

);

To

$db['default'] = array(
'dsn'   => '',
'hostname' => 'XXXX',
'username' => 'XXXX',
'password' => 'XXXX',
'database' => 'XXX',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => FALSE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE

);

If you are facing this issue in shared hosting environment. Then i think you have to give the database credentials same as cpanel/hosting credentials.

$db['default']['hostname'] = "localhost";
$db['default']['username'] = "cpanel/hosting username"; 
$db['default']['password'] = "cpanel/hosting password";
$db['default']['database'] = "dbname";

This solved my problem while deploying a codeigniter CMS on server, although it was working fine in localhost with TRUE attribute. change this line in database.php to look like this :

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

Also CHECK if this line matches the collation of your server's database(for all tables as well):

$db['default']['dbcollat'] = "utf8_general_ci";

试试这个$ db ['default'] ['hostname'] =“localhost”;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM