通过MySQL命令更改并显示“客户端”的max_allowed_数据包

通过MySQL命令更改并显示“客户端”的max_allowed_数据包,mysql,database,Mysql,Database,我完全理解关于如何设置和显示最大允许数据包值有很多问题 设置:设置全局最大允许数据包=数值 SHOW:显示变量,如“max_allowed_packet” 但这个变量是服务器端允许的最大数据包数 如中所述: 客户端和服务器都有自己的max_allowed_数据包 变量,所以如果要处理大数据包,必须增加此值 客户端和服务器中的变量 我可以通过MySQL命令设置并显示客户端的max_allowed_数据包,比如show VARIABLES,比如XXX吗 使用此选项启动mysql可以正常工作 shel

我完全理解关于如何设置和显示最大允许数据包值有很多问题

设置:设置全局最大允许数据包=数值

SHOW:显示变量,如“max_allowed_packet”

但这个变量是服务器端允许的最大数据包数

如中所述:

客户端和服务器都有自己的max_allowed_数据包 变量,所以如果要处理大数据包,必须增加此值 客户端和服务器中的变量

我可以通过MySQL命令设置并显示客户端的max_allowed_数据包,比如show VARIABLES,比如XXX吗

使用此选项启动mysql可以正常工作

shell>mysql-允许的最大数据包数=32M


但我正在寻找命令行。

否。服务器无法强制客户端增加该值,该值基本上定义了客户端希望使用的缓冲区内存量,例如,因为客户端可能没有足够的内存。实际上有点遗憾的是,我要发送多少和我可以检索多少这两个不同的值具有相同的名称。实际上,我之所以关心它,是因为我试图优化每个查询的插入次数以提高性能。但我担心,如果数据包超过客户端最大允许数据包,它可能会失败并关闭连接。我的计划是,动态设置每个查询的插入次数,并取决于从显示变量(如“最大允许数据包”)检索的最大允许数据包;在运行时。这是传统的还是更好的主意?a您的客户端设置并不反映您可以发送什么,而只反映您可以接收什么,因此对于插入,您可以使用服务器告诉您的变量b,而单个插入确实很慢,添加更多的行会增加吞吐量/s,这将达到峰值,添加太多行实际上会再次降低速度。峰值可能会有所不同,但预计在500米的区域比10k的区域更大。对于正常的行大小,这通常不会与允许的最大行大小数据包冲突,而对于较大的行大小,峰值会降低,尽管速度不够快,不会产生冲突。虽然这些命令可能会解决问题,但如何以及为什么解决问题将真正有助于提高帖子的质量,而且可能会得到更多的支持票。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请在回答中添加解释,并说明适用的限制和假设。
Ubuntu 18.04 and mysql 5.7.29

1) vi /etc/mysql/mysql.conf.d/mysqld.cnf
# make the following change:
max_allowed_packet = 1G

2) service mysql restart

3) sudo mysql -u <username> -p

4) mysql> show variables like 'max_allowed_packet';