При установлении соединения с базой данных MySQL я получаю следующую ошибку

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

При поиске, я узнал, что нам нужно изменить 2 параметра в my.ini или my.cnf.

Я использую MySQL версии 8.0.11, и у него нет этого файла.

Поэтому я изменил эти параметры с помощью команд SQL:
Обратите внимание, что имя и продолжительность - это имя столбца в таблице.

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;

Следовательно, моя таблица выглядит так

Table

После этого я перезапустил сервер MySQL, но все еще получаю вышеуказанную ошибку.

Пожалуйста, обратите внимание, что я развертываю свое приложение в tomcat и выполняю вызов API rest, который подключится к базе данных. При подключении к базе данных я получаю вышеуказанную ошибку.

13
sachin sarangamath 22 Май 2018 в 21:20

12 ответов

Лучший ответ

Использование интерфейса MySQLWorkbench:

Первый клик в вашем соединении ->

enter image description here

После нажмите в файле опций

enter image description here

И измените значения набора символов сервера и сервера сопоставления на значения ниже:

enter image description here

Обязательно перезапустите сервер MySQL, открыв службы и перезапустив сервер MySQL.

9
Asad Jivani 24 Авг 2018 в 02:36

С версией 8 изменение набора символов по умолчанию. Когда вы добавляете свой набор символов к URL-адресу соединения, например? Character Encoding = latin1, это может сработать.

5
Fredy Fischer 23 Май 2018 в 17:11

Похоже, вам нужно скачать последний разъем JAR:

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

3
Arlo Guthrie 22 Май 2018 в 18:32

Это из-за версии mysql-разъема, т.е. Версия установки My-sql и версия зависимости не совпадают.

Использовать ту же версию для MyS

2
Avinash Khadsan 9 Окт 2018 в 17:40

Используйте ту же версию MySQL, а также MySQL-коннектор. Если вы используете tomcat, сохраните коннектор в папке lib на tomcat.

1
lalit kumar Mehta 11 Апр 2019 в 16:21

Вы можете добавить ?characterEncoding=latin1" после вашей строки URL, как это например:

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

Это может сработать.

1
gehbiszumeis 12 Июн 2019 в 08:34

Просто скачайте последнюю версию файла hibernate jar с
https://www.javatpoint.com/src/hb/hibernatejar.zip
и файл jar коннектора MySQL от
https://dev.mysql.com/downloads/connector/j/5.1. HTML

1
Anand Sonwane 18 Сен 2019 в 10:56

Добавьте файл jar зависимостей коннектора в файл POM после перекрестной проверки с вашим сервером MySql версии 8.0.x, добавьте эту зависимость, это работало для меня mysqlmysql-connector-java 8.0.11

0
Varghese George 29 Янв 2019 в 08:03

Я использую springboot, liquibase, mysql

Я получил решение: Эта ошибка происходит только из-за соединителя mysql в зависимости и сервера mysql, который вы устанавливаете, не совпадают (в моем случае я использую соединитель mysql более низкой версии и последний сервер mysql). Так что просто измените область действия коннектора mysql на runtime:

maven

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>

градиент

dependencies {
//... other dependencies
runtimeOnly group:'mysql', name:'mysql-connector-java'
}

Или, если проблема еще не решена, используйте ту же версию или соседнюю версию для сервера MySQL и соединителя MySQL.

0
ankit 27 Июн 2019 в 06:47

Добавление следующего в строку подключения должно работать:

jdbc:mysql://localhost/yourDB?characterEncoding=latin1;
0
fhcimolin 30 Июл 2019 в 21:01

При настройке CharacterEnconding будут работать опции useUnicode

JDBC : MySQL : // локальный : 3306 / имя_бд characterEncoding = utf8 & UseSSL = ложь и useUnicode = истина »

0
Jesintha Chandrasekar 2 Мар 2020 в 10:08

Совместимая версия mysql-connector-java должна требоваться согласно установленному MySQL Server ---> Для моего установленного MySQL Server 8.0 я загружаю mysql-connector-java-8.0.20 в папку SoapUi / bin / ext или путь сборки проекта в затмение. меня устраивает!!

0
ASHUTOSH GUPTA 11 Май 2020 в 08:01