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用户有任何主机都可以连接的权限
评论区