记一次 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 协议》,转载必须注明作者和本文链接
推荐文章: