目录

解决方案:

测试效果:


解决方案:

secure_file_priv是用来限制mysql数据库导出的位置/目录。算是一直安全保护系统。

我们可以去通过show variables like ‘%secure%’; 这个指令去查看secure_file_priv 的状态

结果如下:

这里我们可以看出secure_file_priv 是NULL,意思是不允许数据库的导出

secure_file_priv的不同情况

  • 如果为空,不做目录限制,即任何目录均可以。
  • 如果指定了目录,MySQL 会限制只能从该目录导入、或导出到该目录。目录必须已存在,MySQL 不会自动创建该目录。
  • 如果设置为NULL,MySQL 服务器禁止导入与导出功能。

对此我们可以去通过对MySQL里面安装包的配置文件进行修改。就可以把secure_file_priv设置为空,从而把数据导出备份。

这里我们先把my.ini文件改成txt文件

进去之后在[mysqld]的目录下添加secure_file_priv = ” 然后保存并且退出,之后再把文件改回ini文件就行了。

cmd指令进入黑窗口,重启mysql服务器,先关闭服务器net stop mysql ,然后开启服务器net start mysql,然后登陆到服务器。

输入show variables like ‘%secure%’; 指令查看secure_file_priv 的值,如下所示:

这里我们发现secure_file_priv 变为空了,这时候就OK了,我们可以去进行数据库的导出了。

测试效果:

已知当前数据库里面表的内容如下,我将要把这个表的内容导出到本地txt文件

执行导出数据指令: select *from user into outfile ‘d:/heros.txt’;

(在执行这个指令之前我的本地是没有heros.txt这个文本文件的,这个文件是导出数据后生成的)

结果如下:

这里在我的D盘生成了一个txt文件,打开就是数据库表里面的内容,说明数据导出成功。

就到这了,谢谢各位!