是否有某种 Ubuntu 升级会导致这种行为?

是否有某种 Ubuntu 升级会导致这种行为?

背景:我在 Ubuntu 18.04 LTS 下的 Apache2 网络服务器上运行 cqpweb,这是一个用 PHP 编写并连接到 mysql 数据库的语料库查询接口。Ubuntu 服务器是从头开始设置的,目前没有对 mysql 或 php 进行手动配置。

cqpweb 运行顺利,除非它开始抛出如下错误消息:

 A MySQL query did not run successfully!

 Original query: LOAD DATA LOCAL INFILE '/data2/cqpweb/cach/tab_dist_fycel9oplk' INTO TABLE `db_dist_g2f3ndxf40` FIELDS ESCAPED BY '' /* from User: knappen |
 Function: create_db() | 2019-Apr-25 11:23:01 */

 Error # 0:

这发生在一夜之间。类似的查询在 4 月 24 日 17:55(当地时间,柏林时区)肯定有效,但在错误消息中给出的时间却中断了。

问题:是否存在某种自动更新或升级会导致这种行为。

附加信息:

php --version
PHP 7.2.17-0ubuntu0.18.04.1 (cli) (built: Apr 18 2019 14:12:38) ( NTS )

mysql --version
mysql  Ver 14.14 Distrib 5.7.25, for Linux (x86_64) using  EditLine wrapper

检查一些相关的日志文件:

/var/log/dkpg.log:2019-04-24 14:47:54 至 2019-04-26 06:26:23 之间无条目

/var/log/apt/history.log:2019-04-24 14:47:54 至 2019-04-26 06:26:23 之间无条目

/var/log/unattended-upgrades/unattended-upgrades.log

2019-04-25 06:24:53,776 INFO Initial blacklisted packages: 
2019-04-25 06:24:53,778 INFO Initial whitelisted packages: 
2019-04-25 06:24:53,778 INFO Starting unattended upgrades script
2019-04-25 06:24:53,778 INFO Allowed origins are: o=Ubuntu,a=bionic, o=Ubuntu,a=bionic-security, o=UbuntuESM,a=bionic
2019-04-25 06:24:57,138 INFO No packages found that can be upgraded unattended and no pending auto-removals

更多发现:

表单 /var/log/apache2/error.log:

[Thu Apr 25 06:25:03.544172 2019] [mpm_prefork:notice] [pid 1244] AH00171: Graceful restart requested, doing restart

这次重启是由于 cron 作业执行脚本所致/etc/cron.daily/apache2。因此可能会发生影响较早安装但在关键时间间隔内夜间生效的 apache2 的更改。

相关问题,排除尺寸限制等其他潜在原因:Ubuntu 18.04 上 mysql 的大小限制是多少以及如何增加它们?

编辑:由于每天都有 cron 作业重新启动 Apache2,因此以下是history.log2019-04-24 06:25:00 至 2019-04-25 06:25:00 之间的一些更改

Start-Date: 2019-04-24  06:52:06
Commandline: /usr/bin/unattended-upgrade
Upgrade: distro-info-data:amd64 (0.37ubuntu0.3, 0.37ubuntu0.4)
End-Date: 2019-04-24  06:52:07

Start-Date: 2019-04-24  14:46:57
Commandline: apt-get upgrade
Requested-By: knappen (1000)
Upgrade: php7.2-common:amd64 (7.2.15-0ubuntu0.18.04.2, 7.2.17-0ubuntu0.18.04.1), php7.2-cli:amd64 (7.2.15-0ubuntu0.18.04.2, 7.2.17-0ubuntu0.18.04.1), ureadahead:amd64 (0.100.0-20, 0.100.0-21), linux-libc-dev:amd64 (4.15.0-47.50, 4.15.0-48.51), libsystemd0:amd64 (237-3ubuntu10.20, 237-3ubuntu10.21), php7.2-mysql:amd64 (7.2.15-0ubuntu0.18.04.2, 7.2.17-0ubuntu0.18.04.1), language-selector-common:amd64 (0.188.1, 0.188.2), udev:amd64 (237-3ubuntu10.20, 237-3ubuntu10.21), plymouth-theme-ubuntu-text:amd64 (0.9.3-1ubuntu7.18.04.1, 0.9.3-1ubuntu7.18.04.2), php7.2-json:amd64 (7.2.15-0ubuntu0.18.04.2, 7.2.17-0ubuntu0.18.04.1), php7.2-opcache:amd64 (7.2.15-0ubuntu0.18.04.2, 7.2.17-0ubuntu0.18.04.1), linux-signed-generic:amd64 (4.15.0.47.49, 4.15.0.48.50), libudev1:amd64 (237-3ubuntu10.20, 237-3ubuntu10.21), libplymouth4:amd64 (0.9.3-1ubuntu7.18.04.1, 0.9.3-1ubuntu7.18.04.2), python3-distupgrade:amd64 (1:18.04.30, 1:18.04.31), ubuntu-release-upgrader-core:amd64 (1:18.04.30, 1:18.04.31), systemd-sysv:amd64 (237-3ubuntu10.20, 237-3ubuntu10.21), php7.2-readline:amd64 (7.2.15-0ubuntu0.18.04.2, 7.2.17-0ubuntu0.18.04.1), libpam-systemd:amd64 (237-3ubuntu10.20, 237-3ubuntu10.21), systemd:amd64 (237-3ubuntu10.20, 237-3ubuntu10.21), libnss-systemd:amd64 (237-3ubuntu10.20, 237-3ubuntu10.21), plymouth:amd64 (0.9.3-1ubuntu7.18.04.1, 0.9.3-1ubuntu7.18.04.2), libapache2-mod-php7.2:amd64 (7.2.15-0ubuntu0.18.04.2, 7.2.17-0ubuntu0.18.04.1)
End-Date: 2019-04-24  14:47:54

答案1

在 cwb 邮件列表的 Stefan Evert 和 Andrew Hardie 的帮助下,找到了导致这种奇怪行为的原因,并通过在以下配置中设置解决了这个问题/etc/php/7.2/apache2/php.ini

; Allow accessing, from PHP's perspective, local files with LOAD DATA statements
; http://php.net/mysqli.allow_local_infile
mysqli.allow_local_infile = On

4 月 18 日,从 PHP 7.2.15 过渡到 PHP 7.2.17 时,默认设置被悄悄更改,并推送到 Ubuntu 发行版。

更多详细信息和一些 cqpweb 内部替代方案可参见CWB 邮件列表中的这篇文章

补充说明:PHP 即将推出的版本将针对所述情况抛出错误,并显示一条错误消息,请参阅PHP::错误#77956

相关内容