Cause: java.sql.SQLException: Incorrect string value
环境
os:centos7
mysql:
错误日志
8-07 14:03:58.728 DEBUG [c.j.modules.sys.dao.AreaDao.insert ] - ==> Parameters: 0(String), system(String), 2020-08-07 14:03:58.699(Timestamp), system(String), 2020-08-07 14:03:58.699(Timestamp), 0(String), 0,(String), 370000(Integer), 0000370000,(String), 1(String), 0(Integer), 山东省(String), 370000(String), 山东省(String), 1(String)
08-07 14:03:58.922 ERROR [com.jeesite.modules.sys.db.InitCoreData] - entity: class com.jeesite.modules.sys.entity.Area
org.springframework.jdbc.UncategorizedSQLException:
### Error updating database. Cause: java.sql.SQLException: Incorrect string value: '\xE5\xB1\xB1\xE4\xB8\x9C...' for column 'tree_names' at row 1
### The error may involve com.jeesite.modules.sys.dao.AreaDao.insert-Inline
### The error occurred while setting parameters
### SQL: INSERT INTO `js_sys_area` (`status`, `create_by`, `create_date`, `update_by`, `update_date`, `parent_code`, `parent_codes`, `tree_sort`, `tree_sorts`, `tree_leaf`, `tree_level`, `tree_names`, `area_code`, `area_name`, `area_type`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
### Cause: java.sql.SQLException: Incorrect string value: '\xE5\xB1\xB1\xE4\xB8\x9C...' for column 'tree_names' at row 1
; uncategorized SQLException; SQL state [HY000]; error code [1366]; Incorrect string value: '\xE5\xB1\xB1\xE4\xB8\x9C...' for column 'tree_names' at row 1; nested exception is java.sql.SQLException: Incorrect string value: '\xE5\xB1\xB1\xE4\xB8\x9C...' for column 'tree_names' at row 1
解决方案
第一步:修改mysql的配置文件/etc/mysql/mysql.conf.d/mysqld.cnf 添加如下内容:
注意:是添加内容
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-client-handshake=FALSE
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
第二步:重启数据库
linux输入命令:docker restart 容器名
第三步:修改数据库的编码为utf8mb4
在改动的数据库那,执行查询语句:alter database jeesite CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
如果还不行,修改具体表的编码 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci