mysql 服务器从 5.5 更新至 5.7 后 pure-ftpd-mysql 和 postfix 停止工作

mysql 服务器从 5.5 更新至 5.7 后 pure-ftpd-mysql 和 postfix 停止工作

我有 debian 7.8 并使用 postfix、带有 roundcube 的 mysql 和 pure-ftpd-mysql。自 2014 年以来,所有功能均可与 mysql Ver 14.14 Distrib 5.5.40 完美配合。

我尝试将 mysql 更新到 5.7,以便在海量数据库上使用新的完整索引搜索 mysql 功能,但失败了。

将 mysql 服务器更新至 5.7 后,phpmyadmin 运行良好,但我必须添加:

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

在conf中为了删除默认值错误。我的备份和表升级成功,我的所有网站都运行良好。

但是我在使用 postfix 和 pureftpd 时遇到了很大的问题。

即使 pureftpd 的所有数据库都在那里并且正常工作,也无法连接到 ftp。我检查了所有的配置,一切似乎都很好。

我可以成功连接到 roundcube 并查看我的旧电子邮件,但我无法发送或接收任何电子邮件。我的日志中收到此错误:

postfix/cleanup[27758]: warning: mysql:/etc/postfix/mysql_virtual_alias_maps.cf is unavailable. unsupported dictionary type: mysql

我尝试了很多方法,但都不起作用,最后我使用完整备份恢复了整个系统。现在一切都恢复正常,100% 完美,但使用的是 5.5 mysql。

也许我在此过程中做错了什么。我做了什么:

对我的系统、sql数据库和conf进行完整备份

apt-get remove mysql-server mysql-client mysql-common

apt-get autoremove

apt-get autoclean

apt-get install libaio1

dpkg -i mysql-apt-config_0.8.3-1_all.deb

apt-get update

apt-get intall mysql-server

service mysql start

恢复 mysql 数据库并升级表

谢谢您的帮助!

答案1

检查输出postconf -m并查看是否列出了 mysql。如果没有,则使用:

sudo apt-get install postfix-mysql

这将为 postfix 添加 mysql 支持。

答案2

回答这个问题主要是因为它在谷歌搜索中排名很高:问题在于 sql 模式,特别是“STRICT_TRANS_TABLES”条目似乎会导致 mysql 5.7(或更高版本?)中的 postfix 虚拟查找出现问题。编辑您的 sql 模式以排除此问题,一切都会好起来的……

现在,至于为什么......我不清楚......我有一个理论,这是由于一列中的日期如 000-000-000 等,但更新所有这些后问题仍然存在。

编辑:问题在于表名“virtual_alias_domains”的选择。这似乎以保留字开头,因此必须完全引用。将我的查询更改为在表名周围使用反引号解决了该问题,即 select blah from virtual_alias_domainsetc

相关内容