一、secure-file-priv可以动态加载吗
在MySQL中,--secure-file-priv
可以在安全模式下防止用户在加载文件时访问敏感位置。secure-file-priv
的值是一个操作系统的路径,表示存储MySQL可加载文件的安全目录。在MySQL启动时,若secure-file-priv
的值发生改变,MySQL并不会重新加载。因此,secure-file-priv
不能动态加载,必须在启动时就指定。
/* 显示secure-file-priv路径 */
mysql> SHOW VARIABLES LIKE 'secure_file_priv';
+------------------+-----------------------+
| Variable_name | Value |
+------------------+-----------------------+
| secure_file_priv | /var/lib/mysql-files/ |
+------------------+-----------------------+
二、secure-file-priv怎么用命令修改
我们可以修改MySQL配置文件中的secure-file-priv
的值来改变MySQL可加载文件的安全目录。修改后需要重启MySQL生效。
/* 修改MySQL配置文件 */
$ vim /etc/my.cnf
[mysqld]
secure_file_priv=/new/path
/* 重启MySQL */
$ systemctl restart mysqld
三、secure-file-priv不对导入导出限制
secure-file-priv
并不限制导入导出。但是,从MySQL 8.0.14开始,默认情况下,MySQL会检查导入文件中的全局表定义。如果检测到MyISAM表的定义,则会拒绝导入MyISAM表文件。如果要导入或导出到非默认的secure-file-priv
目录,需要进行特殊的操作。
四、secure-file-priv is set null
将secure-file-priv
设置为null,表示MySQL可从任意目录加载文件。
/* 将secure-file-priv设置为null */
mysql> SET GLOBAL secure_file_priv=NULL;
需要注意,将secure-file-priv
设置为null可能增加安全风险。因为MySQL可从任意目录加载文件,可能加载了非预期的文件。