作者 主題: [問題]MySQL資料庫掛在NFS下  (閱讀 6642 次)

0 會員 與 1 訪客 正在閱讀本文。

ced_free

  • 可愛的小學生
  • *
  • 文章數: 20
    • 檢視個人資料
[問題]MySQL資料庫掛在NFS下
« 於: 2012-05-22 15:48 »
不好意思,請教各位前輩,小弟將MySQL的資料庫掛在NFS下就一直無法啟動MySQL,請問是不是需要修改SELinux的設定? 或是有麼方法能讓MySQL掛在NFS之下呢?
小弟上網找尋許多方法都無解,感謝各位前輩指導,感激再感激

my.cnf設定
代碼: [選擇]
[mysqld]
datadir=/home/mysql
socket=/var/lib/mysql/mysql.sock
User=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
id-file=/var/run/mysqld/mysqld.pid

/etc/fstab設定
代碼: [選擇]
192.168.1.12:centos     /home                   nfs     rw              0 0
修改MySQL資料庫掛載位置步驟如下:
1. 停止mysqld服務
# /etc/init.d/mysqld stop

2. 修改SELinux設定,使home可掛載在nfs下
# setsebool -P use_nfs_home_dirs 1

3. 掛載NFS
# mount -t nfs 192.168.1.12:centos /home

4. 建立mysql資料夾於/home下
# cd /home ; mkdir mysql

5. 修改資料夾擁有者
# chown mysql:mysql /home/mysql

6. 為確保權限無誤,再下一次指令
# chmod 755 /home/mysql

7. 複製原有資料庫內容至/home/mysql下
# cp -Ra /var/lib/mysql /home/msyql

8. 利用以下指令,初始化MySQL資料庫
# mysql_install_db --user=mysql --ldata=/home/mysql

9. 啟動MySQL
# /etc/init.d/mysqld start

出現錯誤:
代碼: [選擇]
120522 15:43:52 mysqld_safe Starting mysqld daemon with databases from /home/mysql
120522 15:43:52 [Warning] Can't create test file /home/mysql/ldap.lower-test
120522 15:43:52 [Warning] Can't create test file /home/mysql/ldap.lower-test
/usr/libexec/mysqld: Can't change dir to '/home/mysql/' (Errcode: 13)
120522 15:43:52 [ERROR] Aborting

120522 15:43:52 [Note] /usr/libexec/mysqld: Shutdown complete

120522 15:43:52 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

這個問題困擾了我兩天了,請求各位前輩協助解決此問題,感謝

hikohan

  • 俺是博士!
  • *****
  • 文章數: 1288
    • 檢視個人資料
Re: [問題]MySQL資料庫掛在NFS下
« 回覆 #1 於: 2012-05-22 16:04 »
網路速度會比硬碟直存取快?
lifeIsFunWithPHP.

ced_free

  • 可愛的小學生
  • *
  • 文章數: 20
    • 檢視個人資料
Re: [問題]MySQL資料庫掛在NFS下
« 回覆 #2 於: 2012-05-22 16:12 »
沒比較快,但應該是說,我的資料量很小,所以不會造成速度過慢的影響
我的Linux沒有做RAID,而且只有20G,但NFS掛上去可以有6T,夠我存很多資料
所以我想要把資料庫放在NFS上

謝謝前輩指點 :)

Nansen

  • 活潑的大學生
  • ***
  • 文章數: 212
    • 檢視個人資料
Re: [問題]MySQL資料庫掛在NFS下
« 回覆 #3 於: 2012-05-22 16:23 »
網路的不確定性跟效能十分不建議這樣做,再加上MySQL真的放到20G滿了那實際資料量(筆數)也很可觀

沒有RAID這件事應該是利用其他辦法來備援例如定時dump備出去或者用mysql replication的方式抄寫

ced_free

  • 可愛的小學生
  • *
  • 文章數: 20
    • 檢視個人資料
Re: [問題]MySQL資料庫掛在NFS下
« 回覆 #4 於: 2012-05-22 16:30 »
前輩的指點小弟很樂意接受
我已經修正放在本機端了

