java – 从服务器收到的未知初始字符集索引“255”
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 从服务器收到的未知初始字符集索引“255”,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2771字,纯文字阅读大概需要4分钟。
内容图文
![java – 从服务器收到的未知初始字符集索引“255”](/upload/InfoBanner/zyjiaocheng/718/5abd078c52e04272a23ce6d352c619cc.jpg)
在尝试创建HibernateSession应用程序失败时出现异常:
Caused by: java.sql.SQLException: Unknown initial character set index
‘255’ received from server. Initial client character set can be forced
via the ‘characterEncoding’ property. at
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055) at
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) at
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
我找到了一个可能的解决方案here,但遗憾的是我没有访问DB服务器,因此我无法更改其配置.
所以请注意这不是重复,因为为DB服务器更改提供了建议的解决方案,在我的情况下我没有这样的访问权限.
是否有机会在客户端修复此问题?您可以在下面找到我创建会话的pom.xml文件和java代码.
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtil {
private static final SessionFactory sessionFactory = buildSessionFactory();
private static SessionFactory buildSessionFactory() {
try {
// Create the SessionFactory from hibernate.cfg.xml
return new Configuration().configure().buildSessionFactory();
} catch (Throwable ex) {
// Make sure you log the exception, as it might be swallowed
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
public static void shutdown() {
// Close caches and connection pools
getSessionFactory().close();
}
}
还有我的pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
...
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.5.Final</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.9.12</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
解决方法:
一些进一步的调查表明,问题正是在MySQL v.8.0中进行的更改:
Character Set Support
Important Change: The default character set has
changed from latin1 to utf8mb4. These system variables are affected:The default value of the character_set_server and
character_set_database system variables has changed from latin1 to
utf8mb4.The default value of the collation_server and
collation_database system variables has changed from latin1_swedish_ci
to utf8mb4_0900_ai_ci.
所有这些更改都已在新版本的mysql-connector-java中处理,并且无需配置MySQL.因此从5.1.6更改为5.1.44解决了问题:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.44</version>
</dependency>
内容总结
以上是互联网集市为您收集整理的java – 从服务器收到的未知初始字符集索引“255”全部内容,希望文章能够帮你解决java – 从服务器收到的未知初始字符集索引“255”所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。