-
1505121235 数据老手Lv5
发表于2019-11-18 18:15
Cause: com.esen.jdbc.pool.impl.mysql.MysqlPooledSQLException: Packet for query is too large (5099474 > 4194304). You can change this value on the server by setting the max_allowed_packet' variable.
问题原因:批量插入数据量过大
解决办法:修改 my.ini 加上 max_allowed_packet =67108864,67108864=64M
默认大小4194304,也就是4M
修改完成之后要重启mysql服务,如果通过命令行修改就不用重启mysql服务。
命令修改:(即时生效)
正确写法:
设置为500M
mysql> set global max_allowed_packet = 500*1024*1024;
或者
mysql> set global max_allowed_packet = 524288000;
查看mysql的max_allowed_packet大小,运行
show VARIABLES like '%max_allowed_packet%';
2. 设置数据库不区分大小写
在/etc/my.ini中添加参数:
lower_case_table_names=1
3.恢复服务器报错Cause: com.esen.jdbc.pool.impl.mysql.MysqlPooledSQLException: The size of BLOB/TEXT data inserted in one transaction is greater than 10% of redo log size. Increase the redo log size using innodb_log_file_size.
问题原因:数据库表中某些字段太大,如longtext类型的数据,数据库缓冲区过小导致的。
解决方案:在mysql的/etc/my.ini(如果没有可以将mysql的.ini文件复制到/etc下面),文件中加上参数:
innodb_log_file_size=640M
max_allowed_packet = 64M
-----------------------------------------------------------------------------------------------------------------------------------------------------------
以上内容抛转引玉,有更多常见mysql数据库使用场景报错和解决方案,欢迎楼下跟帖讨论。
4个回答
mysql数据库,部署报错,specified key was too long
把数据库的字符集从utf8mb4改成了utf8
-
1505121235 数据老手Lv5
mysql数据库链接测试失败
测试失败,无法获得数据库链接.
java.sql.SQLException: Access denied for user 'root'@'WIN-PPSQN4RPHP9' (using password: YES)
Access denied for user 'root'@'WIN-PPSQN4RPHP9' (using password: YES)
解决办法:
mysql针对用户的授权还需要针对机器
grant all privileges on *.* to 'root'@'自己的机器名或者ip' identified by '密码'
这个sql在用户能连上去的环境上执行,ip不行的话换机器名试
原因:
MySQL 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用。所以为了安全,其他ip的设备需要连root,就需要授权
-
1505121235 数据老手Lv5
本帖最后由 1505121235 于 2020-4-17 14:25 编辑
使用mysql作为系统库部署