UPD:这个问题不同于MySQL: Enable LOAD DATA LOCAL INFILE

这个问题与本地运行有关,与Travis本地构建无关,使用这些选项,一切都像魔咒一样工作,没有问题,但在Travis中运行,也要求MySQL不是MySQL客户端,而是编程-所以我不能设置任何客户端选项,这让我的情况不同.

我正在try 设置Travis Build-但遇到了错误

MySQLdb.OperationalError: (2068, 'LOAD DATA LOCAL INFILE file request rejected due to restrictions on access.')

我try 了local_infile选项,就像我在本地系统上所做的那样:

mysql -u root -h localhost -e 'SET GLOBAL local_infile=1'

(我在安装前部分、安装部分try 了此选项)

但这仍然没有帮助.

我完全被困住了,不知道该往哪里走.感谢任何人的帮助.

我的Travis配置如下:

 language: python
os: linux
dist: jammy

services:
  - mysql

python:
  - "3.10.5"

env:
  - TESTENV=test

before_install:
  - mysql -u root -h localhost -e 'GRANT ALL PRIVILEGES ON *.* TO "travis"@"%"'
install:
  - pip3 install --upgrade pip
  - pip3 install --upgrade setuptools wheel
  - mysql -u root -h localhost -e 'SET GLOBAL local_infile=1'
  - pip3 install -r requirements.txt
  - if [[ "$TESTENV" != "docs" ]]; then pip3 install -r requirements-test.txt; fi
  - pip3 install -e .

script:
  - if [[ "$TESTENV" == "test" ]]; then coverage run -m pytest --server=mysql://travis@127.0.0.1:3306/ src/tests; fi
  - if [[ "$TESTENV" == "test" ]]; then coverage report -m; fi

推荐答案

MySQL DSN可能接受local_infile=1作为参数.示例:

coverage run -m pytest --server=mysql://travis@127.0.0.1:3306/?local_infile=1 src/tests

我不能确认这一点,因为我安装的coveragepytest版本不能识别--server选项.我找不到任何有关那面旗帜的文件.所以我不知道你到底在用什么.

此外,对local_infile选项的支持可能取决于您使用的数据库驱动程序,例如mysql.connector、pymysql等.

Mysql相关问答推荐

SQL计算不同的列并返回所有行

MySQL添加表会将&@@&qot;追加到表名

我如何才能从MySQL过程中获取LARAVEL端的数据?

透视从另一个表添加信息的查询

使用Check查看过go 两个月是否完成了IRM Meetup

获取最大登录应用程序用户数以及何时

生成直到 10 的平方数序列

错误1075:表定义不正确;只能有一个自动列,它必须定义为一个键(使用 gorm 和 mysql)

如何计算每行的剩余金额?

在表中找到最大值,然后分别显示SQL组和每个SQL组中的最大值计数

为什么这个查询需要超过 5 秒才能运行?

即使使用索引,MySQL 计数和按查询分组也很慢

MySQL中的会话客户端是什么

提高mysql导入速度

从 MYSQL 查询中计算列的平均值

MySQL解释计划中 Select 优化的表的含义

在连接条件上使用 IS NULL 或 IS NOT NULL - 理论问题

我可以在单个 Amazon RDS 实例上创建多少个数据库

在mysql中复制没有数据的数据库 struct (带有空表)

SQL WHERE 列 = 一切