按照网上提供的方法,操作顺序为:停apache,停mysql,拷贝数据库文件到目标分区,修改my.cnf,修改datadir,然后启动mysql,apache进行测试。确认已经在新的地方了。但是过了一段时间去看,发现又存储在老的地方了。怎么这么奇怪呢?我用的是Debian系统。希望各位帮忙,数据库分区现在就只有100多m了,快没空间了。

解决方案 »

  1.   

    把下面两个的输出贴出来shell> ps aux|grep mysql
    mysql> show variables like 'datadir'
      

  2.   

    root     14048  0.0  0.0  11476  1396 ?        S    02:39   0:00 /bin/sh /usr/bi
    n/mysqld_safe --user mysql
    mysql    15254  1.3  0.5 247412 42116 ?        Sl   03:18  14:54 /usr/sbin/mysql
    d --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysql
    d/mysqld.pid --skip-external-locking --port=3306 --socket=/var/run/mysqld/mysqld
    .sock --user mysql
    root     15276  0.0  0.0   6336   684 ?        S    03:18   0:00 logger -p daemo
    n.err -t mysqld_safe -i -t mysqld
    root     12249  0.0  0.0   6464   756 pts/1    S+   21:24   0:00 grep mysql第二个:
    datadir /var/lib/mysql/
      

  3.   

    你是怎么发现又存储在老地方的?你的老地方和新地方的路径分别是什么?/var/lib/mysql是老地方还是新地方?
      

  4.   

    老地方/var/lib/mysql/
    新地方/home/mysql/data/
    晚上3点测试好的,增加数据后,看磁盘的大小变化,是home分区在变化,还有就是mysql下的ibdata1也在变化。但是早上再看的时候就发现home磁盘大小不变,/var在磁盘空间在减少,而且ibdata1也是/var下在变化,home不变化了。
      

  5.   

    看看输出:
     shell> /usr/sbin/mysqld --verbose --help 2>/dev/null |grep cnf另外你编辑的my.cnf的路径是什么?datadir是否在[mysqld]下面?
      

  6.   

    我把原来位置的目录名称改名后就正常了。谢谢surfchen