1. 背景知识:

SELinux 全称 Security Enhanced Linux (安全强化 Linux),是 MAC (Mandatory Access  Control,强制访问控制系统)的一个实现,目的在于明确的指明某个进程可以访问哪些资源(文件、网络端口等)。强制访问控制系统的用途在于增强系统抵御 0-Day ***(利用尚未公开的漏洞实现的***行为)的能力。


2.ubuntu下mysql数据的目录:

             /var/lib/mysql


3.备份的步骤

法一:

1)开启对mysql守护进程的权限,类似与关闭selinux对mysql的限制

#setsebool -p mysqld_disable_trans=1

这里用getsebool -a 检查发现selinux disabled (一般情况下建议开启selinux)


2)修改目录的权限使得语句能够有权限create/write,以及改属主,属组为mysql,

      这里要注意两个点也是网上老是含糊不清楚的点(我就是这么被坑了好吗)

  a.你备份的文件的目录一定要是mysql data的目录,这里在mysql里用

                    mysql> show variables like '%datadir';

  b.你备份到的目的文件一定要是新文件
  mysql> SELECT name FROM dept INTO OUTFILE '/var/lib/mysql/test/dept.sql';


实验结果:

root@ubuntu:~# cat /var/lib/mysql/test/dept.sql
food
HR
money
logistics


法二(直接上步骤和结果了哈):

root@ubuntu:~# mysql -u root -p123456 test -e "SELECT name FROM dept;">ire;
root@ubuntu:~# cat ire
name
food
HR
money
logistics