在建立到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上,我知道我们需要修改my.ini或my.cnf中的2个参数。
我使用的是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中部署我的应用程序,并运行restapi调用,该调用将连接到数据库。当连接到数据库时,我发现上面的错误。
14条答案
按热度按时间szqfcxe21#
我正在使用
springboot
,liquibase
,mysql
我得到了解决方案:这个错误的发生仅仅是因为依赖关系中的mysql连接器和您安装的mysql服务器不匹配(在我的例子中,我使用的是较低版本的mysql连接器和最新的mysql服务器)。所以只要把mysql连接器的作用域改为runtime
:Maven
grad尔
或者如果问题还没有解决,那么对mysql服务器和mysql连接器使用相同的版本或相近的版本。
4ktjp1zp2#
向连接字符串中添加以下内容应该可以:
vs91vp4v3#
根据已安装的mysql server,应要求兼容版本的mysql connector java--->对于已安装的mysql server 8.0,我在soapui/bin/ext文件夹中下载mysql-connector-java-8.0.20或在eclipse中下载项目的构建路径。对我有用!!
llmtgqce4#
您可以添加
?characterEncoding=latin1"
在您的url字符串之后,例如:可能有用。
bpzcxfmw5#
设置字符编码,使用Unicode选项将起作用
jdbc:mysql://localhost:3306/dbname?characterencoding=utf8&usessl=false&useunicode=true"
aamkag616#
使用mysql connector java的5.1.44版本。
osh3o9ms7#
使用相同版本的mysql和mysql connector。如果您使用的是tomcat,那么将连接器保存在tomcat的lib文件夹中。
blmhpbnm8#
在版本8中,默认字符集已更改。当您将字符集添加到连接url时,如?characterencoding=latin1,它可能会起作用。
5f0d552i9#
听起来你需要下载最新的连接器jjar:
http://chillyfacts.com/java-sql-sqlexception-unknown-initial-character-set-index-224-received-server/
knsnq2tg10#
使用mysqlworkbench界面:
第一次点击连接->
单击选项文件后
并将字符集服务器和排序规则服务器值更改为以下值:
请确保通过打开服务并重新启动mysql服务器来重新启动mysql服务器。
iih3973s11#
只需从下载最新版本的hibernate jar文件
https://www.javatpoint.com/src/hb/hibernatejar.zip
以及
https://dev.mysql.com/downloads/connector/j/5.1.html
5tmbdcev12#
这是因为mysql连接器版本,即。我的sql安装版本和依赖项版本不匹配。
对mys使用相同的版本
kokeuurv13#
在与mysql服务器8.0.x版本交叉检查后,在pom文件中添加连接器依赖项jar文件添加此依赖项mysqlmysql connector java8.0.11
mnowg1ta14#
我修复它的方法是:将characterencoding=utf8添加到jdbc连接字符串的末尾
例如。
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/photo_app?" + "user=root&password=root&characterEncoding=utf8");