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服务能否启动?

实验步骤:

    

PC1做NFS服务器,配置:

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

 

PC2(centos 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 6为mysql)

]# yum install -y mariadb-server

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

]# vi /etc/my.cnf

datadir=/mydata

7)启动数据库

~]# systemctl start mariadb

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

]# ls /mydata/

PC3(centos7)为客户端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 09:09
下一篇 2016-10-24 09:09

相关推荐

  • 【盘点】2017年9-11月运维大会(时间+地点)

    到底未来的运维模式是什么?如今运维人员面临着怎样的转变? 活动家为您精心挑选整理了9-11月七场运维大会希望本文能帮您! CNUTCon 全球运维技术大会2017 大会简介: CNUTCon全球运维技术大会是由InfoQ主办的运维&容器技术盛会。大会为期2天,主要面向各行业对运维&容器技术感兴趣的中高端技术人员。秉承着“同步前沿技术、共享实战…

    2017-08-31
  • 第十二周作业

    1、 请描述一次完整的http请求处理过程;  HTTP:超文本传输协议 完整的http请求过程 1)、建立TCP/IP连接:经过3次握手,建立连接或拒绝。 2)、浏览器向服务器发送HTTP请求。 3)、浏览器发送请求头信息。 4)、服务器应答:服务器接受请求后,会回送应答。 5)、服务器发送应答头信息。 6)、服务器向浏览器发送数据。 7)、服务…

    2017-05-17
  • bash脚本基础

    一,概述 shell脚本 程序:指令+数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 编程逻辑处理方式: 顺序执行 循环执行 选择执行 shell编程:过程式、解释执行 编程语言的基本结构: 数据存储:变量、数组 表达式: a + b 语句:if shell脚本是包含…

    Linux干货 2016-08-19
  • net25 第16周作业

    1、源码编译安装LNMP架构环境; yum groupinstall -y ‘Development Tools’ ‘Server Platform Development’ 编译nginx ~]# yum install -y openssl-devel pcre-devel ~]# useradd ngin…

    Linux干货 2017-05-15
  • egrep及文本处理工具十三道实例

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 2、编辑/etc/group文件,添加组hadoop。 3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。 4、复制/etc/sk…

    2018-03-20
  • 文件权限

    浅谈文件权限 Linux系统中的每个文件和目录都有访问许可权限,用他来确定谁能通过何种方式对文件和目录进行访问和操作。  文件权限: 文件或目录的访问权限分为只读,只写和可执行三种。  文件的权限主要针对三类对象进行定义:          owne…

    Linux干货 2016-08-07