平時用vagrant開發,無奈磁碟只給分配了10g空間,資料庫檔案越來越大導致mysql掛掉,想到將datadir放到共享目錄,這樣就不佔用空間,說幹就幹。
正常更換目錄的操作。
- 檢視資料目錄
mysql> select @@datadir; +------------------+ | @@datadir | +------------------+ | /data/mysqldata/ | +------------------+
- 複製目錄,並更改目錄的使用者組
$ sudo cp -r /data/mysqldata/ /new_folder/ $ sudo chown -R mysql:mysql /new_folder/
- 停止mysql,修改my.cnf並啟動mysql
$ sudo service mysqld stop $ sudo vim /etc/my.cnf #並不一定在這個位置,可以find / -name my.cnf查詢 $ ...datadir=/new_folder $ sudo service mysqld start
- 按照上面的操作應該能成功,但是在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 協議》,轉載必須註明作者和本文連結