楼主: 我是小趴菜
619 1

[数据挖掘工具] Error Code: 1290. The MySQL server is running with the --secure-file-priv option [推广有奖]

  • 0关注
  • 4粉丝

教授

35%

还不是VIP/贵宾

-

威望
0
论坛币
29650 个
通用积分
380.5350
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
7150 点
帖子
670
精华
0
在线时间
37 小时
注册时间
2022-8-30
最后登录
2023-4-4

楼主
我是小趴菜 发表于 2023-3-16 15:34:20 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

My SQL 中:Error Code: 1290. The MySQL server is running with the --secure-file-priv option so it cannot execute this statement



这是因为在mysql中如果想要导入外部格式的数据文件,比如说csv文件,就需要先把这些文件放到mysql认为的安全路径下,才能上传成功。这也是出于对用户的保护。

如果想要成功读取外部文件,就有两种思路。

一种思路是将csv文件放到默认的数据安全路径下。

第二种思路就是将数据安全路径参数设定为空,允许导入任意路径下的文件。


接下来我们先讲第一种思路

如何查看你的安全路径是哪呢?

可以按照如下的步骤操作一下:

1.点击开始,启动mysql程序

2.接下来查看mysql默认的安全路径

输入show variables like 'secure_file_priv';

然后回车,注意这里的分号不要忘记,因为这是mysql内部语法。

得到的结果如下图:

可以看到安全路径如图所示,把要导入的csv文件放到这个路径下就可以成功导入了。


然后我们再看第二种思路

1.我们修改配置文件

我们的配置文件是一个名字为my.ini的文件,这里面有关于众多参数的定义

用记事本方式或者notepad++打开C:\ProgramData\MySQL\MySQL Server 8.0下面的my.ini文件,我们搜索secure(注意不要搜secure_file_priv,否则你搜不到),搜索结果如下:

# Secure File Priv.

secure-file-priv="C:/ProgramData/MySQL/MySQL Server 8.0/Uploads"



这里在我们的搜索结果里,我看到只有这一处出现了给secure-file-priv赋值的情况,其他地方没有出现,因此我们只需要改这一个地方的值,肯定正确,我们往上翻看,会发现这这个赋值是出现在[mysqld]的下面,如果你的这个赋值在文中多次出现,并且有的赋值在[mysqld]下面,有的不在,那请你修改[mysqld]下面的secure-file-priv值。

我这里情况就比较简单了,我们进行如下修改然后保存这个文件,并且关闭这个文件。

secure-file-priv=""


注意这里仅仅是修改了这个文本文件,但这个修改还没有真正起作用,如果你用show 命令去看变量secure_file_priv的值,还是以前的路径值,如何让我们这个修改生效呢。

首先打开我们的mysql服务列表,然后查看那个mysql服务是与这个my.ini文件关联的,也就是看哪个mysql服务是根据这个my.ini文件进行配置的。

到了mysql服务列表页面我们选择一个mysql服务,然后右键点击选择属性,可以看到这个服务的关联ini文件。

2.找到目前启动的mysql服务


如何查看你当前的电脑启动了哪些服务,请参考我其他帖子。https://www.cda.cn/discuss/post/details/602f6cd4352c47611b03f1be

可以看到目前启动的是MySQL80服务,我们看下这个服务关联的ini文件是哪个

可执行文件的路径取值如下:

"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" MySQL80

从而可以看出这个mysql80服务对应的ini配置文件,就是我们前面修改的my.ini配置文件。

3.关闭mysql(这个都知道呀),停止mysql服务(这个可以看我另一个帖子)https://www.cda.cn/discuss/post/details/602f57f74aa67c5afd277182

可以看到MySQL80服务已经停止了

4.重启mysql服务(这样才能让我们重新配置的参数生效,具体如何操作可以看我另一个帖子),重启mysql。

发现通过执行net start MySQL80命令无法启动MySQL服务。

考虑到这一系列怪事都是出现在修改my.ini文件之后我们把我们的my.ini文件用notepad++打开,将编码转为ansi,然后保存关闭。

然后重新执行。如何用notepad对文件重新编码,可以参考我这个链接。https://www.cda.cn/discuss/post/details/5f8fd2ea7700f37ebe89e80b

这次MySQL80服务终于启动成功了

我们再打开workbench,重新执行一下那会执行出现错误的代码

可以看到这次再执行就没有错误提示了。




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:running Option Secure Server Serve

沙发
三重虫 发表于 2023-3-20 17:40:16

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-5 18:41