MySql 数据库迁移

对于数据库服务器,随着项目运行的时间,数据会变的越来越多,难免有一天,服务器会出现磁盘空间已满,致使数据操作失败的情况。今天就遇到了这种情况,特别记录一下数据库迁移过程。

1、购买硬盘

首先从在亚马逊操作中心对当前服务器添加一块新的硬盘


2、格式化并挂载硬盘

Xshell 远程登录到服务器,输入 fdisk -l 命名来查看当前服务器有几块硬盘

1.png

从上面可以看出当前服务器有两块硬盘。 xvda 和 xvdf 分别是 8G 和 107G

在根目录下,创新一个新目录 /study

[root@ip-172-31-19-225 ~]# mkdir /study

将新的磁盘挂载到 /mysql 目录,即

[root@ip-172-31-19-225 ~]# mount /dev/xvdf /study
mount: you must specify the filesystem type

上面提示 “mount: you must specify the filesystem type” 说明我们还没有对硬盘进行格式化分区。

因为此服务器是用来存数据库的,没有必要分区,直接将硬盘当一个区用即可。

[root@ip-172-31-19-225 ~]# mkfs.ext4 /dev/xvdf 
....
Writing superblocks and filesystem accounting information: 
...

当我们运行 mkfs.ext4 格式化硬盘时会有上面这样的提示,直接按回车即可。

格式完之后,再运行上面的挂载命名将硬盘挂载到 /study 目录下,运行 df 可以查看

2.png

可以看到 /study 目录,剩余空间很多,即我们的新硬盘。


3、迁移数据库

我们原目录是  /www/mysql  下,要移动到 /study 下,运行拷贝命令

[root@ip-172-31-19-225 ~]# cp -a /www/mysql/* /study/

这儿在拷贝的时候,一定要用 -a 参数,保证原目录属性,否则移动过去之后,可能属性发生变化,还需要手动修改

我们移动的是整个 MYSQL 安装目录(包括数据库目录,默认数据库目录在 MYSQL 安装目录下)这时候,导致我们的 PATH 环境变量也需要修改,否则运行 mysql 命令还是在原来地方找,另外,如果做了  server mysqld 启动服务,也需要修改一下 /etc/init.d/mysqld 文件中的路径

修改好之后,重新启动

root@ip-172-31-22-121 mysql]# service mysqld restart
Shutting down MySQL.... ERROR! The server quit without updating PID file (/dipan/mysql/data/ip-172-31-22-121.us-west-1.compute.internal.pid).
 ERROR! Failed to stop running server, so refusing to try to start.
[root@ip-172-31-22-121 mysql]# service mysqld start

重启过程可能会失败,如上面,我们需要手动再启动一下即可。

现在整个数据迁移完成,可以将原目录删除  rm -rf /www/mysql(确定无用之后), 不删除也可以,就是占点空间而已。

未经允许不得转载:易读小屋  »  MySql 数据库迁移