记一次 Vagrant 环境下更换 MySQL 数据目录 datadir 的坑
平时用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 协议》,转载必须注明作者和本文链接