windows azure虚拟机CentOS下更改mysql存储位置

       

        此次迁移,参照的教程为:http://wenku.baidu.com/view/e6bbe717cc7931b765ce15cc.html

        这个教程是我所找到的最好的一个。我这次是迁移的一个空的数据库,教程中迁移的是一个有数据的数据库,如果你的数据库中有数据,可以按教程中的步骤做,过程中碰到的问题,可以在本篇博客中查找。

        把 mysql 存储目录更改到/data/mysql  

        先停下mysql的服务。使用命令: service mysqld stop。

        1, 首先找到/etc/my.cnf,备份一下,修改其中的

             datadir=/var/lib/mysql
             socket=/var/lib/mysql/mysql.sock

        为要迁移到的目录
             datadir=/data/mysql
             socket=/data/mysql/mysql.sock

        接下来,要把/var/lib/mysql这个目录,整个拷贝到/data下面。可以用命令 cp -arp /var/lib/mysql/ /data/。

        启动一下mysql试试( service mysqld start ),同时观察mysql的启动日志(/var/log/mysqld.log)。

        启动应该没问题,如果出现如下类似的警告:Can't create test file /data/mysql/****.lower-test。这个是权限的问题,在我拷贝mysql目录的时候使用的命令是:cp -arp 其中-a是把权限也一起拷贝过来。不会有权限问题,如果出现这个警告,先看一下是不是拷贝的时候命令中没有加 -a ,如果加了还不行,可以看一下这篇文章:http://www.huoxingfan.com/834.html 。不保证可以改好。

         2,启动没问题的话,尝试连接一下mysql数据库 。 mysql -u root -p 。报错:Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'。此时,需要建立一个mysql.sock的链接:
        ln -s /data/mysql/mysql.sock /var/lib/mysql/mysql.sock

        然后再连接一下mysql数据库, mysql -u root -p。这次成功了。

        3,成功之后,我们尝试在mysql中建立一个数据库move_test。建成之后,可以用 ls 命令查看一下/data/mysql 发现下面多了一个move_test的文件夹。到这里,我就默认为迁移成功了。

        4,大部分的教程还有两部分,即修改 /etc/init.d/mysqld 文件和 /usr/bin/mysqld_safe 文件,这两个文件上面给出的教程中讲的很详细,不再赘述。具体修改的原因我也不知道,所以我不敢不改,也不知道为啥要改。如果以后有机会弄明白了再来添加吧。

        小菜鸟要努力学习,欢迎大神批评指正

相关推荐