mysql导出文件,error:1290

       感觉有毒,从昨晚开始,文件导出一直出错,结果今早发现,只要加上绝对路径就可以了。


MySQL导出文件时出现下面错误
在这里插入图片描述
首先你得查看你是否指定了目录

mysql> show global variables like '%secure%';
+--------------------------+-----------------------+
| Variable_name            | Value                 |
+--------------------------+-----------------------+
| require_secure_transport | OFF                   |
| secure_auth              | ON                    |
| secure_file_priv         | /var/lib/mysql-files/ |
+--------------------------+-----------------------+
3 rows in set (0.00 sec)

如果没有,就要在my.cnf或者my.ini配置文件中添加一行

[mysqld]
secure_file_priv=/var/lib/mysql-files/

#然后重启mysql
[root@bogon ~]# systemctl restart mysqld

接下来再次尝试导出文件

mysql> select * from Student into outfile '/var/lib/mysql-files/it_Student.sql';
Query OK, 6 rows affected (0.00 sec)

导出成功,去查看导出的数据文件

[root@bogon ~]# cat /var/lib/mysql-files/it_Student.sql
1       陆亚    男      24      计算机网络
2       tom     男      26      英语
3       张阳    男      21      物流管理
4       alex    女      22      电子商务
5       xumubin 男      29      中文专业
6       wangzhao        男      21      导弹专业





还有一种导出方式,将空格去掉,换成别的符号。
同样,文件还是要加上绝对路径。

mysql> select * from Student into outfile '/var/lib/mysql-files/it1_Student.sql' fields terminated by ','  optionally enclosed by '"' escaped by '"' lines terminated by '\r\n';
Query OK, 6 rows affected (0.00 sec)

去查看导出的数据文件

[root@bogon ~]# cat /var/lib/mysql-files/it1_Student.sql
1,"陆亚","男",24,"计算机网络"
2,"tom","男",26,"英语"
3,"张阳","男",21,"物流管理"
4,"alex","女",22,"电子商务"
5,"xumubin","男",29,"中文专业"
6,"wangzhao","男",21,"导弹专业"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当你遇到`ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement`错误时,这意味着由于MySQL服务器的安全配置设置了`--secure-file-priv`选项,它不允许MySQL直接将查询结果写入磁盘。`--secure-file-priv`是MySQL的一个安全特性,用于控制哪些目录可以被服务器用来创建文件。 解决这个问题,你需要做以下几步: 1. **修改配置**:登录到MySQL服务器并查看`my.cnf`(Linux/Mac)或`my.ini`(Windows)文件中的`[mysqld]`部分,找到`secure_file_priv`选项。将其设置为你希望导出文件的适当目录,例如: ```ini secure_file_priv = /var/lib/mysql-files/ ``` 之后重启MySQL服务让新的设置生效。 2. **权限验证**:确认指定的目录是否对MySQL用户有适当的读写权限。如果是root用户操作,可能需要赋予相应的账户临时访问权限。 3. **使用存储过程或临时表**:如果`--secure-file-priv`不允许直接写入文件,你可以考虑使用存储过程或者将数据先插入到临时表中,再从临时表导出。 4. **使用第三方工具**:如使用第三方工具(如Navicat、HeidiSQL等),它们通常有更好的文件导出功能,不受此选项限制。 5. **禁用安全选项**:虽然不推荐,你可以在服务器启动时暂时禁用`--secure-file-priv`,但这种方法应在生产环境中谨慎使用,并且务必在结束后立即恢复配置。 记得在操作完毕后,一定要恢复默认的安全配置,以避免潜在的安全风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值