目录
解决方案:
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文件,打开就是数据库表里面的内容,说明数据导出成功。
就到这了,谢谢各位!
来源地址:https://blog.csdn.net/m0_73633088/article/details/128691085