检验重定位MySQL数据目录的效果


  本文标签:MySQL数据目录

  在我们重定位MySQL数据目录之后,应该如何检验效果呢?下文对检验重定位MySQL数据目录的方法进行了详细的介绍,供您参考  。

  在试图重定位任何东西之前,检验操作达到预期效果是个好主意  。借助于du、df和ls -l命令获得磁盘空间的信息,但这些依赖于你正确了解你的文件系统的布局  。

  下面演示一个在你检验一个属目录重定位时的设计陷阱  。假定你的MySQL数据目录是/usr/local/var,而你想把它移到/var/mysql,因为df显示/var文件系统有很多的空闲空间:

  %df /usr /var
Filesystem  1k-blocks     Used   Avail  Capacity  Mounted on
/dev/wd0s3e    396895   292126   73018    80%     /usr
/dev/wd0s3f   1189359  1111924  162287    15%     /var
  
重定位的MySQL数据目录在/usr文件系统上有多少空闲空间呢?要知道它,使用du -s找出该目录使用多少空间  。

  %cd /usr/local/var
%du -s .
133426
这大约是130MB,真实这样吗?在数据目录下试一下df:

  %df /usr/local/var
Filesystem  1k-blocks     Used   Avail  Capacity  Mounted on
/dev/wd0s3f   1189359  1111924  162287    15%     /var 
这就奇怪了  。如果我们为包含/usr/local/var的文件系统申请空闲空间,为什么却报告var上的空间呢?这里ls -l提供了答案:

  %ls -l /usr/local
....
lrwxrwxrwx  1  root  wheel  10 Dec 11 23:33 var -> /var/mysql
.... 
输出显示/usr/local/var是对/var/mysql的符号连接,换句话说,数据目录已经被重定位于/var文件系统,并用一个指向那里的符号连接代替  。通过将数据目录移到/var竟然释放了/usr上那么多空间!