使用pymysql用python中的数据框替换mysql表时,行大小太大

我正在使用 pymysql to_sql 函数从 python 将表写入 mysql。 我有 1000 行和 200 列。

连接mysql的查询如下:

engine = create_engine("mysql://hostname:password#@localhostname/dbname")
conn = engine.connect()
writing query: df.to_sql('data'.lower(),schema=schema,conn,'replace',index=False)

我收到以下错误:

OperationalError: (pymysql.err.OperationalError) (1118,'Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format,BLOB prefix of 0 bytes is stored inline.')

我已将列 dtypes 更改为字符串,但仍然出现上述错误。请帮我解决这个错误。

我正在尝试像下面那样保存表格。在这里,我提供了几列 创建表查询。我在保存时创建表时出错。 CREATE TABLE dbname.table name( 08:00:00 文字, 08:08:00 文字, 08:16:00 文字, 08:24:00 文字, 08:32:00 文字, 08:40:00 文字, 08:48:00 文字, 08:56:00 文字, 09:04:00 文字, 09:12:00 文字, 09:20:00 文字, 09:28:00 文本)

jnx000 回答:使用pymysql用python中的数据框替换mysql表时,行大小太大

该错误不是由您的代码引起的。是你的Mysql服务器造成的

要解决此问题,请更改您的 mysql 服务器的 my.ini 文本文件中的 innodb_log_file_size。

那么我相信错误会被修复。

innodb_log_file_size = 500M 
innodb_log_buffer_size = 800M
innodb_strict_mode = 0
,

尝试在 my.cnf 中设置以下值并重新启动 mysqld。我希望这可以帮助你。 请参阅以下链接了解更多详情。

 [mysqld]
 max_allowed_packet = 1G
 innodb_log_file_size = 2G
 innodb_log_buffer_size = 512M

Helpful link

本文链接:https://www.f2er.com/787440.html

大家都在问