将 vtiger 与 mysql 连接时出现意外错误

Unexpected error connecting vtiger with mysql

我目前在 vtiger 安装向导(第 4 步)中收到此错误。

MySQL Server should be configured with:  
sql_mode = ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

我正在使用共享 PHP 7.2 MySQL 5.7 主机,管理员sql_mode 设置为

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

问题来了
这种行为真的与 sql_mode 设置有关吗?我是否必须联系我的托管服务提供商或是否有替代方案?

连接到新的 mariadb 10 数据库解决了问题。

因此,

MySQL 版本更改为 <5.7 也应该有效。

对于 Ubuntu - 运行 命令:

sudo nano /etc/mysql/my.cnf

在底部添加以下部分:

[mysqld]

sql_mode=ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

运行命令重启MySQL服务:

sudo service mysql restart

您还需要在 phpmyadmin 中将数据库排序规则更改为 utf8_general_ci

完成!

我认为你应该注意 Mysql 正在使用的端口,如果你正在使用 Wampserver,默认情况下新版本首先安装 MariaDB,然后 MySQL 然后 MariaDB 获得端口 3306 Mysql 得到另一个(大部分时间是 3307)。

Vtiger 将始终尝试连接到端口 3306 的数据库(除非您在代码中更改它)。因此,您可以根据需要更改“/bin/mysqlx.x.x/my.cfg”中的 sql-mode,并在 MySQL 控制台中看到它已更改,但 Vtiger 赢了正在尝试连接到它,但连接到 3306。

我在这个问题上花费的时间比它应得的多得多,主要是因为我觉得更改 .cfg 文件中的 "sql-mode" 以更改 "sql_mode" 变量很奇怪并且是问题所在,我不知道为什么 MySQL 会那样做,但这对用户来说一点都不友好。