日常检查服务器发现磁盘空间有些不足,大目录主要集中在数据库/var/lib/mysql 下。
一. 计划先清理数据库碎片
1. 查看MySql碎片占用空间
SHOW TABLE STATUS LIKE '表名称';
// DATA_FREE为碎片空间
2. 清理碎片
optimize table 表名称;
// 此操作会锁表,如果数据量过大费时较长,谨慎使用。有必要时需提前备份数据
// 清理没啥效果,查来查去就是数据太多了。需要添加磁盘,把原有数据移至新磁盘。
二. 开始迁移数据
1. 复制MySql数据至新目录,先查看MySql数据目录地址
show variables like '%dir%';
// datadir 为目录地址
2. 需要复制至新目录
cp -R srcDir desDir
3. 新目录设置权限
chown mysql:mysql -R desDir
4. 修改MySql配置
vi /etc/mysql/my.cnf
// datadir = 添加新目录
5. 重启数据库
sudo /etc/init.d/mysql restart
注:如果重启过程中出现新目录无权限等问题,请参照CLICK URL内容。
三. 数据迁移完毕。