登录
首页 >  数据库 >  MySQL

MySQL 全局配置 --secure-file-priv

来源:SegmentFault

时间:2023-02-16 15:37:30 387浏览 收藏

编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天golang学习网就整理分享《MySQL 全局配置 --secure-file-priv》,文章讲解的知识点主要包括MySQL、数据库,如果你对数据库方面的知识点感兴趣,就不要错过golang学习网,在这可以对大家的知识积累有所帮助,助力开发能力的提升。

MySQL 全局配置
SELECT TRACE INTO DUMPFILE "optimizer_trace.txt" FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;

报错提示如下:

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
  • 如果变量值为具体目录,则可以考虑导出到指定目录,或者从指定目录导出。
  • 如果变量值为空,则可以使用任意目录。

参考资料


感谢您的阅读,觉得内容不错,点个赞吧 😆
原文地址: https://shockerli.net/post/mysql-secure-file-priv/

好了,本文到此结束,带大家了解了《MySQL 全局配置 --secure-file-priv》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多数据库知识!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>