300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > mysql没有写入权限_解决Errcode: 13——mysql写文件权限问题

mysql没有写入权限_解决Errcode: 13——mysql写文件权限问题

时间:2023-07-26 04:51:29

相关推荐

mysql没有写入权限_解决Errcode: 13——mysql写文件权限问题

mysql没有写入权限_解决Errcode: 13——mysql写文件权限问题

一、问题二、权限错误(Errcode: 13)解决方法三、原理

一、问题

在数据库中select * into outfile ‘/home/mysql/data.sql‘,mysql又提示错误:ERROR 1 (HY000): Can‘t create/write to file ‘/home/mysql/data.sql‘ (Errcode: 13)

二、权限错误(Errcode: 13)解决方法

1)查看导出目录的权限 是否有mysql用户写的权限

2)如果有多级目录,要确保到处目录的上级目录有可执行权限,如果是/root目录 700要修改705 否则写不进

3)查看seLinux有没有关闭 ,如果没有关闭可以 setsebool -a 看看 然后 确保 setsebool -P mysqld_disable_trans=1

三、原理

在red hat系列的linux中selinux对哪些daemon可以进行怎么样的操作是有限制的,mysql的select into outfile的命令是mysql的daemon来负责写文件操作的。写文件之前当然要具有写文件的权限。而selinux对这个权限做了限制。如果selinux是关闭的吧,这个命令执行是没有问题的

mysql> select user from user into outfile ‘/home/test.txt‘;

当时selinux开启时,selinux对mysql的守护进程mysqld进行了限制。

mysql> select user from user into outfile ‘/home/test.txt‘;ERROR 1 (HY000): Can‘t create/write to file ‘/home/test.txt‘ (Errcode: 13)

出现了没有权限写的error,解决方法可以关闭selinux,可以在/etc/selinux中找到config,root用户修改selinux配置文件

shell>vi /etc/selinux/config

# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:# enforcing - SELinux security policy is enforced.# permissive - SELinux prints warnings instead of enforcing.# disabled - SELinux is fully disabled.SELINUX=enforcing

修改SELINUX=disabled关闭selinux就可以了,这个问题就可以解决了。不过全部关闭SELINUX有带来一些安全问题。当然也可以,单独给mysql的守护进程权限。

shell>getsebool -a

可以查看当前的对系统一系列守护进程的权限情况。

lpd_disable_trans --> offmail_read_content --> offmailman_mail_disable_trans --> offmdadm_disable_trans --> offmozilla_read_content --> offmysqld_disable_trans --> offnagios_disable_trans --> offnamed_disable_trans --> offnamed_write_master_zones --> offnfs_export_all_ro --> onnfs_export_all_rw --> onnfsd_disable_trans --> offnmbd_disable_trans --> offnrpe_disable_trans --> off

shell>setsebool -P mysqld_disable_trans=1mysql> select user from user into outfile ‘/home/test.txt‘;

开启对mysql守护进程的权限,这样写入到自定义的目录就没有问题了。

注意:

-P表示 是永久性设置,否则重启之后又恢复预设值。

getsebool setsebool命令在root用户下有权限。

除了对selinux的权限,当然首先要保证该目录拥有读写权限。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。