我有一个问题,在mysql的结果,我的mgento 2网站崩溃总是。请看到这个错误。我怎么能解决这个问题。网站是在AWS托管。
[2021-07-19 15:42:32] main.ERROR: SQLSTATE[08004] [1040] Too many connections [] []
[2021-07-19 15:42:34] main.ERROR: SQLSTATE[08004] [1040] Too many connections [] []
[2021-07-19 15:42:54] main.WARNING: Memory size allocated for the temporary table is more than 20% of innodb_buffer_pool_size. Please update innodb_buffer_pool_size or decrease batch size value (which decreases memory usages for the temporary table). Current batch size: 100000; Allocated memory size: 500000000 bytes; InnoDB buffer pool size: 134217728 bytes. [] []
[2021-07-19 15:43:05] main.WARNING: Memory size allocated for the temporary table is more than 20% of innodb_buffer_pool_size. Please update innodb_buffer_pool_size or decrease batch size value (which decreases memory usages for the temporary table). Current batch size: 100000; Allocated memory size: 500000000 bytes; InnoDB buffer pool size: 134217728 bytes. [] []
2条答案
按热度按时间ssm49v7z1#
Magento可以通过使用内存引擎而不是InnoDB来增加内存以处理大量数据。该算法增加了MySQL参数max_heap_table_size和tmp_table_size的内存值。
当为临时表分配的内存大小将大于innodb_buffer_pool_size的20%时,错误消息将写入Magento日志。
要防止出现此错误消息,您需要更新catalog_category_product(Category Products)索引器的默认批处理配置,因为“当前批处理大小:10万”。
注意:减少batchRowsCount可解决此错误。
n53p2ov02#
要确定最佳
innodb_buffer_pool_size
,请运行@RolandoMySQLDBA编写的this query这将基于所有InnoDB数据和索引为您提供RIBPS(建议的InnoDB缓冲池大小),并增加60%。
在我的示例中,该值为
1
(GB),因此您有两个选项:A)使用配置文件配置InnoDB缓冲池大小
1.编辑
my.cnf
(MySQL)或mariadb-server.cnf
(MariaDB),并在[mysqld]
部分下添加一行,例如:1.重新启动MySQL数据库
B)联机配置InnoDB缓冲池大小
1
GB等于1073741824
字节。以root
身份登录时运行以下命令:通过运行以下命令确认新值: