mysqldump备份脚本不再工作,获取“mysqldump:未知变量'local infle=0'”

jpfvwuh4  于 2021-06-17  发布在  Mysql
关注(0)|答案(2)|浏览(431)

我最近把一台服务器升级到debian9,把mysql升级到最新版本。我有一个简单的备份脚本,在生产站点上执行任何工作之前都会运行该脚本,但这次在运行脚本时,我遇到以下问题:

mysqldump: unknown variable 'local-infile=0'

这是我的剧本。发生什么事?


# !/bin/bash

# [skipping commentary]

SITE=prod

# Set the directory that the Drupal root is IN, no trailing slashes

DROOT=[website_root]

# Set the directory for storing backups, no trailing slashes

BUD=/$DROOT/notes/backups

# Don't edit; End of defining variables

echo Doing a full back up...
echo Prepare to enter MySQL password...

# tar -czf $BUD/$SITE-files-$(date +'%Y%m%d%H%M%S').tgz  $DROOT/docroot

mysqldump -u mysql_user -p drupal > $BUD/$SITE-drupal-$(date +'%Y%m%d%H%M%S').sql
mysqldump -u mysql_user -p civicrm > $BUD/$SITE-civicrm-$(date +'%Y%m%d%H%M%S').sql
ls -lh $BUD
pwd
echo Finished with backups...

mysql版本10.1.37-mariadb-0+deb9u1 debian 9.6
编辑:当我使用正确的权限ssh并运行mysqldump时,我会遇到同样的问题。最奇怪的是,运行类似过程的cron正在按命令备份我的数据库。

xfb7svmp

xfb7svmp1#

解决此问题的最佳方法是将变量重命名为: loose-local-infile=1 这将允许mysqldump仅仅抛出一个警告,而不是致命错误。
如果您希望立即加载datainfle功能,那么注解掉变量的建议不是一个选项,出于安全原因,mysql 8+要求您同时为服务器(mysqld)和客户端设置这个变量。如果不向本地infile添加“loose-”前缀,配置中的[client]变量分组会阻塞mysqldump。

webghufk

webghufk2#

似乎您安装的新版本是在不支持的情况下编译的 local-infile 参数。由于包管理系统(通常)保留当前的配置文件,所以您可以尝试在中查找此参数 my.ini 归档并注解。
此参数管理 LOAD DATA LOCAL 功能。但似乎这有一些潜在的安全问题(这里有更多)

相关问题