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文件放到默认的数据安全路径下;第二种思路就是将数据安全路径参数设定为空,允许导入任意路径下的文件。如何查看你的安全路径是哪呢?可以按照如下的步骤操作一下:输入show variables like 'secure_file_priv';然后回车,注意这里的分号不要忘记,因为这是mysql内部语法。可以看到安全路径如图所示,把要导入的csv文件放到这个路径下就可以成功导入了。我们的配置文件是一个名字为my.ini的文件,这里面有关于众多参数的定义用记事本方式或者notepad++打开C:\ProgramData\MySQL\MySQL Server 8.0下面的my.ini文件,我们搜索secure(注意不要搜secure_file_priv,否则你搜不到),搜索结果如下:secure-file-priv="C:/ProgramData/MySQL/MySQL Server 8.0/Uploads"这里在我们的搜索结果里,我看到只有这一处出现了给secure-file-priv赋值的情况,其他地方没有出现,因此我们只需要改这一个地方的值,肯定正确,我们往上翻看,会发现这这个赋值是出现在[mysqld]的下面,如果你的这个赋值在文中多次出现,并且有的赋值在[mysqld]下面,有的不在,那请你修改[mysqld]下面的secure-file-priv值。我这里情况就比较简单了,我们进行如下修改然后保存这个文件,并且关闭这个文件。注意这里仅仅是修改了这个文本文件,但这个修改还没有真正起作用,如果你用show 命令去看变量secure_file_priv的值,还是以前的路径值,如何让我们这个修改生效呢。首先打开我们的mysql服务列表,然后查看那个mysql服务是与这个my.ini文件关联的,也就是看哪个mysql服务是根据这个my.ini文件进行配置的。到了mysql服务列表页面我们选择一个mysql服务,然后右键点击选择属性,可以看到这个服务的关联ini文件。如何查看你当前的电脑启动了哪些服务,请参考我其他帖子。https://www.cda.cn/discuss/post/details/602f6cd4352c47611b03f1be可以看到目前启动的是MySQL8.0服务,我们看下这个服务关联的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/602f57f74aa67c5afd2771824.重启mysql服务(这样才能让我们重新配置的参数生效,具体如何操作可以看我另一个帖子),重启mysql。发现通过执行net start MySQL80命令无法启动MySQL服务。考虑到这一系列怪事都是出现在修改my.ini文件之后我们把我们的my.ini文件用notepad++打开,将编码转为ansi,然后保存关闭。然后重新执行。如何用notepad对文件重新编码,可以参考我这个链接。https://www.cda.cn/discuss/post/details/5f8fd2ea7700f37ebe89e80b我们再打开workbench,重新执行一下那会执行出现错误的代码
了解更多数据分析知识、与更多优秀的人一起进群交流请扫码
群码过期或者群满请添加客服微信 CDAshujufenxi 后拉您进群