新加坡服务器

18.2.6 Packet too large错误

当一个MySQL客户或mysqld服务器得到一个比max_allowed_packet个字节长的包,它发出一个Packet too large错误并终止连接。
如果你正在使用mysql客户,你可以通过用mysql –set-variable=max_allowed_packet=8M指定一个更大的缓冲区来启动客户程序。
如果你正在使用不允许你指定最大包大小的其他客户(例如 DBI),你需要在你启动服务器时设置包大小。你可以使用mysqld的命令行选项设置max_allowed_packet为一个更大的尺寸。例如,如果你正期望将一个全长的BLOB存入一张表中,你将需要用–set-variable=max_allowed_packet=24M选项来启动服务器。
18.2.7 The table is full错误
这个错误发生在内存临时表变得比tmp_table_size字节大时。为了避免这个问题,你可以使用mysqld的-O tmp_table_size=#选项来增加临时表的大小,或在你发出有疑问的查询之前使用SQL选项SQL_BIG_TABLES。见7.25 SET OPTION句法。
你也可以使用–big-tables选项启动mysqld。这与为所有查询使用SQL_BIG_TABLES完全相同。
18.2.8 Commands out of sync in client错误
如果你在你的客户代码中得到Commands out of sync; You can’t run this command now,你正在以错误的次序调用客户函数!
这可能发生,例如,如果你正在使用mysql_use_result()并且在你已经调用了mysql_free_result()之前试图执行新查询。如果你在mysql_use_result()或mysql_store_result()之间试图执行返回数据的2个查询,它也可能发生。