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 09:09
下一篇 2016-10-24 09:09

相关推荐

  • shell 脚本编程基础

    Shell脚本简介: Shell脚本是一种特殊的程序,它是用户与linux系统内核之间的一个接口,shell是一个工具程序,在用户登录后系统启动。它解释并运行由命令行或脚本文件输入的命令,从而实现用户与内核间的交互。 Shell脚本:也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的,是利用shell的功…

    Linux干货 2016-08-21
  • Linux Basics–part3

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 ~]# who | cut -d” ” -f1 | sort -u centos ronny root 或 ~]# who | cut -d” ” -f1 | sort |uniq centos ronny root 2…

    Linux干货 2017-08-07
  • 初识 vi/vim文本编辑器

    我们操作文件,终究离不开编辑文件,对文件内容的编辑,Linux系统下,我们通常使用VI/VIM来编辑文件。VI是每个Linux都会自带的文本编辑器,VIM是VI的增强版,现在的最新版都已自带,但是可能有些发行版本没有自带,可以使用sudo apt-get install vim命令安装vim。 可以使用vi或者vim命令直接进入新的文本文件,或者vim 文件…

    Linux干货 2017-07-29
  • N26-第五周博客作业

    一、显示当前系统上root、fedora或user1用户的默认shell; [root@promote home]# grep -E ‘^(root|fedora|user1)’ /etc/passwd |cut -d : -f7 /bin/bash /bin/bash /bin/bash [root@promote home]# 注…

    Linux干货 2017-05-15
  • ftp的用户权限配置

    文件服务: 应用层:ftp; 内核级网络文件系统:nfs POSIX(可移植操作系统接口 Portable Operating System Interface of UNIX,缩写为 POSIX ) API(应用程序编程接口) 跨平台的网络文件系统:cifs (samba)   网络存储: NAS:NetworkAttached Stoage,文…

    Linux干货 2017-05-02
  • Linux系统的介绍及如何获取帮助?(学习笔记)

    第一、Linux 基础   CPU架构:      x86      x64 (amd64)      m68000,m68k      arm    &nbs…

    Linux干货 2016-12-12