Simon Whitaker
Simon Whitaker

Reputation: 20586

Wordpress: Error establishing a database connection. Yeah, I've tried that. And that

This is driving me nuts! I have a test instance of Wordpress installed on my MacBook Pro, which has suddenly stopped working. If I head for http://localhost:9003/wp-admin/ I get:

Error establishing a database connection

This either means that the username and password information in your wp-config.php file is incorrect or we can't contact the database server at localhost. This could mean your host's database server is down.

Are you sure you have the correct username and password?

Are you sure that you have typed the correct hostname?

Are you sure that the database server is running?

If you're unsure what these terms mean you should probably contact your host. If you still need help you can always visit the WordPress Support Forums.

Hmmph! I haven't touched the config for ages. Here's how the relevant lines look right now:

define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpress');
define('DB_PASSWORD', 'wordpress');
define('DB_HOST', 'localhost');
$table_prefix  = 'wp_';

The values are all good:

$ mysql -h localhost -u wordpress --password=wordpress \
> wordpress -e 'select user_login from wp_users'
+------------+
| user_login |
+------------+
| simon      |
+------------+

There's nothing in the MySQL error log, nor in Apache's error log. I've tried using a different MySQL user and a different database, but I get the same error. I'm scuppered - any WordPress gurus out there know what I'm missing?


Output of php --ri mysql:

$ php --ri mysql

mysql

MySQL Support => enabled
Active Persistent Links => 0
Active Links => 0
Client API version => mysqlnd 5.0.7-dev - 091210 - $Revision: 294543 $

Directive => Local Value => Master Value
mysql.allow_persistent => On => On
mysql.max_persistent => Unlimited => Unlimited
mysql.max_links => Unlimited => Unlimited
mysql.default_host => no value => no value
mysql.default_user => no value => no value
mysql.default_password => no value => no value
mysql.default_port => no value => no value
mysql.default_socket => /var/mysql/mysql.sock => /var/mysql/mysql.sock
mysql.connect_timeout => 60 => 60
mysql.trace_mode => Off => Off
mysql.allow_local_infile => On => On

Upvotes: 0

Views: 7362

Answers (3)

Simon Whitaker
Simon Whitaker

Reputation: 20586

This is exactly the problem, and the solution.

http://appletoolbox.com/2010/08/phpmysql-broken-after-security-update-2010-05-fix/

Upvotes: 2

Jacob
Jacob

Reputation: 78920

If you truly didn't change any of your configuration settings, then maybe the database connection can't be established for mundane reasons. Perhaps a silly question, but did you try restarting your computer or at least MySQL? Maybe MySQL is just running low on resources and cannot service your web site's request.

Upvotes: 0

markratledge
markratledge

Reputation: 17561

Sure web sharing is turned on?

And MySQL is running via the Preferance Pane: http://dev.mysql.com/doc/mysql-macosx-excerpt/5.1/en/mysql-installation-macosx-prefpane.html

Might try phpmyadmin to check the database: http://www.phpmyadmin.net

Upvotes: 0

Related Questions