WINDOWS MYSQL导出文件时,报错,错误码1290

MYSQL5.7以上的版本

用insert * from table_name  into outfile 'dir'时,提示图书错误

此时先通过这个命令查看一下  

show VARIABLES like '%secure%'

如果secure_file_priv是NULL

则出现错误的原因是因为MYSQL5.7增加了新权限,secure_file_priv默认为NULL,限制了数据的导入导出。

此时我们可以先停止MYSQL,net stop mysql;

然后在命令行下用  mysqld --secure-file-priv=dir_name;

//dir_name,可以是一个具体的目录,比如D:/,此时导入导出操作可以再D盘及其目录下行(如果需要保存在名字为汉字的文件夹中,则需要自己设置字符集,不然找不到目录)(如果要保存的文件名字为汉字,也要设置字符集,不然保存的文件名字为乱码)

//也可以是空(不是NULL),空是什么都不加,此时,所有的地方都可以进行(如果用到汉字,操作同上面括号)

//导入导出操作

此时,该命令窗口卡住,可以再打开另一个命令窗口,启用mysql ,net start mysql;启用时可能会提示启动失败,这个不用担心,已经可以使用了,此时已经可以登录使用了。只不过开启或者关闭服务都提示失败。等下次重启就正常了。

上一下MYSQL 操作手册的说明:已经翻译成了中文版(原网址为:https://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_secure_file_priv)


secure_file_priv

命令行格式 --secure-file-priv=dir_name
系统变量 的名字 secure_file_priv
变量作用域 全球
动态变量 没有
允许的值(< = 5.6.33) 类型 字符串
默认的 empty
有效值 empty
dirname
允许的值(> = 5.6.34) 类型 字符串
默认的 platform specific
有效值 empty
dirname
NULL

该变量用于限制数据导入和导出操作的影响,比如那些执行的 LOAD DATA SELECT ... INTO OUTFILE语句和 LOAD_FILE()函数。这些操作是允许只有用户 FILE特权。

secure_file_priv可能是设置如下:

  • 如果空,变量没有影响。这不是一个安全的设置。

  • 如果设置一个目录的名称,服务器限制进出口业务工作只有该目录中的文件。该目录必须存在;服务器将不创建它。

  • 如果设置为 NULL,服务器禁用进出口操作。MySQL 5.6.34这个值是允许的。

在MySQL 5.6.34之前,这个变量默认是空的。5.6.34,默认值是特定于平台和依赖的价值 INSTALL_LAYOUT CMake选项,如下表所示。指定默认的secure_file_priv值显式地从源,如果您正在构建使用 INSTALL_SECURE_FILE_PRIVDIR CMake选择。

INSTALL_LAYOUT价值 默认的 secure_file_priv价值
STANDALONE, WIN NULL
DEB, RPM, SLES, SVR4 /var/lib/mysql-files
否则 mysql-files CMAKE_INSTALL_PREFIX价值

设置默认的 secure_file_priv libmysqld嵌入式服务器,使用 INSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR CMake选择。这个选项的默认值 NULL.

MySQL 5.6.34,服务器检查的价值 secure_file_priv在启动和写一个警告的错误日志,如果值是不安全的。一个非NULL值被认为是不安全的,如果它是空的,或值是数据目录或子目录,或一个目录,所有用户都可以访问。如果 secure_file_priv被设置为一个不存在的路径时,服务器将一个错误消息写入错误日志并退出。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值