如何使用 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。
我在 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。