基於Samba和NFS簡單實現Mariadb服務示例
NFS服務需要使用nfs-utils程序,所以首先要安裝該程序包;(yum install -y nfs-utils)
此處我以兩臺分別為Centos6.9和Centos7.4的虛擬機實現該實驗過程;Centos6.9作為服務器端,Centos7.4作為客戶端;
首先:在Centos6.9服務器上安裝好nfs-utils程序包,啟動該服務;
第二步:我們修改NFS的配置文件/etc/exports,文件中的順序為:要共享的文件目錄 允許掛載該目錄的主機地址要求(可選項)
主機地址要求:可寫出明確的IP地址、邏輯網段,也可以在IP地址中使用“?”表示任意單個字符,"*"表示任意個任意字符;
可選項:
ro:只讀;
rw:讀寫;
async:異步存儲;
sync:同步存儲;
nohide:不將共享目錄中子目錄上掛載的文件系統的內容隱藏起來;
root_squash:壓縮root用戶的權限,通常將其映射為nfsnobody用戶;(默認)
no_root_squash:撤銷root用戶的權限壓縮;
all_squash:將所有的非root用戶都做權限壓縮,映射為nfsnobody用戶;
此處我共享的文件夾為/data;允許訪問的網段為179.5.99.*,可選項只說明了其可讀可寫;
為測試其功能完成,我在/data目錄下創建了一個叫a.txt的文件;
可以使用showmount命令查看該服務器上可掛載的文件目錄:
# showmount -e 179.5.99.77
第三步:我們卻換到客戶機Centos7.4使用mount命令掛載該文件;(我Centos7.4的IP地址為179.5.99.12符合剛剛我們手動填寫的地址訪問控制規則)
使用 -t 指明文件系統類型,將179.5.99.77服務器下的/data掛載到當前客戶端的/mydata目錄下;可以看到上一步創建的測試文件,說明服務正常工作;
第四步:查看/data目錄是否對所有人有寫權限,如果沒有請加上,否側會出現寫入失敗、權限不夠的情況;確認後將mysql/mariadb的服務目錄更換至/mydata,並創建數據庫、表等數據測試其工作是否正常;
1.修改mysql數據庫服務目錄
、
2.為確保mariadb服務正常啟動,請將原/var/lib/mysql/目錄下的文件安全復制到/mydata/目錄下,並確定其屬主數組都為mysql;
# scp /var/lib/mysql/* /mydata/
3.在Centos7.4客戶端上啟動mariadb服務‘
# systemctl start mariadb.service
(我之前設置過數據庫的密碼所以要使用 -p選項登陸)
至此我們就完成了簡單的利用NFS服務與Mariadb/Mysql服務實現的遠程數據庫存儲;
二、Samba 實現遠程數據庫存儲
同樣的我們使用兩臺虛擬機實現,Centos6.9作為服務器端,Centos7.4作為客戶端;
首先:確認服務器端安裝了以下Samba程序包:
samba
samba-libs
samba-client
samba-client-libs
samba-common
samba-commom-tools
samba-common-libs
cifs-utils
第二步:啟動samba服務
第三步:修改相關配置
1.修改samba主配置文件;
# vim /etc/samba/smb.conf
c69share 共享文件目錄的名稱
comment 註釋信息
path 共享文件目錄的路徑
valid name 允許訪問的用戶名稱
writable 是否擁有寫權限
directory mode 共享目錄權限
create mode 創建文件的默認權限
guest ok 是否開啟匿名登陸
註意:如果配置文件中 passdb backend = tdbsam[:/etc/samba/samusers]需使用pdbedit命令(默認)
如果配置文件中 passdb backend = smbpasswd:/etc/samba/smbpasswd 需要使用smbpasswd命令
創建一個用戶用於遠程登陸;
#useradd boom
#pdbedit -a boom
(smbpasswd命令使用方法與pdbedit相同,使用-a選項添加用戶)
第四步:可使用testparm命令進行檢測配置文件是否存在語法錯誤
在Centos7.4客戶端上進行掛載
# mount -t cifs -o username=boom //179.5.99.77/c69share /mydata
可以看到上次實驗復制進去的內容;啟動mariadb服務即可實現數據庫遠程存儲;
基於Samba和NFS簡單實現Mariadb服務示例