不過這個問題我還是想要解決,放著心裡有個疙瘩
不知道前輩是否可協助小弟解決呢?

感謝前輩指點 :)

hikohan

  • 俺是博士!
  • *****
  • 文章數: 1288
    • 檢視個人資料
Re: [問題]MySQL資料庫掛在NFS下
« 回覆 #5 於: 2012-05-22 16:36 »
錯誤訊息提示應該是說,無法建立 BLAH BLAH

mysql 群組 無存取權限? 檔案群組與權限錯誤? 抑或 SELINUX 安全防護不允許?

lifeIsFunWithPHP.

ced_free

  • 可愛的小學生
  • *
  • 文章數: 20
    • 檢視個人資料
Re: [問題]MySQL資料庫掛在NFS下
« 回覆 #6 於: 2012-05-22 16:50 »
我已經把群組權限修改過了
另Nansen前輩說要放本機會比較好,我也改到本機了,我改到/usr/mysql/下
放在本機端啟動不會有問題,不論你放那個資料夾或哪個磁區都行

現在問題是出在nfs,只要資料庫一掛在nfs下,就無法啟動
SELinux內有關nfs的我全都改成on了,也一樣無法啟動

感謝前輩指點 :)

hongbin

  • 憂鬱的高中生
  • ***
  • 文章數: 101
    • 檢視個人資料
Re: [問題]MySQL資料庫掛在NFS下
« 回覆 #7 於: 2012-05-22 16:58 »
nfs server 上面權限設定????

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17463
    • 檢視個人資料
    • http://www.study-area.org
Re: [問題]MySQL資料庫掛在NFS下
« 回覆 #8 於: 2012-05-22 22:33 »
本機 mysql 的帳號 ID 跟 nfs server 的 ID 有一致嗎?

jlovet

  • 憂鬱的高中生
  • ***
  • 文章數: 126
    • 檢視個人資料

ced_free

  • 可愛的小學生
  • *
  • 文章數: 20
    • 檢視個人資料
Re: [問題]MySQL資料庫掛在NFS下
« 回覆 #10 於: 2012-05-23 09:47 »
本機 mysql 的帳號 ID 跟 nfs server 的 ID 有一致嗎?

NFS我是開放所有存取權限,也提供匿名登入,這樣應該可以吧?
我有試過要修改nfs的帳號給mysql
可是,我還是新新新新手
mysql的操作帳號是mysql,但密碼是啥我不知道,預設的我又不敢亂改,所以我就沒試過讓兩個server配對同一帳號了
請問前輩是否有方法可解,這兩個帳號不一致的問題?

感謝前輩 :)

ced_free

  • 可愛的小學生
  • *
  • 文章數: 20
    • 檢視個人資料
Re: [問題]MySQL資料庫掛在NFS下
« 回覆 #11 於: 2012-05-23 09:49 »
http://slaptijack.com/system-administration/mysql-selinux-cant-change-dir-errcode-13/

nfs 不可以chcon?

對,沒有辦法chcon,試過了之後,錯誤訊息是,此操作不被允許還是接受之類的,我有點忘了
總之是不讓我chcon

謝謝前輩指點 :)

hikohan

  • 俺是博士!
  • *****
  • 文章數: 1288
    • 檢視個人資料
Re: [問題]MySQL資料庫掛在NFS下
« 回覆 #12 於: 2012-05-23 12:02 »
錯誤的方向要找正確的答案?
lifeIsFunWithPHP.

ced_free

  • 可愛的小學生
  • *
  • 文章數: 20
    • 檢視個人資料
Re: [問題]MySQL資料庫掛在NFS下
« 回覆 #13 於: 2012-05-23 14:29 »
錯誤的方向要找正確的答案?

錯誤的方向找正確的方向
錯誤的用法找正確的方向
錯誤的軟體找正確的軟體
不錯不問,問了不錯
這正是我來此詢問的目的

謝謝前輩指導 :)

hikohan

  • 俺是博士!
  • *****
  • 文章數: 1288
    • 檢視個人資料
