WordPress installation – php and mysql are not talking to each other to access database?

I’m trying to get a wordpress local install working on my Mac.

I’ve recently set up a database, username and password using the MySQL client as per the instructions in the wordpress codex. That part is ok.

Read More

When I go to the local site on my computer I’m prompted by wordpress to set up the wp-config.php file. Putting in the same details that definitely work with the MySQL client returns an error.

Manually updating these details in the ‘wp-config-sample.php’ file and renaming it as ‘wp-config.php’ also doesn’t work – I’m now greeted with a big bold message: “Error establishing a database connection”.

From what I can gather, php and mysql are not communicating with each other properly.

I’ve changed the apache 2 configuration file found in ‘etc/apache2/httpd.conf’ and uncommented the line which loads the php5 module: LoadModule php5_module libexec/apache2/libphp5.so

and restarted the apache server. This has still not fixed my problem. I’m stuck on what to do next… help appreciated please!

Related posts

Leave a Reply

2 comments

  1. It’s been fixed now.

    php was looking in the wrong place for the mysql.sock file, and couldn’t communicate with the mysql database, meaning wordpress couldn’t be set up.

    On the command line I typed

    ps aux | grep mysql
    

    to bring up as much info about mysql that I could. From this I saw that the mysql socket on my computer is being used at /tmp/mysql.sock

    Meanwhile, in the “wp-config.php” file, I changed the line define('WP_DEBUG', false); to define('WP_DEBUG', true); and refreshed my web browser that was showing my localhost setup. This now said a lot more info than “Error establishing a database connection” – infact I could see that the mysql.sock was not configured correctly at all.

    Creating a ‘phpinfo.php’ file with just the single line of code <?php phpinfo(); ?> was the pivotal turning point for me.

    Putting that ‘phpinfo.php’ file in my localhost directory and then viewing it from my web browser not only definitely confirmed that the mysql.sock file was not configured properly, but it also showed where the configurations were being loaded from on my machine: ‘/private/etc/php.ini’

    The next thing I did was open up the ‘php.ini’ file in a text editor and doing a quick find and replace to update the correct location of mysql.sock.

    Finally, a restart of the local apache server needed to be done to fully update all the new settings that I’d been fiddling about with.

    sudo apachectl restart
    

    Now everything works fine!

  2. The Error-Message “Error establishing a database connection” indicates clearly, that the php-script can not establish the connection. This can have one of the following reasons:

    1. Your host in the wp-config.php is not correct.
    2. The mysql-server does not listen on that host
    3. The user you set up in the mysql has no privileges to connect the way you are trying
    4. The firewall blocks the access of the php-script to your mysql-host

    Try to connect the database with the same settings of your wordpress using Sequel Pro (or any other GUI to connect a mysql database). If the connection works, the problem 2. and 3. isn’t your problem.

    Look in your firewall-log to make sure 4. is also not your problem.

    If all problems are excluded (even 1. after a final check), try to run something like phpMyAdmin to connect your database, to make sure your php-installation has the needed drivers.