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 文件,这两个文件上面给出的教程中讲的很详细,不再赘述。具体修改的原因我也不知道,所以我不敢不改,也不知道为啥要改。如果以后有机会弄明白了再来添加吧。
小菜鸟要努力学习,欢迎大神批评指正