記一次 Vagrant 環境下更換 MySQL 資料目錄 datadir 的坑

lukedever發表於2018-08-03

平時用vagrant開發,無奈磁碟只給分配了10g空間,資料庫檔案越來越大導致mysql掛掉,想到將datadir放到共享目錄,這樣就不佔用空間,說幹就幹。

正常更換目錄的操作。

  1. 檢視資料目錄
    mysql> select @@datadir;
    +------------------+
    | @@datadir        |
    +------------------+
    | /data/mysqldata/ |
    +------------------+
  2. 複製目錄,並更改目錄的使用者組
    $ sudo cp -r /data/mysqldata/ /new_folder/
    $ sudo chown -R mysql:mysql /new_folder/
  3. 停止mysql,修改my.cnf並啟動mysql
    $ sudo service mysqld stop
    $ sudo vim /etc/my.cnf     #並不一定在這個位置,可以find / -name my.cnf查詢
    $ ...datadir=/new_folder
    $ sudo service mysqld start
  4. 按照上面的操作應該能成功,但是在vagrant下有個問題,如果new_folder在vagrant共享目錄,那麼這個目錄的使用者組為vagrant:vagrant,chown也無效,所以導致更改正確但還是不能啟動的問題,下面是解決辦法。

vagrant環境下的操作。

在Vagrantfile中新增兩行配置,參考了社群兄弟的文章傳送門下面的回覆才解決的。

config.vm.synced_folder "/path/mysqldata", "/data/mysqldata", owner: "mysql", group: "mysql"
config.vm.provision "shell", inline: "sudo service mysql start"

然後啟動虛擬機器環境的時候,vagrant up --provision就可以了。

原文連結: https://www.phpbest.cn/posts/18.html
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章