目 录CONTENT

文章目录

java程序连接数据库Data too long for column 'xxx' at row xx

xlong
2024-03-24 / 0 评论 / 0 点赞 / 16 阅读 / 2163 字 / 正在检测是否收录...

Data too long for column 'content' at row xx

seata server服务导入sql: Data too long for column 'content' at row 1

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'lock_value' at row 1

方法一:修改字段长度

在网上查阅资料后发现字段长度设置不够,找到对应的字段,发现设置的为varchar类型长度20

mysql> desc distributed_lock;
+------------+-------------+------+-----+---------+-------+
| Field      | Type        | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| lock_key   | char(20)    | NO   | PRI | NULL    |       |
| lock_value | varchar(20) | NO   |     | NULL    |       |
| expire     | bigint      | YES  |     | NULL    |       |
+------------+-------------+------+-----+---------+-------+
​
# 修改长度为50,问题解决。
ALTER TABLE `seataserver`.`distributed_lock` MODIFY COLUMN `lock_value` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL AFTER `lock_key`;


方法二: 修改默认字符集

另一种可能的问题:

系统默认使用的字符集不是utf-8,比如在mysql 8.0 容器中导入数据时,就可能会出现这个问题:

设置字符集为utf8即可正常导入:

java程序连接MySQL: Communications link failure

原因:根本就没有连接上数据库,连接超时、链接无效,ssl设置不对等问题。

解决:

1、确定url链接、用户名、密码没有问题
2、确定用户名有权限,比如root用户有任何主机都可以连接的权限

0

评论区