MySQL 全局配置 --secure-file-priv
一则问题
在执行导出 INFORMATION_SCHEMA.OPTIMIZER_TRACE
内容到本地文件时:
SELECT TRACE INTO DUMPFILE "optimizer_trace.txt" FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;
报错提示如下:
(1290, 'The MySQL server is running with the --secure-file-priv option so it cannot execute this statement')
原因分析
查看系统变量 secure_file_priv
:
SHOW VARIABLES LIKE "secure_file_priv";+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| secure_file_priv | NULL |
+------------------+-------+
MySQL 对于导入导出的目录是有限制的,只允许指定的目录才能导入导出。
此处变量值为 NULL
,即没设置允许操作的目录,所以没法导出到文件。
知识解读
名词 | 含义 |
---|---|
Command-Line Format |
--secure-file-priv=dir_name
|
System Variable |
secure_file_priv
|
Scope |
Global
|
Dynamic |
No
|
Type |
String
|
Default Value |
platform specific
|
Valid Values |
empty string 、dirname 、NULL
|
secure_file_priv
这个变量被用于限制导入和导出的数据目录,比如 LOAD DATA
和 SELECT ... INTO OUTFILE
语句,以及 LOAD_FILE()
函数。这些操作限制了哪些用户拥有文件操作权限。
secure_file_priv
有些设置选项:
- 如果为空,不做目录限制,即任何目录均可以。
- 如果指定了目录,MySQL 会限制只能从该目录导入、或导出到该目录。目录必须已存在,MySQL 不会自动创建该目录。
- 如果设置为
NULL
,MySQL 服务器禁止导入与导出功能。
该变量的默认值,是由编译时的 CMake
选项而定。
MySQL 服务器在启动时,会检查 secure_file_priv
变量值,如果值不安全会在错误日志中写一个 WARNING 级别的日志。以下情况属于不安全的设置:
- 值为空
- 值为
--datadir
目录或其子目录 - 所有用户均有权限访问的目录
比如当我设置为空时,错误日志中就多了这么条:
[Warning] Insecure configuration for --secure-file-priv: Current value does not restrict location of generated files. Consider setting it to a valid, non-empty path.
如果配置的目录并不存在,MySQL 服务器也会写一条错误日志。例如:
[ERROR] Failed to access directory for --secure-file-priv. Please make sure that directory exists and is accessible by MySQL Server. Supplied value : /path/not/exist
解决方案
如果变量值为
NULL
,那么只能修改服务器配置:
修改 my.cnf 文件,在 [mysqld] 块下,如果没有 secure_file_priv 则新增指定目录:secure_file_priv=/path/to/data不限目录:secure_file_priv=禁止操作:secure_file_priv=NULL
- 如果变量值为具体目录,则可以考虑导出到指定目录,或者从指定目录导出。
- 如果变量值为空,则可以使用任意目录。
如果你想开发小程序或者app的话,可以通过第三方专业开发平台,来帮助你实现开发需求:厦门在乎科技-专注小程序开发、厦门app开发公司、网站开发
MySQL 全局配置 --secure-file-priv相关推荐
- Mysql 8配置MGR单主多从集群
一.MGR介绍 1.官方文档 Chapter 18 Group Replication 2.MGR介绍 MySQL Group Replication(下简称:MGR)是MySQL官方推出的一种基于P ...
- MySQL主从复制配置过程(一主一从模式)
1.概述 MySQL 的主从复制又叫 Replication.AB 复制.至少需要两个 MySQL 服务(可以是同一台机器,也可以是不同机器之间进行). 比如A服务器做主服务器,B服务器做从服务器,在 ...
- MySQL高级配置(二)详细介绍
一.MySQL优化配置详解 转自:http://blog.csdn.net/nightelve/article/details/17393631 1.目的: 通过根据服务器目前状况,修改Mysql的系 ...
- MySQL数据库安全配置
文章来源:http://www.xfocus.net MySQL数据库安全配置 1.前言 MySQL 是完全网络化的跨平台关系型数据库系统,同时是具有客户机/服务器体系结构的分布式数据库管理系统.它具 ...
- docker mysql 主从配置
2019独角兽企业重金招聘Python工程师标准>>> 1.首先创建两个文件my-m.cnf(主库配置) .my-s.cnf(从库配置) my-m.cnf 内容如下 # Copyri ...
- mysql MGR配置keepalived
之前写过一篇mysql8.0搭建MGR 在这里 mysql8.0配置MGR - 悠游~~~ - 博客园 (cnblogs.com) 在此基础上配置keepalived 一.安装keepalived ( ...
- SUSE Linux 11里Nginx+Resin+JSP+Memcached+MySQL安装配置整合
服务器运维与网站架构|Linux运维|X研究 let's face reality,loyalty to an ideal! 首页 Linux Nginx Security Shell 服务器架构 互 ...
- MySQL主从配置和Nginx简单运用
目录 1. MySQL主从复制 1.1 介绍 MySQL的主从复制原理如下: MySQL复制过程分成三步: 1.2 搭建 1.2.1 准备工作 1.2.2 主库配置 1.2.3 从库配置 1.3 测试 ...
- mysql slave 配置_【mysql5.6】 数据库主从(Master/Slave)配置记录
freddon 发表于2018-04-01 阅读 661 | 评论 0 前一段时间迫于服务器的捉急内存,将redis数据库停掉了,鉴于redis的主从配置,在centos配置下mysql记录下过程. ...
- mysql主从配置安装_mysql主从配置完整版(二进制安装)
系统基础 centos6.5 mysql5.6 防火墙关闭,目录挂载等 fdisk /dev/sdb vgcreate datavg /dev/sdb1 lvcreate -L 99G -n data ...
最新文章
- [LeetCode]Convert Sorted Array to Binary Search Tree
- 管理“我的右上角” : 介绍菜单栏图标软件 Bartender
- excel if in函数_EXCEL技巧之if函数在统计中的应用简介
- python发送文件到钉钉群_iOS python 自动化打包,并在钉钉群里发通知
- maven+springmvc下载excle文件——ie8可用
- python 随机数_python项目实战:实现蒙特卡罗方法,求物体阴影面积
- Google 开发者大会纪念 T 恤赠送(全球限量)
- 孙鑫VC学习笔记:第十一讲 (一) 坐标空间与各种转换的概念
- 使用IDO Runtime Development Server跟踪IDO层的错误
- css实现多余图片隐藏
- 创建列表、删除列表、查看列表长度、列表增加一个元素的几种方法
- 自动驾驶中的多传感器融合
- ECCVW 2022 | 第二届城市规模点云语义理解挑战赛
- MNIST 手写数字识别(一)
- F003-牛奶为什么要倒河里 #F1350
- POS与POW都不懂,怎么混币圈?
- 曝苹果 2022 新款 iPad Pro 将在 9 月或 10 月发布:配备 M2 芯片、无线充电、相机系统升级
- 财富:保罗·艾伦转向新领域
- Cypress设置Cookie
- js-jquery-001-条形码概述