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. java - 如何在Fragment中調用Activity的onNewIntent?2. python的文件讀寫問題?3. sass - gem install compass 使用淘寶 Ruby 安裝失敗,出現 4044. mysql里的大表用mycat做水平拆分,是不是要先手動分好,再配置mycat5. javascript - ionic1的插件如何遷移到ionic2的項目中6. python - 獲取到的數據生成新的mysql表7. css - 關于input標簽disabled問題8. window下mysql中文亂碼怎么解決??9. javascript - h5上的手機號默認沒有識別10. javascript - 圖片鏈接請求一直是pending狀態,導致頁面崩潰,怎么解決?