Re: [問題]MySQL資料庫掛在NFS下
« 回覆 #14 於: 2012-05-23 15:00 »
so, google it:
https://www.google.com.tw/#hl=zh-TW&site=&source=hp&q=mysql+data+NFS&oq=mysql+data+NFS&aq=f&aqi=&aql=&gs_l=hp.3...2091.6794.0.9167.14.12.0.2.2.0.44.434.12.12.0...0.0.PHywVwG46c0&bav=on.2,or.r_gc.r_pw.r_cp.,cf.osb&fp=932750b9220b592b&biw=1005&bih=628

沒兩篇就有人炮效能問題,不過,裡面有一篇寫著
NFS locking is ALWAYS problematical. You might have no problems, you might also be instantly in hell.

如果你是要做HA,應該讀官方有關HA, cluster 跟 replication 文章。

出發點是 share data 在 NFS然後多 mysqld 讀取單一 data raw?
還是你覺得什麼東西都放在 NFS 很優?
lifeIsFunWithPHP.

ced_free

  • 可愛的小學生
  • *
  • 文章數: 20
    • 檢視個人資料
Re: [問題]MySQL資料庫掛在NFS下
« 回覆 #15 於: 2012-05-23 15:32 »
so, google it:
https://www.google.com.tw/#hl=zh-TW&site=&source=hp&q=mysql+data+NFS&oq=mysql+data+NFS&aq=f&aqi=&aql=&gs_l=hp.3...2091.6794.0.9167.14.12.0.2.2.0.44.434.12.12.0...0.0.PHywVwG46c0&bav=on.2,or.r_gc.r_pw.r_cp.,cf.osb&fp=932750b9220b592b&biw=1005&bih=628

沒兩篇就有人炮效能問題,不過,裡面有一篇寫著
NFS locking is ALWAYS problematical. You might have no problems, you might also be instantly in hell.

如果你是要做HA,應該讀官方有關HA, cluster 跟 replication 文章。

出發點是 share data 在 NFS然後多 mysqld 讀取單一 data raw?
還是你覺得什麼東西都放在 NFS 很優?

前輩,我不是要來說NFS有多棒的,我是來問問題的
我說了,我是新新新新手
NFS有多棒? 坦白說,新手是不會知道這種問題的
有問題只想要解決,只想知道解決問題的辦法
您懷疑我用錯誤的方向想要找正確的答案
我也在您懷疑之前告知,我已經將msyql資料庫指向本機了
現在只想單純的知道,為什麼mysql不能用在NFS之下

謝謝前輩的指導 :)

hikohan

  • 俺是博士!
  • *****
  • 文章數: 1288
    • 檢視個人資料
Re: [問題]MySQL資料庫掛在NFS下
« 回覆 #16 於: 2012-05-23 15:53 »
把 SELINUX 關閉然後掛在 SMB 路徑上,看看有沒有成功的機會。

NFS lock會影響mysql raw access與lock嗎?或許應該有可能,既然你下定決心了,

記得把你成功的結局分享給大家吧。
lifeIsFunWithPHP.

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17463
    • 檢視個人資料
    • http://www.study-area.org
Re: [問題]MySQL資料庫掛在NFS下
« 回覆 #17 於: 2012-05-23 19:11 »
ID跟賬號名稱是不同的唷~
我要確定的是雙方的ID要一致。

hikohan

  • 俺是博士!
  • *****
  • 文章數: 1288
    • 檢視個人資料
Re: [問題]MySQL資料庫掛在NFS下
« 回覆 #18 於: 2012-05-23 23:19 »
老大好像說 UID.GID 吧,是吧!
lifeIsFunWithPHP.

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17463
    • 檢視個人資料
    • http://www.study-area.org
Re: [問題]MySQL資料庫掛在NFS下
« 回覆 #19 於: 2012-05-23 23:37 »
老大好像說 UID.GID 吧,是吧!

對,就是這個意思... :)

ced_free

  • 可愛的小學生
  • *
  • 文章數: 20
    • 檢視個人資料
Re: [問題]MySQL資料庫掛在NFS下
« 回覆 #20 於: 2012-05-25 11:13 »
老大好像說 UID.GID 吧,是吧!

對,就是這個意思... :)

