ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Mysql导出表内容时显示 --secure-file-priv option so it cannot execute this statement

2021-12-25 17:05:02  阅读:226  来源: 互联网

标签:secure -- option mysqld file mysql var priv


Mysql导出文件时显示:

mysql> select * from users into outfile '/root/users.txt';
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

 

原因不太清楚,网上说可能是像 INTO 这些操作只允许有FILE权限的用户使用。总之就是权限问题,这里需要用到一个表,这个表存放着Mysql的系统参数,:

mysql> show variables like 'secure_file_priv';
+------------------+-----------------------+
| Variable_name    | Value                 |
+------------------+-----------------------+
| secure_file_priv | /var/lib/mysql-files/ |
+------------------+-----------------------+
1 row in set (0.01 sec)

 

这里我的secure_file_priv 字段是有值的,且固定在/var/lib/mysql-files/中,代表Mysql导出数据只能导到这个目录中,导在其他地方都是没有权限的:

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

 

这里的secure_file_priv字段是值是可以设置的(怎么改我也不知道,自己百度)

  • 如果为空,则该变量无效,可以无限制导出,这不是一个安全的设置
  • 如果设置为目录的名称,服务器会将导入和导出操作限制为仅处理该目录中的文件。目录必须存在;服务器不会创建它。
  • 如果设置为NULL,服务器将禁用导入和导出操作。

 

修改系统变量

mysql> set global secure_file_priv = ''; 
ERROR 1238 (HY000): Variable 'secure_file_priv' is a read only variable //直接修改显示read only,所以只能从配置文件下手

另开一个窗口,直接修改配置文件my.cnf。我这里省略了很多注释,这里修改时需要注意的是,不能直接在最后一行添加:secure_file_priv=‘’ ,这样是不对的,因为最后一行在[mysql]一栏。变量是需要加到[mysqld]下的

[root@VM-0-7-centos mysql-files]# vim /etc/my.cnf
……
[mysqld]
……

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
……
secure_file_priv = ''   //正确的添加位置在这里,[mysqld]的里面
[mysqld_safe] 
…… 
[mysql]
……

 

添加后重启mysql服务

[root@VM-0-7-centos mysql-files]# service mysqld restart
Redirecting to /bin/systemctl restart mysqld.service

 重启后重新登陆Mysql,发现已经改好了:

mysql> show variables like 'secure_file_priv';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| secure_file_priv |       |
+------------------+-------+
1 row in set (0.00 sec)

 

标签:secure,--,option,mysqld,file,mysql,var,priv
来源: https://www.cnblogs.com/yuan-zhou/p/15730931.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有