Saltar al contenido

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

Hola, encontramos la solución a tu interrogante, desplázate y la encontrarás un poco más abajo.

Solución:

MySQL 8 cambió el conjunto de caracteres predeterminado a utf8mb4. Pero algunos clientes no conocen este conjunto de caracteres. Por lo tanto, cuando el servidor informa su conjunto de caracteres predeterminado al cliente y el cliente no sabe qué significa el servidor, arroja este error.

Consulte también https://bugs.mysql.com/bug.php?id=71606

Ese error está en contra de MySQL Connector/C++ por lo que está afectando más que solo PHP.

De acuerdo, lo hice funcionar cambiando el juego de caracteres a utf8, para que sea compatible con clientes no actualizados. Agregué esto a /etc/my.cnf y reinicié mysqld:

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8


[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8

Encontré esta configuración en una respuesta de 2010: ¿Cambiar el conjunto de caracteres predeterminado de MySQL a UTF-8 en my.cnf?

La respuesta aceptada me salvó (¡gracias, Bill!), pero encontré otro problema relacionado, solo quería brindar algunos detalles sobre mi experiencia:

Después de actualizar a MySQL 8.0.11, experimenté el mismo problema que el OP cuando usaba PHP mysqli_connect() función. En mi directorio MySQL (en mi caso, usr/local/mysql), creé el my.cnf archivo, agregó el contenido en la respuesta aceptada, luego reinició el servidor MySQL. Sin embargo, esto produjo un nuevo error:

mysqli_connect(): The server requested authentication method unknown to the client [caching_sha2_password]

Agregué la línea default_authentication_plugin = mysql_native_passwordasi que my.cnf ahora parecía:

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8
default_authentication_plugin = mysql_native_password

y yo estaba bueno para ir!

Para referencia adicional: https://github.com/laradock/laradock/issues/1392

Mi caso fue que estaba usando RDS (mysql db verion 8) de AWS y estaba conectando mi aplicación a través de EC2 (mi código php 5.6 estaba en EC2).

Aquí, en este caso, dado que es RDS, no hay my.cnf, los parámetros son mantenidos por PARAMETER Group of AWS. Consulte: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html

entonces lo que hice fue:

  1. Creó un nuevo grupo de parámetros y luego los editó.

  2. Buscó todos los parámetros del juego de caracteres. Estos están en blanco por defecto. edítelos individualmente y seleccione utf8 de la lista desplegable.

cliente_juego_de_caracteres, conexión_juego_de_caracteres, base_de_datos_de_juego_de_caracteres, servidor_de_juego_de_caracteres

  1. AHORRAR

Y luego, lo más importante, instancia de RDS reiniciada.

Esto resolvió mi problema y la conexión de php5.6 a mysql 8.x funcionó muy bien.

espero que esto ayude.

Por favor, vea esta imagen para una mejor comprensión. ingrese la descripción de la imagen aquí

Te mostramos las comentarios y valoraciones de los usuarios

Recuerda algo, que tienes la capacidad de añadir una tasación correcta .

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *