美文网首页
mysql配置问题:writing one row to the

mysql配置问题:writing one row to the

作者: 东南枝下 | 来源:发表于2021-08-10 09:56 被阅读0次

    mysql数据库插表报错

    图片.png

    在mysql导入数据时,报错信息如下:

    error 1534 (HY000): writing one row to the row-based binary log failed

    这是因为内存不足导致的binlog cache size不够不能写入binlog,导致语句无法执行

    在配置文件中调整binlog_cache_size和max_binlog_cache_size参数的值,改大一点

    binlog_cache_size = 128M(根据实际情况调大)
    max_binlog_cache_size = 512M (根据实际情况调大)

    binlog_cache_size参数:

    binlog_cache_size

    0.前提:

    服务器配置了 log-bin

    1.含义:

    为每个session 分配的内存,在事务过程中用来存储二进制日志的缓存。

    2.作用:

    提高记录bin-log的效率

    3.属性:

    参数:global

    默认值:32768 -- 即 32K

    范围:4096 .. 4294967295

    4.大小选择:

    a.根据业务:

    没有什么大事务,dml也不是很频繁的情况下可以设置小一点,如果事务大而且多,dml操作也频繁,则可以适当的调大一点。

    前者建议是1048576 --1M

    后者建议是: 2097152 -- 4194304 即 2--4M

    b.根据参数:

    show global status like 'bin%';

    上述语句我们可以得到当前 数据库binlog_cache_size的使用情况

    +-----------------------+-------+
    | Variable_name | Value |
    +-----------------------+-------+
    | Binlog_cache_disk_use | ???
    | Binlog_cache_use | ?????

    Binlog_cache_disk_use表示因为我们binlog_cache_size设计的内存不足导致缓存二进制日志用到了临时文件的次数

    Binlog_cache_use 表示 用binlog_cache_size缓存的次数

    当对应的Binlog_cache_disk_use 值比较大的时候 我们可以考虑适当的调高 binlog_cache_size 对应的值

    4.注意点:

    a.max_binlog_cache_size 表示的是binlog 能够使用的最大cache 内存大小

    当我们执行多语句事务的时候 所有session的使用的内存超过max_binlog_cache_size的值时

    就会报错:“Multi-statement transaction required more than 'max_binlog_cache_size' bytes ofstorage”

    b.设置太大的话,会比较消耗内存资源;设置太小又会使用到临时文件即disk

    5.配置

    a.配置文件设置my.cnf

    binlog_cache_size = 1M

    b. set global binlog_cache_size = 1048576;
    ————————————————
    版权声明:本文为CSDN博主「oO寒枫Oo」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/lxpbs8851/article/details/38455223

    关于log-bin日志

    基本定义:二进制日志,也成为二进制日志,记录对数据发生或潜在发生更改的SQL语句,并以二进制的形式保存在磁盘中;

    作用:可以用来查看数据库的变更历史(具体的时间点所有的SQL操作)、数据库增量备份和恢复(增量备份和基于时间点的恢复)、MySQL的复制(主主数据库的复制、主从数据库的复制)

    文件位置:默认存放位置为数据库文件所在目录下

    文件的命名方式: 名称为hostname-bin.xxxxx (重启mysql一次将会自动生成一个新的binlog)

    状态的查看:mysql> show variables like '%log_bin%';


    参考/转载:https://www.cnblogs.com/Christine-ting/p/10528613.html
    参考/转载:https://blog.csdn.net/lxpbs8851/article/details/38455223
    参考/转载:https://blog.csdn.net/cuichunchi/article/details/78857897

    相关文章

      网友评论

          本文标题:mysql配置问题:writing one row to the

          本文链接:https://www.haomeiwen.com/subject/uidxbltx.html