Can’t select database
We were able to connect to the database server (which means your username and password is okay) but not able to select the localhost database.
* Are you sure it exists?
* On some systems the name of your database is prefixed with your username, so it would be like username_wordpress. Could that be the problem?If you don’t know how to setup a database you should contact your host. If all else fails you may find help at the WordPress Support Forums.
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?
These default WordPress database error pages are more meant for website administrators or webmasters rather than the public visitors.
Since WordPress 2.3.2, wp-db.php located in wp-include directory which manages the WordPress database connection introduced the support for custom database error page.
To use custom WordPress database connection error page, just upload a file called db-error.php to your wp-content directory. db-error.php file is the custom DB error template which will be loaded if present, otherwise, the default WordPress database connection error message will be shown.
A simple example of db-error.php is as follow:
<?php // Set proper HTTP header, requires PHP >= 4.0.1 $sapi_type = php_sapi_name(); if (substr($sapi_type, 0, 3) == 'cgi') header( 'Status: 503 Service Temporarily Unavailable' ); else header( 'HTTP/1.1 503 Service Temporarily Unavailable' ); header( 'Retry-After: 600' ); // 5 minutes, you don't want the site to down for too long // Send mail to notify administrator, optional $mailto = "[email protected]"; // example only, change to your email address $subject = "Database Error at " . $_SERVER['SERVER_NAME']; $message = "Database connection error when someone tried to open this page: http://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; $mailfrom = "From: WordPress"; // change to your email address or sender name mail($mailto, $subject, $message, $mailfrom); ?> // HTML for the error page template. // // It's recommended to not using get_header() and get_footer() as WordPress won't be able // to resolve the active theme where there is no database connection. You can view source code of // your web page or copy the code from header.php, single.php and footer.php (after stripping out // WordPress variables), and use the code as template. <!DOCTYPE html> <html lang="en-US" dir="ltr"> <head> <title>WordPress Database Error</title> <meta charset="utf-8" /> <style> body { background: #fff; font-family: Helvetica, sans-serif; font-size: 18px; line-height: 1.3; padding: 20px; margin: 70px auto 0; } h1 { font-size: 32px; font-weight: normal; margin-top: 0; } p { margin: 10px; } </style> </head> <body> <h1>We encountered some problem!</h1> <p>Looks like we're unable to serve you the page right now. Administrator has been notified about the error. Please check back soon!</p> </body> </html>
Note that if you don’t set any HTTP status code in header, WordPress will send a normal status 200 OK header, which means that the web pages may be erroneously indexed an error page as its content.
In wp-db.php (the file that handles the database connections that WordPress makes), you can see lines like “DB Constructor – connects to the server and selects a database” and “Select a DB (if another one needs to be selected)”. That’s where you can alter the text and word in the error page. Just look carefully after the line, you will see exactly the some text and message as appeared on the database error page. Edit them to your liking.
Beside, from line 312 onwards is the header and footer output for the HTML of database connection error page, contains inside function named “bail”, which specifies things like the title of “WordPress: Error”. The “bail” function is called whenever a database connection error is encountered, and does what it’s name said – bails out the error and displays an error message instead to notify the users. You can change them if you like too.
Please take a backup of wp-db.php file before you customize or alter it. If you break the code, your website visitors and surfers will get the PHP error instead. Beside, be careful that when you upgrade your WordPress. If you overwrite all files when upgrade the WordPress, the wp-db.php will be replaced back with the original unchanged version too, and you have to edit the file again. Else, backup the wp-db.php before upgrading your WordPress and restore it after upgrading is done.