背景:我在 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:
这件事发生在一夜之间,除了通过每日 cron 作业对 Apache http 服务器进行优雅重启外,系统没有发生任何更新或其他更改。
非常奇怪的是,当我使用与 Web 服务器相同的数据库用户登录 mysql 数据库并将查询剪切并粘贴到 mysql 中时,有用。区别仅在于 UNIX 用户:在 Web 服务器的情况下,为用户 www-data,在登录我的情况下(作为普通用户,未使用我的 sudo 权限)。
问题登录前,mysql 是否对 UNIX 用户敏感?如果是,什么会影响 mysql 的行为(一些环境变量?)?交互式和非交互式之间有区别吗?
与同一潜在问题的其他方面相关的问题:
Ubuntu 18.04 上 mysql 的大小限制是多少以及如何增加它们?
编辑:排除 AppArmor 作为潜在的罪魁祸首,禁用 AppArmor 并重新启动 Apache2 不会改变行为。
EDIT2:用户的问题是具有mysql_native_password
插件,而不是auth_socket
。