在linux下默认的Mysql数据库存储的路径为:var/lib/mysql
假如你要把目录迁移到/data/mysqldata 下需要进行以下配置:
1.要把与Mysql数据库有关的服务停掉,禁止访问Mysql
2.要把你的Mysql用mysqldump 这个命令备份
3.建立所要迁移的目录或是路径
如:
#dir –p/data/mysqldata
4. 止mysql服务
#etc/init.d/mysqldstop或是用service mysqld stop
5. /var/lib/mysql整个目录移到/data/mysqldata下
这里我用cp以备出问题当然用mv也可以,
#cp –arp /var/lib/mysql/data/mysqldata/
这样只是把目录和文件移过去了,此时mysql控制文件还不知道它自己的数据库已经换了个位置。
6. 需要配置控制文件:
一般vi/etc/my.cnf 如果你vi后发现没有东西呀是在这个目录下就没有这个文件你可以去/usr/share/mysql/目录下找到一个my-medium.cnf 文件,如果还是没有你可以用find 命令去查找。这里就不详细说了。(find / -name *.cnf 或find / -name my.cnf)。接下来我们要编辑/etc/my.cnf为了保证mysql能正常工作我们需要指明mysql.sock文件产生的地址。
#vi /etc/my.cnf
将#ocket =/var/lib/mysql/mysql.sock注释掉在下面加下一行
socket =/data/mysqldata/mysql/mysql.sock
注:有些环境不一样,所以你最好查看一下,把指名的/var/lib/mysql/ 这个路径下的文件都换成/data/mysqldata/mysql 即可
7. 还有一个就是启动脚本的配置
#vi/etc/init.d/mysqld
和上面配置my.cnf是一个道理:
把#atadir=/var/lib/mysql给注释掉再他的下面添加
datadir=/data/mysqldata/mysql
当然你也要检查一下看看还有别的是指在了/var/lib/mysql 都给他改成/data/mysqldata/mysql
这一步改完了还有一步要注意:
用#ln –s /data/mysqldata/mysql/mysql.sock/var/lib/mysql/mysql.sock命令来链接一下。
如果你前面把mysql的目录是mv到你所要更改的目录的话,这时你的/var/lib/mysql/ 是没有mysql.sock文件的,所以你还得要重新cp一份过来再执行上面的命令。
注意一下:mysql 目录及里面的文件的权限,我前面用到cp –arp的道理就是为了不用改权限,当然了为了安全还是要检查的好。无论mysql的目录在什么地方他的权限为rwxr_xr_x这个就不多说了。如果你是用cp的话,最后记得把/var/lib/mysql这个目录mv到别的目录下比说/home/下
如果按照上面的话,就可以完事。
8.#/etc/init.d/mysqldstart或是用service start 启动数据库
以及用#/etc/init.d/mysqldrestart 一下如果都正常就都ok了,这里就是把数据库迁移成功了。有些程序会用的时候报错,不是mysql的原因是要给程序做一些配置,比哪说把默认的连接localhost改成127.0.0.1等。