兩位前輩
Mysql ID = 27:27
NFS ID = 65534:65534
我將兩個ID改為一致,都修改為 27:27
重開機後發現還是無法啟動mysql

若依照 hikohan 關閉SELinux的話
開機則能自動啟動mysql

請問兩位前輩,這是否代表SELinux政策有其中一項阻擋了NFS成為mysql資料庫呢?
其中有關mysql的SELinux,但我想應該跟nfs無關
allow_user_mysql_connect --> off
mysql_connect_any --> off

望請前輩再次指點,感謝 :)

以下是我的SELinux政策內容
代碼: [選擇]
abrt_anon_write --> off
abrt_handle_event --> off
allow_console_login --> on
allow_cvs_read_shadow --> off
allow_daemons_dump_core --> on
allow_daemons_use_tcp_wrapper --> off
allow_daemons_use_tty --> on
allow_domain_fd_use --> on
allow_execheap --> off
allow_execmem --> on
allow_execmod --> on
allow_execstack --> on
allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
allow_gssd_read_tmp --> on
allow_guest_exec_content --> off
allow_httpd_anon_write --> off
allow_httpd_mod_auth_ntlm_winbind --> off
allow_httpd_mod_auth_pam --> off
allow_httpd_sys_script_anon_write --> off
allow_java_execstack --> off
allow_kerberos --> on
allow_mount_anyfile --> on
allow_mplayer_execstack --> off
allow_nfsd_anon_write --> off
allow_nsplugin_execmem --> on
allow_polyinstantiation --> off
allow_postfix_local_write_mail_spool --> on
allow_ptrace --> off
allow_rsync_anon_write --> off
allow_saslauthd_read_shadow --> off
allow_smbd_anon_write --> off
allow_ssh_keysign --> off
allow_staff_exec_content --> on
allow_sysadm_exec_content --> on
allow_unconfined_nsplugin_transition --> off
allow_user_exec_content --> on
allow_user_mysql_connect --> off
allow_user_postgresql_connect --> off
allow_write_xshm --> off
allow_xguest_exec_content --> off
allow_xserver_execmem --> off
allow_ypbind --> off
allow_zebra_write_config --> on
authlogin_radius --> off
cdrecord_read_content --> off
clamd_use_jit --> off
cobbler_anon_write --> off
cobbler_can_network_connect --> off
cobbler_use_cifs --> off
cobbler_use_nfs --> off
cron_can_relabel --> off
dhcpc_exec_iptables --> off
domain_kernel_load_modules --> off
exim_can_connect_db --> off
exim_manage_user_files --> off
exim_read_user_files --> off
fcron_crond --> off
fenced_can_network_connect --> off
fenced_can_ssh --> off
ftp_home_dir --> off
ftpd_connect_db --> off
git_cgit_read_gitosis_content --> off
git_session_bind_all_unreserved_ports --> off
git_system_enable_homedirs --> off
git_system_use_cifs --> off
git_system_use_nfs --> on
global_ssp --> off
gpg_agent_env_file --> off
gpg_web_anon_write --> off
httpd_builtin_scripting --> on
httpd_can_check_spam --> off
httpd_can_network_connect --> on
httpd_can_network_connect_cobbler --> off
httpd_can_network_connect_db --> off
httpd_can_network_memcache --> off
httpd_can_network_relay --> off
httpd_can_sendmail --> off
httpd_dbus_avahi --> on
httpd_enable_cgi --> on
httpd_enable_ftp_server --> off
httpd_enable_homedirs --> off
httpd_execmem --> off
httpd_read_user_content --> off
httpd_setrlimit --> off
httpd_ssi_exec --> off
httpd_tmp_exec --> off
httpd_tty_comm --> on
httpd_unified --> on
httpd_use_cifs --> off
httpd_use_gpg --> off
httpd_use_nfs --> on
icecast_connect_any --> off
init_upstart --> on
irssi_use_full_network --> off
logging_syslogd_can_sendmail --> off
mmap_low_allowed --> off
mozilla_read_content --> off
mysql_connect_any --> off
named_write_master_zones --> off
ncftool_read_user_content --> off
nfs_export_all_ro --> on
nfs_export_all_rw --> on
nscd_use_shm --> on
nsplugin_can_network --> on
openvpn_enable_homedirs --> on
piranha_lvs_can_network_connect --> off
pppd_can_insmod --> off
pppd_for_user --> off
privoxy_connect_any --> on
puppet_manage_all_files --> off
puppetmaster_use_db --> off
qemu_full_network --> on
qemu_use_cifs --> on
qemu_use_comm --> off
qemu_use_nfs --> on
qemu_use_usb --> on
racoon_read_shadow --> off
rgmanager_can_network_connect --> off
rsync_client --> off
rsync_export_all_ro --> off
samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> off
samba_export_all_ro --> off
samba_export_all_rw --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> on
secure_mode --> off
secure_mode_insmod --> off
secure_mode_policyload --> off
sepgsql_enable_users_ddl --> on
sepgsql_unconfined_dbadm --> on
smartmon_3ware --> off
spamassassin_can_network --> off
spamd_enable_home_dirs --> on
squid_connect_any --> on
squid_use_tproxy --> off
ssh_chroot_rw_homedirs --> off
ssh_sysadm_login --> off
telepathy_tcp_connect_generic_network_ports --> off
tftp_anon_write --> off
tor_bind_all_unreserved_ports --> off
unconfined_login --> on
unconfined_mmap_zero_ignore --> off
use_fusefs_home_dirs --> off
use_lpd_server --> off
use_nfs_home_dirs --> on
use_samba_home_dirs --> off
user_direct_dri --> on
user_direct_mouse --> off
user_ping --> on
user_rw_noexattrfile --> on
user_setrlimit --> on
user_tcp_server --> off
user_ttyfile_stat --> off
varnishd_connect_any --> off
vbetool_mmap_zero_ignore --> off
virt_use_comm --> off
virt_use_fusefs --> off
virt_use_nfs --> off
virt_use_samba --> off
virt_use_sanlock --> off
virt_use_sysfs --> on
virt_use_usb --> on
virt_use_xserver --> off
webadm_manage_user_files --> off
webadm_read_user_files --> off
wine_mmap_zero_ignore --> off
xdm_exec_bootloader --> off
xdm_sysadm_login --> off
xen_use_nfs --> off
xguest_connect_network --> on
xguest_mount_media --> on
xguest_use_bluetooth --> on
xserver_object_manager --> off

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17463
    • 檢視個人資料
    • http://www.study-area.org
Re: [問題]MySQL資料庫掛在NFS下
« 回覆 #21 於: 2012-05-25 13:19 »
如果把 selinux 關掉馬上就好,那才需要改 selinux 的規則。

65534 是 nfsnobody 的 ID,
請問你是用 root 的身份去存取的嗎?
因為看起來是被 squash 掉 ID 了,在 server 端加上 no_root_squash 看看?
或是用 all_squash 及 anonuid= 與 anongid= 來修改為指定的 ID

ced_free

  • 可愛的小學生
  • *
  • 文章數: 20
    • 檢視個人資料
Re: [問題]MySQL資料庫掛在NFS下
« 回覆 #22 於: 2012-05-25 14:10 »
如果把 selinux 關掉馬上就好,那才需要改 selinux 的規則。

65534 是 nfsnobody 的 ID,
請問你是用 root 的身份去存取的嗎?
因為看起來是被 squash 掉 ID 了,在 server 端加上 no_root_squash 看看?
或是用 all_squash 及 anonuid= 與 anongid= 來修改為指定的 ID

回前輩,是把SELinux關掉就馬上好沒錯,所以我猜應該是其中一個規則的問題
但我不敢亂改,所以想請教是否哪些規則可能會影響的

感謝前輩 :)

hikohan

  • 俺是博士!
  • *****
  • 文章數: 1288
    • 檢視個人資料
Re: [問題]MySQL資料庫掛在NFS下
« 回覆 #23 於: 2012-05-25 16:06 »
ced_free大哥,搞好了,可以work了,你真的敢把重要的資料'擺'在NFS上面存取運作?

