今天做MySQL实验,导入文件的时候出现了这个错误,之后百度教程,结果一步步导致错误越来越多,实验做了一半,剩下的时间都用来改配置了,刚刚自己摸索了半天终于把错误解决了,于是决定写出自己的第一个博客,希望能给遇到这个错误的朋友节省时间。

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

解决办法

首先在MySQL中输入 show variables like ‘%secure%’;查看 secure-file-priv 当前的值是什么;
有些人是null,有些人是默认路径。null代表不能导出,默认路径代表只能在这个路径导出。我的一开始是默认路径。

mysql> show variables like '%secure%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| secure_auth      | ON    |
| secure_file_priv | NULL  |
+------------------+-------+
2 rows in set (0.00 sec)
mysql> show variables like '%secure%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| secure_auth      | ON    |
| secure_file_priv | C:\ProgramData\MySQL\MySQL Server 8.0\upload  |
+------------------+-------+
2 rows in set (0.00 sec)

如上图所示 MySQL 默认的值为:
secure-file-priv=“C:/ProgramData/MySQL/MySQL Server 8.0/Upload”

#接下来是重点1

找到配置路径修改文件导入地址

我们安装完 MySQL 之后,会自动生成一个名为my.ini的配置文件,该文件记录了 MySQL 的所有默认配置,如端口号、默认字符集、默认存储引擎等等。而这个配置文件,则位于隐藏文件夹ProgramData中,至于如何找到该隐藏文件夹,只需要你打开C盘,在文件夹上面有一个“查看”,点击后找到图实例中的红圈,前面打上对勾就可以了。

mysql 插入数据如果该数据就忽略 mysql导入忽略错误_secure-file-priv


出现了隐藏文件

mysql 插入数据如果该数据就忽略 mysql导入忽略错误_mysql 插入数据如果该数据就忽略_02


按照这个路径点击 C:\Program Files\MySQL\MySQL Server 8.0

就出现了my.ini文件点进去找到 secure-file-priv,像我一样把引号中间的东西删掉就行,记住 连空格都不要,因为空格导致了我后面更多的错误!!! 空路径表示所有文件夹都可导入。

mysql 插入数据如果该数据就忽略 mysql导入忽略错误_MySQL_03


重点2

修改配置后,我们必须关闭 MySQL 然后重新启动。在这里,需要我们注意的是:关闭 MySQL 并不是指简单的用exit命令退出 MySQL 或者关闭 MySQL 窗口,而是关闭 MySQL 服务,重新启动服务。方法:打开我的电脑-右击此电脑-管理

mysql 插入数据如果该数据就忽略 mysql导入忽略错误_MySQL80启动服务后停止_04


找到下面的箭头处,点击,然后在右边找到MySQL80(不同版本后面数字不一样,但是方法一样)

mysql 插入数据如果该数据就忽略 mysql导入忽略错误_重新启动_05


找到MySQL80后右击,找到重新启动,然后重启成功就解决了。重点3

很多人这时候出现MySQL80服务启动后停止。

解决办法:

双击MySQL80,点上面的登录,把登录身份换成本地系统账户,允许服务与桌面交互,然后点下面的应用,再点确定。

mysql 插入数据如果该数据就忽略 mysql导入忽略错误_MySQL_06


如果还是不能启动

返回设置my.ini文件,你的secure-file-priv 那里绝对没设置对,secure-file-priv=‘’,中间不要加空格!
我就是这里卡了,所有教程都没用,小细节害死人!

然后点击MySQL80重新启动就可以了!

问题解决先别走,下面我补一个东西,或许对你有用
我在登录MySQL后,导入文件时,把文件路径复制进去,结果报错

```sql
ERROR 29 (HY000): File 'E:\?人??????\0467\??\0467\0467\03F0???????\077F?\03F5\0373\052D??\???\077F?\03F5\0373\052D??\02B5?????????\077F?\02B5???????\013C?\??\04B5\0531?????????\077F?employee.csv' not found (OS errno 2 - No such file or directory)

MySQL居然没有识别我路径中的中文字符

怎么解决呢?

很简单 你把路径中的" \ " 全部换成“ / ”就可以了!