El aviso ‘Error al establecer una conexión con la base de datos’ en WordPress es un error fatal que hace que su sitio sea inaccesible para los usuarios. Ocurre cuando WordPress no se ha podido conectar a la base de datos.
Dado que hay múltiples factores que pueden afectar a esta conexión, el error puede ser un poco difícil de diagnosticar para los principiantes.
Llevamos 16 años publicando nuestro blog en WordPress y nos hemos encontrado con una gran variedad de errores y advertencias, como el “Error al establecer una conexión con la base de datos”. Gracias a nuestra experiencia y a muchos periodos de prueba y error, hemos aprendido a diagnosticar estos problemas sin interrumpir nuestro sitio.
En este artículo, le mostraremos cómo corregir fácilmente el “Error al establecer una conexión a una base de datos” en su sitio de WordPress, paso a paso.
¿Cuál es la causa del error al establecer una conexión de base de datos en WordPress?
Una base de datos es un programa informático que facilita el almacenamiento, la organización y la recuperación de datos de otros programas.
Como sistema de gestión de contenidos, WordPress utiliza una base de datos para almacenar todo el contenido y otros datos del sitio web. Se conecta a la base de datos cada vez que alguien visita su sitio web.
WordPress necesita la siguiente información para conectarse a la base de datos:
- Nombre de la base de datos
- Nombre de usuario y contraseña de la base de datos
- Servidor de base de datos
Esta información se almacena en su archivo de configuración de WordPress, que se llama wp-config.php.
Si alguno de estos datos es incorrecto, WordPress no podrá conectarse a su servidor de base de datos y aparecerá el error “Error al establecer una conexión con la base de datos”.
Es uno de los errores más comunes de WordPress. Aparte de unas credenciales incorrectas, este error también puede aparecer si el servidor de la base de datos no funciona o si los archivos de la base de datos están dañados.
Dicho esto, veamos cómo corregir el problema “Error al establecer la conexión con la base de datos” en WordPress diagnosticando paso a paso la incidencia.
1. Marcar / comprobar las credenciales de la base de datos de WordPress
Lascredenciales incorrectas son la causa más común del error de conexión a la base de datos. Si ha trasladado recientemente su sitio de WordPress a un nuevo alojamiento, es probable que este sea el problema.
Las credenciales de la base de datos de WordPress se almacenan en el archivo wp-config.php. Es el archivo de configuración de WordPress que contiene ajustes importantes, incluida la información de la base de datos.
Si no ha editado antes un archivo wp-config.php, consulte nuestra guía para principiantes sobre cómo editar el archivo wp-config.php para obtener más instrucciones.
Busque las siguientes líneas en el archivo wp-config.php:
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'database_name_here' );
/** MySQL database username */
define( 'DB_USER', 'username_here' );
/** MySQL database password */
define( 'DB_PASSWORD', 'password_here' );
/** MySQL hostname */
define( 'DB_HOST', 'localhost' );
Aquí debe asegurarse de que la información del nombre de la base de datos, el nombre de usuario, la contraseña y el alojamiento de la base de datos es correcta.
Puede confirmar esta información desde el escritorio de su cuenta de alojamiento de WordPress. Para este tutorial, vamos a utilizar Bluehost, pero el proceso será similar para otros paneles de alojamiento también.
Al acceder, haga clic en la pestaña “Sitio web” de la columna de la izquierda y, a continuación, cambie a la pestaña “Avanzado”. A continuación, desplácese hasta la sección “Base de datos” y haga clic en el botón “Gestionar” situado a su lado.
Esto abrirá la página de Bases de Datos MySQL en cPanel en una nueva ventana.
Aquí, puedes encontrar tu nombre de base de datos y nombre de usuario en la sección ‘Base de datos actual’. No olvide copiar y pegar estos datos en un bloc de notas para poder añadirlos al archivo wp-config.
A continuación, desplácese hasta la sección “Usuarios actuales”, donde podrá enlazar el enlace “Cambiar contraseña” situado junto al nombre de su base de datos.
Esto le llevará a una nueva pantalla, donde podrá cambiar la contraseña de la base de datos a su gusto.
Una vez que haya confirmado todos los detalles de su base de datos, puede cambiar esa información en su archivo wp-config.php si es necesario.
Después de eso, intente visitar su sitio web de nuevo para ver si el error de conexión a la base de datos ha desaparecido.
Si sigue apareciendo el error, significa que algo va mal.
2. Marcar / comprobar la información del alojamiento de su base de datos
Si está seguro de que el nombre de la base de datos, el nombre de usuario y la contraseña son correctos, asegúrese de que la información del alojamiento de la base de datos es correcta.
La mayoría de las empresas de alojamiento de WordPress utilizan localhost como host de su base de datos. Sin embargo, algunas empresas de alojamiento gestionado de WordPress utilizan servidores independientes para alojar las bases de datos. En ese caso, la información del alojamiento de la base de datos no será localhost.
Esto significa que deberá ponerse en contacto con su empresa de alojamiento de WordPress para confirmar estos datos.
3. Reparación de la base de datos de WordPress
Ahora, puede estar recibiendo un error diferente en el panel de wp-admin, como ‘Una o más tablas de la base de datos no están disponibles’ o ‘La base de datos puede necesitar ser reparada’. En ese caso, necesita reparar su base de datos.
Puede hacerlo añadiendo la siguiente línea en su archivo wp-config.php. Asegúrate de añadirla justo antes de la línea ‘¡Eso es todo, deja de editar! Feliz blog”:
define('WP_ALLOW_REPAIR', true);
Una vez hecho esto, puedes ver los ajustes visitando esta página: http://www.yoursite.com/wp-admin/maint/repair.php. Sólo asegúrate de sustituir yoursite.com por tu propio nombre de dominio.
Aquí, debe hacer clic en el botón “Reparar base de datos” para iniciar el proceso.
Nota: El usuario no necesita estar conectado para acceder a la página de reparación de la base de datos. Una vez que haya terminado de reparar y optimizar su base de datos, asegúrese de quitar esta línea de código de su wp-config.php.
Sin embargo, si no desea añadir ningún código a su sitio, también puede reparar su base de datos utilizando el cPanel de su cuenta de alojamiento.
Vaya a su cuenta de alojamiento y abra la página “Sitios web” en la columna de la izquierda. A continuación, vaya a la pestaña “Avanzado” y haga clic en el botón “Gestionar” en la sección Base de datos.
Esto abrirá cPanel en una nueva pestaña. Aquí, desplácese hasta la sección “Modificar bases de datos” y elija el nombre de su base de datos en el menú desplegable “Reparar base de datos”.
Una vez hecho esto, basta con hacer clic en el botón “Reparar base de datos” para iniciar el proceso.
El panel de alojamiento reparará automáticamente su base de datos.
Una vez finalizado el proceso, también verá un mensaje de correcto.
Ahora puede visitar su sitio de WordPress para ver si el error se ha resuelto o no.
4. Marcar / comprobar si el servidor de base de datos está inactivo
Si todo parece correcto y WordPress sigue sin poder conectarse a la base de datos, es posible que su servidor de base de datos(servidor MySQL) no funcione.
Esto puede ocurrir debido a un gran tráfico en el servidor. Su servidor de alojamiento simplemente no puede manejar la carga (especialmente cuando usted está en alojamiento compartido).
Debido a esto, su sitio será lento e incluso puede dar error a algunos usuarios. En este caso, usted debe conseguir en la llamada telefónica o chat en vivo con su proveedor de alojamiento y preguntarles si su servidor MySQL es adaptable.
Además, si usted tiene otros sitios web que se ejecutan en el mismo servidor, entonces usted puede marcar / comprobar esos sitios para confirmar que su servidor SQL está abajo.
Si no tiene ningún otro sitio en la misma cuenta de alojamiento, simplemente vaya a su Escritorio de alojamiento y cambie a la pestaña “Avanzado”.
A continuación, haga clic en el botón “Gestionar” situado junto a la sección phpMyAdmin.
Esto abrirá phpMyAdmin en una nueva ventana, donde debe hacer clic en la opción ‘Base de datos’ en la parte superior.
A continuación, haga clic en el nombre de su base de datos para acceder a sus ajustes. Si puede hacerlo, entonces es el momento de comprobar si el usuario de la base de datos tiene permisos suficientes.
Para ello, debe crear un nuevo archivo llamado testconnection.php y pegar el siguiente código en él:
<?php
$link = mysqli_connect('localhost', 'username', 'password');
if (!$link) {
die('Could not connect: ' . mysqli_error());
}
echo 'Connected successfully';
mysqli_close($link);
?>
Al pegar el código, asegúrese de sustituir el nombre de usuario y la contraseña por los suyos. Ahora puede subir este archivo a su sitio web y acceder a él a través de un navegador / explorador.
Si el script se conectó correctamente, entonces significa que su usuario tiene permisos suficientes, y algo más está causando el error.
Ahora, debe volver a su archivo wp-config y explorarlo para asegurarse de que todos los detalles son precisos y sin errores tipográficos.
Soluciones adicionales que han funcionado para los usuarios
Si los consejos para diagnosticar problemas mencionados no consiguen corregir el error de conexión a la base de datos en su sitio web, puede probar estos pasos adicionales.
Según informan nuestros usuarios, estos pasos han ayudado a algunos de ellos a resolver el error de conexión a la base de datos en sus sitios web.
1. Actualice la URL del sitio de WordPress
Puede intentar actualizar la URL del sitio de WordPress utilizando phpMyAdmin en cPanel.
Simplemente acceda a phpMyAdmin desde el Escritorio de su cuenta de alojamiento y seleccione su base de datos WordPress de la lista.
A continuación, cambie al menú SQL de la parte superior e introduzca la siguiente consulta MySQL:
UPDATE wp_options SET option_value='YOUR_SITE_URL' WHERE option_name='siteurl'
Debería verse así:
No olvide proporcionar la URL de su propio sitio y cambiar wp_options
por el nombre de su propia tabla, ya que es posible que haya cambiado el prefijo de la tabla de WordPress.
2. Reinicio del servidor web
Los usuarios de servidores dedicados, servidores locales y servidores privados virtuales (VPS) pueden intentar reiniciar sus servidores.
Esto reiniciará su servidor web y de base de datos, lo que puede corregir algunos fallos temporales que causan el error.
3. Pedir ayuda
Si todo lo demás falla, es posible que tenga que ponerse en contacto con su empresa de alojamiento web. Todas las buenas empresas de alojamiento de WordPress le ayudarán a diagnosticar el problema, le indicarán la dirección correcta o incluso se lo corregirán.
También puede contratar desarrolladores de WordPress utilizando una plataforma como WPBeginner Pro Services para ayudarle a corregir este problema por tarifas razonables. Tenemos un equipo dedicado de desarrolladores expertos en los que puedes confiar para resolver cualquiera de tus problemas / conflictos / incidencias en WordPress.
También puede utilizar el servicio para el mantenimiento de sitios, la reparación de sitios pirateados, la optimización de la velocidad, la reconstrucción de sitios web y la optimización SEO.
Esperamos que este artículo te haya ayudado a corregir el problema “Error al establecer una conexión a la base de datos” en WordPress. También puedes consultar nuestra guía práctica para diagnosticar problemas en WordPress o nuestro tutorial sobre cómo añadir una página de error de base de datos personalizada en WordPress.
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Edmundo Rubio
Thanks it work.
viraj
Thank you, it worked for me while connecting database from phpmyadmin.
Tom
I’m trying to install wordpress on my local pc running window 10. I have installed Xampp, made all the changes to use port 8080. No problem starting Xampp. No problem starting Apache or Mysql. I can open phpmyadmin from the admin button without problem and was able to add a database. if I enter http://localhost:8080 it brings up the Xampp page. However when I enter http://localhost:8080/wp to install wordpress the web page times out, but does nothing. I extracted the wordpress files into the htdocs folder and made the changes to the wp-config.php file to use localhost:8080.
At this point I have no other idea what to do to get the install done and could really use some help.
WPBeginner Support
Hi Tom,
You will need to copy paste WordPress files in /htdocs/wp/ folder instead of /htdocs/ folder.
Administrador
Sandy
Thank you! worked!
Jude
Unable to install word press on godaddy. Won’t even complete the installation. “Application has Errors”. – Need it urgently!! Please help
Shubham Tiwari
Hello WPBeginner,
I am currently running Viral Website. Many viral websites have some plugins. I am attaching link of the screenshot Here
In viral website niche, we need to see how many real time users are there on a particular story because, to see the viralness of new stories we need to see the real time users for a post. We use Google Analytics but Data Mining is too hard in google analytics to see if our story is going viral or not. By looking at the real time users for a particular story, we make conclusions that which of our story is going viral on social media.
Can you please provide me details? How can i show my Live story readers on the story/article page. I want my users to see how many live users are reading this particular story.
Is there any script code or any plugin for this type of feature?
Richard
Brilliant, this guided towards me getting this fixed!! Also had to change upload a new wp-settings.php file.
Thanks
Destiny
To allow use of this page to automatically repair database problems, please add the following line to your wp-config.php file. Once this line is added to your config, reload this page.
define(‘WP_ALLOW_REPAIR’, true);
Ben Horle
Massive thank you! 1st task fixed my site!
WPBeginner Support
Hi Ben,
Glad you found it helpful You may also want to subscribe to our YouTube Channel for WordPress video tutorials.
Administrador
Denis
Thanks!!! Thanks to you my site work again!
Happy
Mike
Had this error trying to install WP at home for testing on Windows laptop. Tried everything and then noticed that my character set in the wp-config.php file where i defined the parameters for accessing the database contained characters that were not standard. The apostrophe character was not the standard windows font character. Once i replaced and made them all the same character WP installed without issue.
Nirav Jagad
please someone connect my computer with teamwork and resolve my problem
Error establishing a database connection
Bas Dost
I have the same problem.
Let me know if you have any suggestions.
Thanks.
ivano
Worked for me by replacing “localhost” withe the IP you provided. Thank you!
miranda
i dont get it
Michael
[SOLVED] My databases were all working fine – turns out the problem was the password itself. The password contained three symbols &(= which I guess was messing with PHP. I’m not the best in PHP but I suspect the problem was with the symbol “=”. So once I changed the password, it worked just fine. Good luck, hope this helps.
Wills Perkins
Thanks guys, you’ve saved me from having a melt down
Editorial Staff
You’re welcome
Administrador
murad
Thanks. Solved my problem.
irnem
What exactly helped? I checked everything – still doesn’t work. In the section “Check your Web Host (MySQL Server)” they are talking about testconnection.php file, what should I do after I created it and put on WP dir? how can i run this code? (sorry, i’m a beginner in this area)
Ash
What also can be really handy! Especially if you use Wordpress on IIS6/7/8 on Windows Server.. Check if the MySQL service is running.. And also if it is running on the correct user account! Normally this should be just the Local System!
Gwyneth Llewelyn
Even those who are not exactly absolute beginners to WordPress get often stumped by this error! Thanks to your systematic approach, I managed to track down the ‘error’ in my installation — a corrupt MySQL database, which was anything but apparent, since all tables seem to be in the right place, and checking/optimizing them would give no errors… but clearly there was something very, very wrong.
Dumping the database and re-importing it from a backup did the trick!
Thank you so much
Jeff
Thank you so much for writing this and all of the comments. My site was fixed by replacing the line
/** MySQL database password */
define(‘DB_PASSWORD’, ‘[some random numbers and letters]’);
with
/** MySQL database password */
define(‘DB_PASSWORD’, [my usual wp-admin login password]’);
Not sure if this is correct way to fix it but it did work.
Brett
I went back into my cpanel and re-inputted the same passwords for my 2 of 4 sites that weren’t working and that got them back up and running.
STANISLAUS
I am glad I was able to fix this issue on my site after 4 days. In my own case it said the wp-option table crashed. And I ran the repair, the result showed it was not successful but in actual sense, it was repaired.
After I got that unsuccessful repair message, I initiated a like chat with my service provider but they checked the site and informed me that that my site was alive and I was happy.
Thanks
Jigar Shah
I did tried all the above solution . But nothing worked out for me .
Then I tried looking @apache logs . It was brute force attacks against xmlrpc.php from crashing my WordPress server.
The simple solution that worked for me was to block the IP’s
I found out here
rahul
My wordpress website is running but after some time it shows an error “Establishing database error” then i have to start “service mysqld start” please help me so that this type of error not come again. thanks
Kristaps
Thanks, i tried some things, but in the end, i found out, that my config file, generated random password, when i actually changed it to specific password.
Jill
This was so helpful. This along with people’s comments/experiences would be quite a handy resource or guide. I’ve noticed a few job posts for WordPress error testers and started researching and found this page.
Lothre1
Hello guys. Just because this is the first page of google on this subject I’m complementing the information. In my case i downloaded my wp-config from my prod website. At the end of the file right after “define(‘WP_DEBUG’, false);” i had the following configuration.
define( ‘WP_ALLOW_MULTISITE’, true );
define(‘MULTISITE’, true);
define(‘SUBDOMAIN_INSTALL’, false);
define(‘DOMAIN_CURRENT_SITE’, ‘MYDOMAIN.com’);
define(‘PATH_CURRENT_SITE’, ‘/’);
define(‘SITE_ID_CURRENT_SITE’, 1);
define(‘BLOG_ID_CURRENT_SITE’, 1);
I tried to keep everything as it was but I replaced the mydomain.com with my ip + port.
An hour later I realize that commenting the lines below fixed the problem:
//define(‘MULTISITE’, true);
//define(‘SUBDOMAIN_INSTALL’, false);
//define(‘DOMAIN_CURRENT_SITE’, ‘MYDOMAIN.com’);
Karina Jaramillo
I tried logging in to maintain site but I get this error “Error establishing a database connection”. I also get that error when trying to access wp-admin. Nothing has been changed on our end. Help!
Shirley
Help!
We get an error message on our wordpress for “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?
We’re puzzled how this happened. If you can help, that would be great. Thank you.
jabr
Thanks a lot. you really helped me get my website back to work
SAMUEL
Please, am having problems operating my wordpress dashboard. I have been updating my website through my dashboard for some days now. But just yesterday i began to receive this message…… Fatal error: Cannot call overloaded function for non-object in /home/content/n3pnexwpnas01_data02/34/3566434/html/wp-includes/capabilities.php on line 448……..can anyone tell me what to do or what was the cause of this plssssss.
Sam.
WPBeginner Support
Most likely this issue is caused by a WordPress plugin. Try these WordPress troubleshooting tips to find out the culprit.
It is also possible that the error is caused due to incompatibility with the PHP version. Ask your WordPress hosting provider about the PHP version they are using and see if they can upgrade it. The minimum requirement is PHP version is 5.6 or greater for WordPress.
Administrador
SAMUEL
thanks a lot, i only change the theme and that fix it, i so much appreciate.
WPBeginner Support
Hey Samuel, we are glad you found it helpful Don’t forget to join us on Twitter for more WordPress tips and tutorials.
Elijah
I’m also having the same problem but mine is so terrible because I can’t access my cpanel. Please what should I do?
James R
After looking at this page and thinking “I have no idea what I’m doing”, I just rebooted the server and now everything’s hunky-dory again. Any idea why that was the case?
The only thing I can think of that may have caused it is that I lost my internet connection whilst logging in, but why should it?
Davo C
THANK YOU VERY VERY MUCH. Had a corrupt db user, would have had no clue without this article.
Life saver.
Davo
Sat
When I cloned my MySQL database for setting up a staging site I received the same error. I found out that the MySQL user setup for the WP to access the database needs to be given permission to access the database through the CPanel -> Mysql databases -> add a user to the database option. Otherwise, you will get “Error Establishing a Database Connection” issue when trying to access the admin page through the URL.
Anoop Arya
Error establishing database connection .
I did not work after trying few steps. I thought let’s wipe out all the information. S o reset MySQL deta base . Uploaded new WordPress. Now still it days error establishing database connection .any help and suggestions
Ademide
The second fix worked.
Thank you so much.
Karen
This worked for me, thanks. I moved a five domain multisite with very little trouble. The only tweak was to the table_prefix of the database tables. For some reason mine weren’t prefixed with wpcc- . This was easily edited in wp-config.php. After that I had to do some wrangling with tech support to point the subdomains at the directory where wp was installed. They couldn’t understand why I’d want all of them pointing at the same place. Once they had given in and done as I asked it all worked fine.
Manohar
Thank you for providing this useful informatrion
Emmanuel
Thanks a whole bunch, You really saved my day
WPBeginner Support
You are welcome, don’t forget to follow us on Twitter to get more WordPress tips and tricks.
Administrador
Jeroen Thans
I had the same problem,
i also got after a restore from backup an error: Error establishing a database connection
i checked the database with phpmyadmin under the database for wordpress and then wp_options. And there was no sign of something called siteurl
So i pressed insert -> option_id = 1
Option_name = siteurl
Option_value = http://www.example.com
and added it. Then went back to the website http://www.example.com/wp-admin and i could restore it
hopefully it helps.
Greetz J
JCMill
*Update to my earlier comment*
I tried generating & applying new passwords via cPanel. On 3rd pw change I still got the can’t load the DB error but it allowed me to run the WP Repair.php !
Everything showed as OK.
Now the site is back.
Highly irritating & weird.
WPBeginner Support
Glad you found a solution on your own.
Administrador
JCMill
I just started seeing this error. None of the above works
Also tried renaming the DB, & running the ‘check’ & ‘repair’ options in cPanel = ‘OK’ on all elements.
I can access & edit the DB via phpmyadmin.
wpconfig is byte for byte identical to my original (then working) backup.
The testconnection.php has revealed this –
‘Could not connect: Connection using old (pre-4.1.1) authentication protocol refused (client option ‘secure_auth’ enabled)’
Any ideas appreciated.
Bim
I seem to encounter the error on all other the pages except the main page. The main page loads fine but when i click a link to open another page that’s when I get the database connection error.
Has anyone encountered this? Aren’t all the pages including the main page use the same database connection?
WPBeginner Support
May be you are seeing a cached version of your main page? If not, then contact your web hosting service provider.
Administrador
sohanpurohit
Error 404 error403 same prob,how do repairinp this prob?
djack
it works inmediately after put the ip i’m receiving from the router 192.168.5.8 in my particular case.
localhost, 127.0.0.1 weren’t working.
David Draper
I copied a PHP script I found online called testconnection.php. The script captures and echos the connection error. I ran the script from the command line using ‘php -f testconnection.php’. The error told me that there was a problem reading the mysql.sock file. When I checked the indicated location, there was no mysql.sock file. I created an empty file called mysql.sock in the indicated location using touch and ‘Voila!’ everything has worked fine since.
SriMarv
I had the same problem on my site too, i only changed the line for DN Host to
define(‘DB_HOST’, ‘localhost’);
in the config file, it was pointing to an IP address which happened to be the one for the cpanel.
sudheer
Please fix my issue. I am trying to restore a database backup from mysql server, But restore fails the following error32 will persists.
TITLE: Microsoft SQL Server Management Studio
——————————
Restore of database ‘PROD_SALES_DATABASE’ failed. (Microsoft.SqlServer.Management.RelationalEngineTasks)
——————————
ADDITIONAL INFORMATION:
System.Data.SqlClient.SqlError: The operating system returned the error ’32(The process cannot access the file because it is being used by another process.)’ while attempting ‘RestoreContainer::ValidateTargetForCreation’ on ‘C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\PROD_SALES_DATABASE.mdf’. (Microsoft.SqlServer.SmoExtended)
For help, click:
——————————
BUTTONS:
Barbara
Thank you so much : it worked instantly !!!
Cheers
Barbara