Error de WordPress al establecer una conexión de base de datos MySQL IIS10 [duplicate]

5 minutos de lectura

avatar de usuario
Adán

Estoy tratando de configurar WordPress con MySQL en mi máquina local con Windows 10. Estoy recibiendo este error:

Error al establecer una conexión con la base de datos Esto significa que la información de nombre de usuario y contraseña en su archivo wp-config.php es incorrecta o que no podemos contactar al servidor de la base de datos en localhost:3307. Esto podría significar que el servidor de la base de datos de su host está inactivo.

Ya verifiqué aquí: Error al establecer una conexión de base de datos en wordpress

  1. ¿Estás seguro de que tienes el nombre de usuario y la contraseña correctos?
    Sí, puedo iniciar sesión en SQL Server Workbench con el root credenciales, por lo que está funcionando
  2. ¿Está seguro de que ha escrito el nombre de host correcto?
    Eso es lo que estoy intentando a continuación.
  3. ¿Está seguro de que el servidor de la base de datos se está ejecutando?
    Sí, verifiqué MySQL Workbench y se está ejecutando

Ejecuté esta consulta select @@hostname que me da: DESKTOP-CFT2ESY

Intenté agregar a wp-config.php (no todos al mismo tiempo):

define('DB_HOST', 'localhost:3307');
define('DB_HOST', 'localhost:8899');
define('DB_HOST', 'localhost');
define('DB_HOST', 'DESKTOP-CFT2ESY');
define('DB_HOST', '127.0.0.1');

Ninguno de estos funciona, solo cambia la cadena de nombre de host en el mensaje de error anterior.

Luego agregué:
define('WP_ALLOW_REPAIR', true);
define('DB_CHARSET', 'utf8');

Pero eso no cambia el mensaje de error en absoluto.

ACTUALIZAR 1

corrí SHOW GLOBAL VARIABLES LIKE 'PORT'; y mi servidor se ejecuta en el puerto 3306. En WorkBench veo que mi base de datos está funcionando. También agregué todos los privilegios para el usuario. root en mi esquema de base de datos. mi usuario Limit to hosts matching se establece en localhost.

ACTUALIZAR 2

Luego ejecuté este código PHP que encontré aquí (acabo de cambiar la contraseña del usuario raíz a la contraseña de mi usuario raíz):

<?php

$host="localhost"; 

$root="root"; 
$root_password="rootpass"; 

$user="newuser";
$pass="newpass";
$db="newdb"; 

    try {
        $dbh = new PDO("mysql:host=$host", $root, $root_password);

        $dbh->exec("CREATE DATABASE `$db`;
                CREATE USER '$user'@'localhost' IDENTIFIED BY '$pass';
                GRANT ALL ON `$db`.* TO '$user'@'localhost';
                FLUSH PRIVILEGES;") 
        or die(print_r($dbh->errorInfo(), true));

    } catch (PDOException $e) {
        die("DB ERROR: ". $e->getMessage());
    }
?>

Pero esto arroja el error:

ERROR DE LA BASE DE DATOS: ESTADO SQL[HY000] [2054] El servidor envió un conjunto de caracteres desconocido para el cliente. Por favor, informe a los desarrolladores.

ACTUALIZAR 3

Luego ejecuté la consulta: SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name = "myDB"; que regresa utf8por lo que el mismo conjunto de caracteres como se define en mi wp-config.php.

ACTUALIZAR 4

Lo comprobé aquí. acabo de tener un mysqlrouter.conf.sample en mi C:\Program Files\MySQL\MySQL Server 8.0\etc carpeta, así que agregué una my.cnf archivo con:

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
init-connect="SET NAMES utf8"
character-set-server = utf8

Reinicié el servicio de Windows MySQL pero el error sigue siendo el mismo.

¿Qué más puedo probar?

  • Tu host no parece ser el problema… déjalo en manos de localhost. Asegúrese de que DB_NAME, DB_USER, DB_PASSWORD estén bien definidos. Tal vez un tipo en uno de ellos?

    –Patrick Simard

    30 de diciembre de 2018 a las 16:41


  • Sigue sobrescribiendo esos, por lo que solo el último tiene efecto.

    – Funk cuarenta y nueve

    30 de diciembre de 2018 a las 16:47

  • Lol, estoy bastante seguro de que solo estaba enumerando lo que intentó.

    –Patrick Simard

    30 de diciembre de 2018 a las 16:49

  • @PatrickSimard: De hecho, estaba enumerando lo que probé :-), también volví a verificar el nombre/usuario/contraseña y literalmente los copié en el banco de trabajo para probar y funciona allí, por lo que no hay errores tipográficos. ¿Qué más podría ser? Estoy ejecutando MySQL como un servicio de Windows si eso importa.

    – Adán

    31 de diciembre de 2018 a las 15:26

  • esta ayuda: stackoverflow.com/questions/43437490/… ?

    – TreyBake

    2 de enero de 2019 a las 14:43

Como comentó @treyBake, consulte aquí.

Básicamente, MySQL 8 cambió el conjunto de caracteres predeterminado a utfmb4 y ahora hay errores con algunos clientes. Bajé a MySQL Server 5.6 y el problema desapareció.

avatar de usuario
Eriks Clotins

Busque aquí la posible solución:

PDO::__construct(): El servidor envió un juego de caracteres (255) desconocido para el cliente. Por favor, informe a los desarrolladores.

En esencia, debe asegurarse de que tanto la base de datos como el script usen el mismo conjunto de caracteres, preferiblemente utf-8

ACTUALIZACIÓN: Ver también esto:http://php.net/manual/en/mysqli.set-charset.php

  • Sugiero dejar wp solo e intentar solucionar el problema con el script independiente. ¿Has comprobado tu juego de caracteres de conexión MySQL?

    – Eriks Klotins

    2 de enero de 2019 a las 14:40

  • Eso es lo que probé en la actualización 3, ¿verdad? Ya dice utf8.

    – Adán

    2 de enero de 2019 a las 14:41

  • No estoy seguro de cómo maneja exactamente wp-config los conjuntos de caracteres. Es por eso que sugerí trabajar con el script independiente donde tienes control total. Es importante destacar que el juego de caracteres del script, el juego de caracteres de la conexión y el juego de caracteres de la base de datos tienen que ser los mismos para que las cosas funcionen.

    – Eriks Klotins

    2 de enero de 2019 a las 14:44

¿Ha sido útil esta solución?