Al establecer la conexión a una base de datos MySQL, obtengo el siguiente error

java.sql.SQLException: Unknown initial character set index '255' received from 
server. Initial client character set can be forced via the 'characterEncoding' 
property.

Al buscar en Google, llegué a saber que necesitamos modificar 2 parámetros en my.ini o my.cnf.

Estoy usando MySQL versión 8.0.11 y no tiene este archivo.

Por lo tanto, modifiqué estos parámetros usando los comandos SQL:
Tenga en cuenta que el nombre y la duración son el nombre de la columna en la tabla.

ALTER TABLE courses MODIFY name VARCHAR(50) COLLATE utf8_unicode_ci;    
ALTER TABLE courses MODIFY duration VARCHAR(50) COLLATE utf8_unicode_ci;

ALTER TABLE courses MODIFY name VARCHAR(50) CHARACTER SET utf8;
ALTER TABLE courses MODIFY duration VARCHAR(50) CHARACTER SET utf8;

Por eso mi mesa se ve así

Table

Después de esto, reinicié el servidor MySQL, pero sigo recibiendo el error anterior.

Tenga en cuenta que estoy implementando mi aplicación en tomcat y ejecutando la llamada de API rest que se conectará a la base de datos. Mientras me conecto a la base de datos, obtengo el error anterior.

6
sachin sarangamath 22 may. 2018 a las 21:20

10 respuestas

La mejor respuesta

Usando la interfaz MySQLWorkbench:

Primero haga clic en su conexión ->

enter image description here

Después de hacer clic en el archivo de opciones

enter image description here

Y cambie los valores del servidor de juego de caracteres y del servidor de intercalación a los valores siguientes:

enter image description here

Asegúrese de reiniciar el servidor mysql abriendo servicios y reiniciando el servidor mysql.

9
Asad Jivani 24 ago. 2018 a las 02:36

Con la versión 8, el cambio de juego de caracteres predeterminado. Cuando agrega su juego de caracteres a la URL de conexión como? Character Encoding = latin1 podría funcionar.

5
Fredy Fischer 23 may. 2018 a las 17:11

Se debe a la versión del conector mysql, i, e. La versión de instalación de My-sql y la versión de dependencia no coincidían.

Use la misma versión para myS

2
Avinash Khadsan 9 oct. 2018 a las 17:40

Simplemente descargue la última versión del archivo jar hibernate desde
https://www.javatpoint.com/src/hb/hibernatejar.zip
y el archivo jar del conector MySQL de
https://dev.mysql.com/downloads/connector/j/5.1. html

1
Anand Sonwane 18 sep. 2019 a las 10:56

Agregar lo siguiente a su cadena de conexión debería funcionar:

jdbc:mysql://localhost/yourDB?characterEncoding=latin1;
0
fhcimolin 30 jul. 2019 a las 21:01

Se debe requerir una versión compatible de mysql-connector-java según el servidor MySQL instalado ---> Para mi servidor MySQL 8.0 instalado descargo mysql-connector-java-8.0.20 en la carpeta SoapUi / bin / ext o construyo la ruta del proyecto en eclipse. ¡¡esto funciona para mi!!

0
ASHUTOSH GUPTA 11 may. 2020 a las 08:01

Al configurar CharacterEnconding, las opciones useUnicode funcionarán

Jdbc: mysql: // localhost: 3306 / dbname? characterEncoding = utf8 & useSSL = false & useUnicode = true "

0
Jesintha Chandrasekar 2 mar. 2020 a las 10:08

Puede agregar ?characterEncoding=latin1" después de su cadena de URL como esta por ejemplo:

"jdbc:mysql://localhost/yourDB?characterEncoding=latin1";

Podría funcionar.

1
gehbiszumeis 12 jun. 2019 a las 08:34

Use la misma versión de MySQL y mysql-connector. Si está utilizando tomcat, mantenga el conector en la carpeta lib de tomcat.

1
lalit kumar Mehta 11 abr. 2019 a las 16:21

Parece que necesitas descargar el último conector j jar:

http://chillyfacts.com/java-sql-sqlexception-unknown-initial-character-set-index-224-received-server/

3
Arlo Guthrie 22 may. 2018 a las 18:32