mysql导出数据库中某个表的某个字段中所有的内容

  • 2020 年 09 月 30 日
  • 102次
  • 419 字
  • 暂无评论

今天因为某些需求,需要导出数据库里某个表里某个字段的一些数据,但是又不需要全部,就有了这篇文章。

mysql -uroot -p xw -e "SELECT title from typecho_contents INTO OUTFILE'/mysql/title.sql'"

导出数据库xwtypecho_contents表下的title字段里所有的内容导出到/mysqls/title.sql文件里。
在导出前,请确认有/mysql/这个目录。
在我执行上去命令后,出错了,提示

[root@VM_0_5_centos ~]# mysql -uroot -p xw -e "SELECT title from typecho_contents INTO OUTFILE'/mysql/title.sql'"
Enter password: 
ERROR 1290 (HY000) at line 1: The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

可以看到,跳出一个1290错误,不要慌,继续查看错误详情,登录数据库,执行以下语句

show variables like '%secure%';

sql
主要是看 secure_file_priv ;。可以看到,我这里secure_file_priv valueNULL,代表不允许导出,既然这样那就找到配置文件修改。
找到mysql的配置项文件my.cnf,在[mysqld]的下面添加一句secure_file_priv = /mysql/,这句的意思是允许将数据库导出到/mysql/下的文件夹,修改好后保存后重启mysql即可。
数据库

宝塔用户可直接到软件商店找到mysql后,点击设置-配置修改 ,同样在在[mysqld]的下面添加一句secure_file_priv = /mysql/即可,修改后记得重启数据库。

数据库

修改后后再去执行第一条导出命令,哦豁,又出问题了,提示

ERROR 1 (HY000) at line 1: Can't create/write to file '/mysql/.sql' (Errcode: 13)

问题很明显,是因为写权限问题所致。
考虑到/mysql/是我刚刚手动创建的,没给权限,可能是这里导致的,在给/mysql/重新设置好权限后,问题就解决了

最后,为了安全考虑,在需要的数据库导出后,我建议你将secure_file_priv = /mysql/这句删掉恢复原状。

参考资料:

感谢两位


版权属于:Cat

本文链接:https://www.catct.cn/archives/661.html



—— 暂无评论 ——

OωO