将vtiger与mysql连接时发生意外错误

时间:2018-10-24 22:45:55

标签: php mysql vtiger

我目前在 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设置有关吗?我需要联系我的托管服务提供商吗?还是有替代方法?

3 个答案:

答案 0 :(得分:1)

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

将注释中所述的将 MySQL 版本更改为 <5.7 也应有效。

答案 1 :(得分:0)

对于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

完成!

答案 2 :(得分:0)

我认为您应该注意Mysql正在使用的端口,如果您使用的是Wampserver,则默认情况下,新版本将首先安装MariaDB,第二个安装MySQL,因此MariaDB获得端口3306,而Mysql获得另一个端口(大多数时间3307)。

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

我在这个问题上花了更多的时间而不是应有的时间,主要是因为我觉得更改.cfg文件中的“ sql-mode”以更改“ sql_mode”变量是很奇怪的,也是问题所在,idk为什么MySQL会这样做这样,但这根本不是用户友好的。