【问题标题】:ALTER TABLE - Got an error writing communication packetsALTER TABLE - 写入通信数据包时出错
【发布时间】:2019-07-03 04:49:51
【问题描述】:

当我尝试执行查询时:

ALTER TABLE table ADD COLUMN column TEXT NOT NULL

连接处于无限循环(锁定表)并在错误日志中给出此错误:

[警告] 与 db: 'unconnected' user: 'root' host: 'localhost' 的连接 1475 中止(写入通信数据包时出错)

所以,我尝试按照某些主题中的建议将 max_allowed_packet 增加到 10000M,它只执行一个查询。下一个(不久之后)再次阻止了一切。这就是my.ini 的样子:

[mysqld]
datadir=C:/Program Files/MariaDB 10.3/data
port=3306
innodb_buffer_pool_size=2033M
max_allowed_packet=10000M
[client]
port=3306
plugin-dir=C:/Program Files/MariaDB 10.3/lib/plugin

我在 Windows 环境中使用 MariaDB,并尝试使用 pymysql (Python) 执行查询:

cur.execute("ALTER TABLE table ADD COLUMN column TEXT NOT NULL")

有人知道这个问题的解决方案吗?

【问题讨论】:

  • 以防万一:您并没有真正将您的专栏命名为column,对吧?
  • 不,我实际上是在为感兴趣的人查询后使用commit() 解决的。这很奇怪,因为其他查询是自动提交的。

标签: python mysql mariadb pymysql


【解决方案1】:

max_allowed_packet 的限制只有 1G。使用该值时是否出现错误?

Reference

同时,在

ALTER TABLE table ADD COLUMN column TEXT NOT NULL

希望表名不是table,列名不是column

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-06
    • 2011-02-24
    • 1970-01-01
    • 2011-06-26
    • 1970-01-01
    • 2022-10-05
    • 2019-01-22
    • 1970-01-01
    相关资源
    最近更新 更多