我想要创建一个lvm,然后创建一个/data目录,将lvm挂载到此目录下,然后修改mysql的datadir为/data/mysql(mysql的默认datadir为/var/lib/mysql),接着创建快照,进行mysql备份
一、创建lvm
1、添加一块硬盘/dev/sdb,划分一个分区/dev/sdb1,大小2G,修改文件类型为8e
2、创建pv、vg、lv
3、将mylv格式化,并挂载到/data
4、将/var/lib/mysql下的文件拷贝到/data
二、修改mysql的datadir的路径
1、修改/etc/my.cnf
将原本的datadir与socket注释掉,添加新的记录
2、修改/etc/init.d/mysqld
将原本get_mysql_option注释掉,添加新的记录
3、修改/usr/bin/mysqld_safe
将下面
改为
4、修改/usr/lib64/mysql/mysql_config
5、修改selinux
6、启动服务
7、登入mysql
解决办法
成功连接
三、创建快照
1、锁表
2、创建快照(在另一个控制台操作)
3、释放表
4、挂载快照
5、将快照打包,并删除快照
四、测试
1、在已有数据库learn,创建表class
2、备份日志文件(增量备份)
3、删除/data/mysql里的文件,将快照解压缩到/data/mysql
4、连接数据库
解决办法
4、查看数据库learn
恢复到创建class表之前状态
5、恢复到创建class表之后的状态
总结:花了很多时间去网上百度怎么修改mysql的datadir,尝试了很多办法,都启动不了mysql。后面终于成功启动服务,但是连接mysql时,所需要的socket文件还是在/var/lib/mysql下,只能通过链接,将/var/lib/mysql/mysql.sock链接到/data/mysql/mysql.sock。在后面的测试中,快照压缩包里不含socket文件,在还原时,还是需要重启mysql,删除原来/var/lib/mysql/mysql.sock,再进行将/var/lib/mysql/mysql.sock链接到/data/mysql/mysql.sock