vagrant - 使用NFS文件夾作為mysql datadir無法啟動mysql的問題?
問題描述
我使用的主機是WIN10系統,搭建了一個以vagrant來控制的虛擬機作為開發環境。我的虛擬機是vbox,系統是centos7。所有需要依賴的vagrant插件全部都安裝好了,包括vboxadditional vagrant-nfs vagrant-winnfs vagrant-bindfs。主要問題如下:我的/etc/my.cnf配置了datadir是我的vagrant NFS共享文件夾。叫/vagrant_db,權限什么的都用bindfs已經配置好了的。用戶是mysql 用戶組也是mysql。我的mysql.sock配置不變,仍然是/var/lib/mysql,因為我試過無數次配置到/vagrant_db都啟動不了.....然后開機自動啟動mysql居然可以成功.....但是數據庫目錄明顯不是/vagrant_db。然后關閉mysql 重新開啟mysql失敗,報錯:
2016-06-27T08:56:12.882562Z 0 [ERROR] InnoDB: Log file ./ib_logfile0 size 4096 is not a multiple of innodb_page_size2016-06-27T08:56:12.882602Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error2016-06-27T08:56:13.484483Z 0 [ERROR] Plugin ’InnoDB’ init function returned error.2016-06-27T08:56:13.484510Z 0 [ERROR] Plugin ’InnoDB’ registration as a STORAGE ENGINE failed.2016-06-27T08:56:13.484516Z 0 [ERROR] Failed to initialize plugins.2016-06-27T08:56:13.484519Z 0 [ERROR] Aborting
好吧,貌似是innodb出了問題。而且是./ib_logfile0這個文件的鍋。機智的我就把/var/lib/mysql下面的所有文件全部復制到/vagrant_db下面去。然后果然能啟動了.....估計是某些原因開啟啟動的時候的環境和再次啟動的環境不同導致的問題?然后機智的我就去取消了mysqld的開機啟動。然后手動啟動mysql....依舊啟動不了...不知道是為什么必須要以/var/lib/mysql為datadir成功啟動一次然后復制文件過去/vagrant_db才能以/vagrant_db啟動成功。我去google過說是Innodb的機制的問題。但是我現階段的環境非常需要以NFS作為共享文件夾來作為datadir同時,我也不會多虛擬機啟動去同時使用一個innodb數據庫。我知道這樣會觸碰到innodb的鎖機制。我只需要一次啟動就可以使用NFS文件夾作為datadir的方案...有沒有人有解決方案?
問題解答
回答1:最近正好剛移動過數據庫目錄:
mv /var/lib/mysql/* /home/mysql/ln -s /home/mysql/mysql.sock /var/lib/mysql/mysql.sockchown -R mysql:mysql /home/mysql
但當移動目錄是掛載目錄比如vagrant sync folder時,無法改變用戶組,mysqld啟動不了...你是怎么做到的
相關文章:
1. 視頻文件不能播放,怎么辦?2. 前端 - 誰來解釋下這兩個 CSS selector 區別3. javascript - 求幫助 , ATOM不顯示界面!!!!4. javascript - ios返回不執行js怎么解決?5. python - 爬蟲模擬登錄后,爬取csdn后臺文章列表遇到的問題6. html5 - HTML代碼中的文字亂碼是怎么回事?7. python bottle跑起來以后,定時執行的任務為什么每次都重復(多)執行一次?8. mysql - 分庫分表、分區、讀寫分離 這些都是用在什么場景下 ,會帶來哪些效率或者其他方面的好處9. javascript - vue2如何獲取v-model變量名10. javascript - angular使從elastichearch中取出的文本高亮顯示,如圖所示
