Question

Error Establishing a Database Connection in WordPress with Ubuntu 16.04.3 NGINX, MARIADB 10, PHP7/7.1 and Wordpress 4.8.2

When I create a new Ubuntu 16.04.3 droplet and I install NGINX, MARIADB and PHP (no matter which versions, all have the same problem) and WordPress I am getting the Error Establishing a Database Connection. Before this error I created +50 servers all the same and since a couple of days I am having this strange problem. Tried almost everything, so I am creating a support ticket for it. When I fill in the Database information (DBname, DBuser, DBpassword) I am getting directly Error Establishing a Database Connection. I am lost for the moment. Someone else with the same problem?


Submit an answer

This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Answer

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Want to learn more? Join the DigitalOcean Community!

Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in Q&A, subscribe to topics of interest, and get courses and tools that will help you grow as a developer and scale your project or business.

Hello all,

If you’re unable to access the database using the credentials then the password is likely to be wrong. You can try to reset the passwords for the databases that you’re unable to access.

You can also check our article on How To Debug the WordPress “Error Establishing Database Connection”:

https://www.digitalocean.com/community/tutorials/how-to-debug-the-wordpress-error-establishing-database-connection

Regards, Alex

Have your created a database and user and tested that the connection works outside the scope of WordPress?

Here is a simple bash script to test the connection (adjust as needed)

#!/usr/bin/env bash

WEBROOT=${HOME}/public_html

WPDBHOST=$(cat ${WEBROOT}/wp-config.php | grep DB_HOST | cut -d \' -f 4)
WPDBNAME=$(cat ${WEBROOT}/wp-config.php | grep DB_NAME | cut -d \' -f 4)
WPDBUSER=$(cat ${WEBROOT}/wp-config.php | grep DB_USER | cut -d \' -f 4)
WPDBPASS=$(cat ${WEBROOT}/wp-config.php | grep DB_PASSWORD | cut -d \' -f 4)
WPDBPREF=$(cat ${WEBROOT}/wp-config.php | grep "\$table_prefix" | cut -d \' -f 2);

if [ ! "`mysql -u${WPDBUSER} -p${WPDBPASS} -e 'SHOW DATABASES;' | grep ${WPDBNAME}`" == "${WPDBNAME}" ]; then
  echo "${WPDBNAME} connection failure for ${WPDBUSER}"
  exit
else
  echo "${WPDBNAME} connected"
fi