NFS exports加上no_root_squash options後,可以運作了,mysqld的raw access跟nfsd的nfs lock有相對影響嗎?

在大家都是往HA 跟Extreme performance方向走,您這個方向反倒是往low performance && risk規劃?

感覺不出有S.A.還是DBA的專業規則。
lifeIsFunWithPHP.

ced_free

  • 可愛的小學生
  • *
  • 文章數: 20
    • 檢視個人資料
Re: [問題]MySQL資料庫掛在NFS下
« 回覆 #24 於: 2012-05-25 16:56 »
ced_free大哥,搞好了,可以work了,你真的敢把重要的資料'擺'在NFS上面存取運作?

NFS exports加上no_root_squash options後,可以運作了,mysqld的raw access跟nfsd的nfs lock有相對影響嗎?

在大家都是往HA 跟Extreme performance方向走,您這個方向反倒是往low performance && risk規劃?

感覺不出有S.A.還是DBA的專業規則。

hikohan前輩
我已經強調過了,我把資料放回本機端了
很單純的只是想要了解為什麼MySQL不能掛在NFS下
而且我本來就不專業啊 :) 我是新手嘛
新手不會懂這些專業規則的,因為我根本沒經驗啊,呵呵

不過netman前輩有提到說可以單改SELinux即可
您教我把SELinux關掉,我關掉後確實可以不用動NFS就可以啟動Mysql了
請問您知道該關哪個選項嗎?

感謝前輩的協助 :)

hikohan

  • 俺是博士!
  • *****
  • 文章數: 1288
    • 檢視個人資料
Re: [問題]MySQL資料庫掛在NFS下
« 回覆 #25 於: 2012-05-25 17:02 »
最簡單就是把 SELINUX 整個...關掉。

https://www.google.com.tw/#hl=zh-TW&site=&source=hp&q=selinux+disable&oq=selinux+disable&aq=f&aqi=g10&aql=&gs_l=hp.3..0l10.1525.5394.0.7945.15.10.0.5.5.0.100.590.9j1.10.0...0.0.BVxy0uK2tHo&bav=on.2,or.r_gc.r_pw.r_cp.,cf.osb&fp=208eb8c4d6a1a464&biw=1005&bih=628

如果您不想仔細攻讀 selinux 的話,這是最簡單的。

就方向來說,個人完全不建議這樣設定,包括 selinux disable 。

太危險了,簡直拿飯碗開玩笑。
lifeIsFunWithPHP.

ced_free

  • 可愛的小學生
  • *
  • 文章數: 20
    • 檢視個人資料
Re: [問題]MySQL資料庫掛在NFS下
« 回覆 #26 於: 2012-05-25 17:05 »
最簡單就是把 SELINUX 整個...關掉。

https://www.google.com.tw/#hl=zh-TW&site=&source=hp&q=selinux+disable&oq=selinux+disable&aq=f&aqi=g10&aql=&gs_l=hp.3..0l10.1525.5394.0.7945.15.10.0.5.5.0.100.590.9j1.10.0...0.0.BVxy0uK2tHo&bav=on.2,or.r_gc.r_pw.r_cp.,cf.osb&fp=208eb8c4d6a1a464&biw=1005&bih=628

如果您不想仔細攻讀 selinux 的話,這是最簡單的。

就方向來說,個人完全不建議這樣設定,包括 selinux disable 。

太危險了,簡直拿飯碗開玩笑。

前輩
我知道怎麼Disable,否則您叫我關的時候我就不會用了
我現在只是不知道該將哪個選項off掉
也知道不能disable
我現在只是在玩,不需要靠他吃飯的
感謝前輩為小弟著想 :)

darkranger

  • 榮譽學長
  • 俺是博士!
  • *****
  • 文章數: 1370
    • 檢視個人資料
    • http://darkranger.no-ip.org
Re: [問題]MySQL資料庫掛在NFS下
« 回覆 #27 於: 2012-05-25 22:04 »
我知道怎麼Disable,否則您叫我關的時候我就不會用了
我現在只是不知道該將哪個選項off掉
setroubleshoot
http://linux.vbird.org/linux_basic/0440processcontrol.php#setroubleshoot