之前按照官网的手册,已经有了menagerie数据库(database),里面包含pet表(table),如下图:
导出数据到txt文件中:
SELECT * FROM pet
INTO OUTFILE 'C:/Users/idy/Desktop/backup.txt';
结果如下:
原因及解决方法:
由于--secure-file-priv变量的设置导致不允许mysql数据导出。
在C:\ProgramData\MySQL\MySQL Server 5.7路径下找到并打开my.ini文件,找到secure-file-priv="C:/ProgramData/MySQL/MySQL Server 5.7/Uploads"将其注销掉,然后重启mysql数据库,这个问题就解决了。
使用SHOW VARIABLES LIKE "secure_file_priv";命令查看secure-file-priv的value值(默认情况下Value为路径C:\ProgramData\MySQL\MySQL Server 5.7\Uploads)
重新导出:
在桌面上新建了backup.txt后重新导出:
依然没有创建和写文件的权限~~~~(>_<)~~~~不成功
以上内容的问题最终都是因为mySQL读写本地文件的权限。我的mySQL中途因为未知原因导致不能启动,我又重新进行了按照,之前的表已经没有了。当我重新再打开我的数据库的时候,发现解决上面的问题比我想象的要简单的多:
实际上secure_file_priv这个安全属性已经设置了路径,如下图:
只需要将我们导文件的路径设置成secure_file_priv对于的Value值就可以了,在C:\ProgramData\MySQL\MySQL Server 5.7\Uploads\路径下面,符合secure_file_priv的安全配置,同时拥有文件读写权限。当然我们应该也可以修改my.ini文件中secure_file_priv的路径。结果如下图(随便找了张表导出来):
参考:
- http://www.runoob.com/mysql/mysql-database-export.html【MySQL 导出数据】
- https://www.oschina.net/question/1165991_2200405【--secure-file-priv如何设置成允许mysql数据导出】
- https://www.oschina.net/question/1165991_2200466【mysql导出数据报错,不能创建或者写入文件】