Piwik upgrading to MySQL 5.7+ SQLSTATE[HY000]: General error: 2006 MySQL server has gone away - caused by plugin Actions

Piwik upgrading to MySQL 5.7+ SQLSTATE[HY000]: General error: 2006 MySQL server has gone away - caused by plugin Actions

在以前工作的 Piwik 上将 MySQL 升级到 5.7 已经损坏了它。大多数仪表板小部件现在出现错误:

Referrer Websites SQLSTATE[HY000]: General error: 2006 MySQL server has gone away - caused by plugin Actions Widget Overview SQLSTATE[HY000]: General error: 2006 MySQL server has gone away - caused by plugin Actions

根据常见问题解答,我增加了以下参数:

wait_timeout=100000
max_allowed_packet=128M

重启等。甚至尝试按照另一种解决方案重新导入数据库并删除字符集。感谢您的帮助。

这在我原来的 github post https://github.com/piwik/piwik/issues/9419 中已解决。我 post 在这里回答是为了帮助其他人:解决方案最终是字符集问题和文件上传脚本问题。

  1. MySQL 5.7.5+ 现在对这个设置变得严格了。默认情况下,这是一个 programdata windows 目录,但 piwik 需要以下内容(取决于您的环境):

    secure-file-priv="xxxxxxxxxxxxx/piwik/tmp/assets"

如果没有设置 - 真正的错误是:

General error: 1290 The MySQL server is running with the --secure-file-priv option so it cannot execute this statement: LOAD DATA INFILE xxxxxxxxxxxx

当然我们只能看到 2006 消失的错误......

  1. MySQL > 5.7+ 现在默认安装一个 utf8 字符集 - 根据我最终得到的跟踪,piwik 似乎对此有一些问题 -(是的,无效字符实际上是一个 '"x '?):

SQLSTATE[HY000]: General error: 1300 Invalid utf8 character string: '"x':

在 Mysql 中,我能够将默认的 "schema" piwik 数据库更改为 "latin1",就像变魔术一样,一切又恢复正常了。这使我假设将 latin1 数据库转换为 utf8 可能会遇到与我类似的问题。我知道字符集是一个雷区,但我不希望看到从 latin1 到 utf8 数据集的问题(因为它们在理论上应该是一个子集,但嘿,这仍然是可能的)——相反,是的,当然应该肯定是问题。