如何使用 MYSQL Docker 容器编辑 secure_file_priv

how to edit secure_file_priv using MYSQL Docker container

我在 Docker 上创建了 MySQL 节点集群(2 个数据节点、1 个管理节点和 1 个 MySQL 服务器节点),遵循此 link 中的说明:

https://mysqlmed.wordpress.com/2017/09/04/mysql-cluster-in-docker-quick-step-by-step

然后我创建了一个 MySQL table 来使用命令导入一个 csv 文件(名为 daily.csv):

LOAD DATA INFILE 'C:/Users/Utilisateur/Desktop/daily.csv' INTO TABLE daily IGNORE 1 LINES;

我得到了错误:

ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement.

当我加上LOAD DATA LOCAL INFILE ..

我收到这个错误:

ERROR 2 (HY000): File 'C:/Users/Utilisateur/Desktop/daily.csv' not found (Errcode: 2 - No such file or directory)

当我使用以下命令检查我的 secure-file-priv 时:

SELECT @@global.secure_file_priv

我得到以下路径:/var/lib/mysql-files/ 但我不知道如何访问它以复制我的 csv 文件,甚至不知道如何访问 my.ini MySQL 配置文件将变量 secure-file-priv 更改为 NULL,正如我所见,这是获得访问我的文件的权限的另一种解决方案。

因为我正在使用 Docker,所以我不知道如何访问 MySQL 容器配置文件。

我尝试了很多方法,但没有发现任何问题。你能帮我解决这个问题吗?我会很高兴,因为我花了很多时间试图修复它??

我按照这些说明进行操作,但不知道将变量 secure_file_priv 更改为 NULL 的文件 /etc/mysql/my.cnf 在哪里:

在您的情况下,将本地目录挂载到 mysql (/var/lib/mysql-files/) 所期望的目录中可能就足够了。

尝试使用额外的 -v 参数启动容器,如下所示:

docker run -d -v C:/Users/Utilisateur/Desktop/:/var/lib/mysql-files --net=cluster --name=mysql1 --ip=192.168.0.10 -e MYSQL_RANDOM_ROOT_PASSWORD=true mysql/mysql-cluster mysqld

或将文件复制到文件夹中:

docker cp C:/Users/Utilisateur/Desktop/daily.csv mysql1:/var/lib/mysql-files

假设您的容器名称是 mysql1,如您提供的 link。