java.sql.SQLException: неизвестный начальный индекс набора символов '255', полученный от сервера для соединителя 8.0.11 - PullRequest
0 голосов
/ 22 мая 2018

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

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

После поиска в Google я узнал, что нам нужно изменить 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 и выполняю вызов rest API, который подключится к базе данных.При подключении к базе данных я получаю вышеуказанную ошибку.

Ответы [ 9 ]

0 голосов
/ 27 июня 2019

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

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

maven

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

gradle

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

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

0 голосов
/ 30 июля 2019

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

jdbc:mysql://localhost/yourDB?characterEncoding=latin1;
0 голосов
/ 11 апреля 2019

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

0 голосов
/ 12 июня 2019

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

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

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

0 голосов
/ 29 января 2019

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

0 голосов
/ 09 октября 2018

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

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

0 голосов
/ 14 августа 2018

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

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

enter image description here

После щелчка в файле параметров

enter image description here

И измените значения сервера наборов символов и сервера сопоставления на следующие значения:

enter image description here

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

0 голосов
/ 23 мая 2018

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

0 голосов
/ 22 мая 2018

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...