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

相关推荐

  • grep,egrep及相应的正则表达式用法详解

    目录 1、grep简介     1.1、grep是什么     1.2、grep使用格式     1.3、grep常用选项 2、正则表达式与grep     2.1、正则表达式简介  &nb…

    系统运维 2016-08-22
  • Acheng学习宣言

    我是Acheng,我参加了马哥Linux运维网络班,从2016年9月开始我将跟随马哥学习Linux技术。我的学习宣言是:再努力也不为过!朝着活学活用,做到做精的方向努力吧! 

    Linux干货 2016-10-25
  • 如何将迁移home到独立分区中

        背景(centos7中):         由于在刚开始学习linux时磁盘分配追求简单,只是把一个磁盘简单的分了3个分区。现在,因用户数据增多、磁盘空间变少、当数据撑满磁盘时,会导致系统崩溃。为防止此种情况的发生我必须把把根下的/home 目录迁移出 来独立分…

    2017-08-10
  • NoSQL—mongodb常见使用和入门

    NoSQL介绍: NoSQL数据管理系统是目前非常流行的一种非关系性、分布式、不支持ACID设计规范式的数据库;NoSQL简单的数据模型、元数据和数据分离、弱一致性、高吞吐量、高水平扩展能力和低端硬件集群使其流行的主要原因,而mongodb就是NoSQL数据库一种非常流行的实现方式。   常见的NoSQL数据存储模型 列式模型 文档类型 应用场景:…

    2015-09-01
  • 网络管理

                                                 网络基础 一.网络的基本概念 什么是网络…

    2017-09-02
  • 马哥教育网络班20期+第2周课程练习

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示 文件管理命令:ls、cd、pwd、mkdir、rmdir、cp、rm.、mv、touch、cat、more、less、head、tail 1)ls命令:显示目录文件   -a 显示所有文件,包括隐藏文件  ~]# ls -a /etc.  &n…

    Linux干货 2016-06-23