MYSQL新特性secure_file_priv读写文件 outFile导出数据

时间:2021-09-20 22:23:05

1290 – The MySQL server is running with the –secure-file-priv option so it cannot execute this statement

secure-file-priv特性

secure-file-priv参数是用来限制LOAD DATA, SELECT … OUTFILE, and LOAD_FILE()传到哪个指定目录的。

  • ure_file_priv的值为null ,表示限制mysqld 不允许导入|导出
  • 当secure_file_priv的值为/tmp/ ,表示限制mysqld 的导入|导出只能发生在/tmp/目录下
  • 当secure_file_priv的值没有具体值时,表示不对mysqld 的导入|导出做限制
    如何查看secure-file-priv参数的值:
    show global variables like ‘%secure%‘;
    没有导出权限:
    mysql> show global variables like ‘%secure%‘;
     ------------------ ------- 
    | Variable_name    | Value |
     ------------------ ------- 
    | secure_auth      | OFF   |
    | secure_file_priv |       |
     ------------------ ------- 
    2 rows in set (0.00 sec)

    有导出权限,导出路径需在/var/lib/mysql-files/下:

    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.09 sec)

    MYSQL新特性secure_file_priv对读写文件的影响
    此开关默认为NULL,即不允许导入导出。

解决问题:
windows下:

修改my.ini 在[mysqld]内加入secure_file_priv=

linux下:

修改my.cnf 在[mysqld]内加入secure_file_priv=
MYSQL新特性secure_file_priv对读写文件的影响
然后重启mysql,再查询secure_file_priv