打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
MySQL 关于安全路径的报错处理

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
可以看到目前启动的是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/602f57f74aa67c5afd277182
可以看到MySQL8.0服务已经停止了
4.重启mysql服务(这样才能让我们重新配置的参数生效,具体如何操作可以看我另一个帖子),重启mysql。
发现通过执行net start MySQL80命令无法启动MySQL服务。
考虑到这一系列怪事都是出现在修改my.ini文件之后我们把我们的my.ini文件用notepad++打开,将编码转为ansi,然后保存关闭。
然后重新执行。如何用notepad对文件重新编码,可以参考我这个链接。https://www.cda.cn/discuss/post/details/5f8fd2ea7700f37ebe89e80b
这次MySQL80服务终于启动成功了
我们再打开workbench,重新执行一下那会执行出现错误的代码
可以看到这次再执行就没有错误提示了。

了解更多数据分析知识、与更多优秀的人一起进群交流请扫码

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
mysql 堆注入写shell
Windows下不能启动mysql服务
分享一下我在mysql5.6+mysql8数据库安装过程中的一些坑!
MySQL5.7安装详细教程
Win7环境下安装mysql报错1045:Access denied for user root@localhost错误解决方法
MySQL 5.6 (Win7 64位)下载、安装与配置图文教程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服