Thread

This is an archived forum and the content is probably no longer relevant, but is provided here for posterity.

The active forums are here.

MySQL : "Unable to connect to your database server using the provided settings." But I can connect manually.

March 05, 2008 5:14pm

Subscribe [8]
  • #1 / Mar 05, 2008 5:14pm

    veddermatic

    3 posts

    I have a new CI 1.6.1 install. In my application/config/database.php file I have the host, username, pass, and db names set. The MySQL is version 5.0.2. I have other CI based sites running, and have gotten database connectivity no problems. When I call

    $this->load->database()

    From a controller or model, I get: “Unable to connect to your database server using the provided settings.”

    However, if I just use the raw PHP:

    mysql_connect('mysql.myhost.com','myuser','mypass') or die("uh oh: ".mysql_error());
    mysql_select_db('mydb') or die("no db: ".mysql_error());

    It connects fine, and I can run queries and all is well. I have copy / pasted the working values from the raw PHP into the database.php file, so it’s not a typo or anything of that nature.

    That file looks like:

    $db['default']['hostname'] = "mysql.myhost.com";
    $db['default']['username'] = "myuser";
    $db['default']['password'] = "mypass";
    $db['default']['database'] = "mydb";
    $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";

    php.ini confirms that persistant connections are enabled, charset and collation match.

    This is my first 1.6.X site (all my other CI sites are 1.5.x) so is there some “duuuh” setting somewhere I need to set, or?

  • #2 / Mar 05, 2008 5:46pm

    Michael Wales's avatar

    Michael Wales

    2070 posts

    Have you tried turning off pconnect (even though php.ini says persistent connections are enabled)?

  • #3 / Mar 05, 2008 5:58pm

    veddermatic

    3 posts

    Have you tried turning off pconnect (even though php.ini says persistent connections are enabled)?

    Yup, same issue.

  • #4 / Mar 05, 2008 6:13pm

    veddermatic

    3 posts

    OK.. in a very odd and confounding twist, it now works. What did change? I replaced the double quotes around the hostname in the config file with single quotes.

    $db['default']['hostname'] =  "mysql.myhost.com";

    Causes the error while:

    $db['default']['hostname'] =  'mysql.myhost.com';

    Works just fine. No other setting changed or anything.

    Now to go bandage my head where I have been smashing it against my desk.

  • #5 / Dec 26, 2008 10:07am

    ixxalnxxi

    17 posts

    This very strange phenomenon happened with me also, I replaced the double quotes with single quotes and that error no longer showed up.

  • #6 / Jan 16, 2009 12:51pm

    tolley

    1 posts

    I had the same problem too. (I’m using CI 1.7.0)

    I think it might have something to do with the server set-up as well. Things worked well on with my old host - then I transfered everything to a new host and received this error.

    I changed the double quotes to single ones in the database config file(as suggested earlier) and all seems to work well so far.

  • #7 / Feb 02, 2010 7:55am

    Tommy Gor

    1 posts

    Have you tried turning off pconnect (even though php.ini says persistent connections are enabled)?

    Had the same problem but w/o persistent connections.
    I didn’t even know to look for it.
    Turning pconnect off solved it for me.
    Thanks Michael

  • #8 / Mar 10, 2010 7:09pm

    carbncl

    1 posts

    Just spent some time having a similar issue…
    Thanks to suggestions here, i finally figured that port was missing!

    ...and that because of default php.ini of osx > “mysql.default_port = “

    thanks smile

  • #9 / Jan 27, 2011 9:46pm

    moxuanyuan

    1 posts

    set $db[‘default’][‘pconnect’] = FALSE;

    oK~~~~

  • #10 / Aug 04, 2013 2:23pm

    vishaljadhav

    1 posts

    I changed

    $db[‘default’][‘db_debug’] = TRUE;

    to

    $db[‘default’][‘db_debug’] = FALSE;

    and its working now smile

  • #11 / Aug 08, 2013 3:48pm

    madkins

    1 posts

    I changed

    $db[‘default’][‘db_debug’] = TRUE;

    to

    $db[‘default’][‘db_debug’] = FALSE;

    and its working now smile

    This worked for me. Thanks!!

ExpressionEngine News

#eecms, #events, #releases