nfs实验

实验要求:

(1) 创建一个共享mydata,路径为/mysql/data,客户端1挂载至/mydata;而后客户端1主机安装mysql或mariadb,将数据目录设定为/mydata,要确保mysql服务能正常 运行,但数据目录位于nfs server上;

(2) 客户端2主机使用类似客户端1主机的方式挂载mydata共享至本地的/mydata目录,而后,直接安装mysql或mariadb server,设定其数据目录为/mydata;测试

(a) 客户端1 mysql服务运行时,客户端2的mysql服务能否启动?

(b) 客户端1 mysql服务停止时,客户端2的mysql服务能否启动?

实验步骤:

    

PC1NFS服务器,配置:

1)创建共享目录

~]# mkdir -p /mysql/data/mydata

2)创建本地用户,UID必须是27

~]# useradd -M -r -s /sbin/nologin -u 27 mysql

3)设置MySQL用户对共享目录有读写权限

~]# chown mysql:mysql /mysql/data/mydata/

4)修改NFS配置文件

~]# vi /etc/exports

/mysql/data/mydata      10.1.0.0/16(rw,root_squash)

5)启动服务

~]# yum install nfs-utils 最小化安装没有rpcbind,需要安装这个包

~]# systemctl start rpcbind 先启动rpc,不然会报错

~]# systemctl start nfs

 

PC2centos 7)为客户端1,配置:

1)安装nfs工具

]# yum install -y nfs-utils

2)查看网络中的NFS共享目录

]# showmount -e 10.1.12.12

3)创建本地挂载目录

]# mkdir /mydata

4)挂载nfs网络共享目录

]# mount -t nfs 10.1.12.12:/mysql/data/mydata /mydata/

5)安装MySQL数据库(centos 6mysql

]# yum install -y mariadb-server

6)将数据目录设定为挂载目录

]# vi /etc/my.cnf

datadir=/mydata

7)启动数据库

~]# systemctl start mariadb

8)查看 /mydata目录下有没有生成MySQL的文件

]# ls /mydata/

PC3centos7)为客户端2,配置:

PC2的操作一样

安装nfs-utils

创建本地挂载目录

挂载nfs网络共享目录

安装MySQL数据库

MySQL数据库目录设置为挂载目录

然后尝试启动mysql

然后关闭PC2 上面的MySQL,再启动,看能否成功

结论:俩个MySQL只能同时启动一个,

 

实验中遇到的问题:

在nfs服务器上对MySQL用户做授权时,

理论上,nfs服务器上的系统用户对共享目录有读写执行权限(做setfacl),并且在配置文件中也给了rw权限时,另一台挂载共享目录的主机上,

相同UID GID 等 ]#id USER 命令结果相同的用户,也可以对共享目录有读写执行权限,也就是说:MySQL可以启动

但是MySQL不能启动是为什么?此时,/etc/exports文件中参数是(rw,no_root_squash)。root也可以对共享目录有全套权限。

当我把facl权限去掉,并将共享目录的属主和属组改为MySQL时,MySQL服务就可以启动了!

理论上,这俩中方法是用户对目录都有全套权限,而且root用户也是全套权限,但为什么,facl权限就无法启动???

没学好,向大神求解!

问题二

在特殊情况下,俩台MySQL服务器可同时启动!

1)在PC1上启动MySQL;

2)在nfs服务器上删除共享目录中MySQL启动时生成的文件;若在PC1上删除,会报错,MySQL文件夹不能被删除,里面有nfs的文件

3)PC1 上的MySQL服务已经起来,在PC2上启动MySQL就行,同时在PC2的MySQL创建数据库和表,在PC1的MySQL中也可以查看,在NFS服务器的共享目录中也有库文件生成

但是在PC2上创建的表中的内容,另一个PC上的MySQL不能查看内容,只能看到表的名称

问题三

如果没有关闭selinux的话,会有selinux安全上下文标签,这也会导致无法启动MySQL服务器

如果是showmount找不到共享目录,一般是iptables的问题,iptables -F清空一下就好了

原创文章,作者:cszdz123,如若转载,请注明出处:http://www.178linux.com/53999

(0)
cszdz123cszdz123
上一篇 2016-10-24
下一篇 2016-10-24

相关推荐

  • shell简单脚本

    Shell小脚本     一.       一. 简介 从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善的今天,在系…

    Linux干货 2017-08-06
  • Linux源程序包相关概念整理

    一、      Linux源程序包介绍 1)    linux源程序包基础 1.         遵循常用开源协议:BSD、Apache Licence 2.0、GPL、LGPL、MIT 2.&nbs…

    系统运维 2015-09-22
  • CentOS软RAID实现配置

     实现软raid1、fdisk t fd //修改磁盘分区类型fd2、创建raid设备     创建一个RAID5,5块儿硬盘4块做RAID,1块儿做空闲硬盘(顶替硬盘使用)    mdadm -C /dev/md0 -a yes -l 5  -n …

    Linux干货 2016-08-30
  • 第二周作业

    作业

    Linux干货 2018-03-20
  • 简单的启动排错

    一、出现 grub> 字样,等待交互式输入指令,说明MBR中Bootloader的stage1、stage1_5、stage2都正常,但丢失了/boot/grub.conf 文件,所以无法加载启动项菜单,就无法读取默认启动的kernel、initrd等文件路径。 解决办法:无需救援模式,直接在此交互式界面指定相关文件的加载路径。 (1) grub&gt…

    Linux干货 2016-11-26
  • Linux文件系统

    文件是什么?存储空间内存储的有边界的一段流式数据,对数据可以做到按名存取。众多文件是如何有效的组织起来?1.  平面化把众多文件放在一起。当想查找某个文件时,需要遍历所有文件,当文件数目足够多的时候,查找一个文件将会非常慢,效率极低。2.  层级结构化根据后续查找文件的筛选条件进行分类,逐层放置,通常要查找一个文件,只需要从最高层级开始,…

    2017-09-05