欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

mysql数据库数据从一个linux系统移植到另一个linux系统的方法

程序员文章站 2024-01-08 11:12:16
背景 问题介绍 现在有一个linux系统的机器上数据需要移植到另外一个linux系统上。老机器称A机器,新机器称B机器。 前期调研 鉴于网上资料很多都是相同内容,而数据库的...

背景

问题介绍

现在有一个linux系统的机器上数据需要移植到另外一个linux系统上。老机器称A机器,新机器称B机器。

前期调研

鉴于网上资料很多都是相同内容,而数据库的数据一般都很重要,这些方法都要先自己试验成功之后才会使用。

主要是有三种方法 1、直接拷贝数据文件

2、使用mysqldump来导入导出

3、采用专用工具

前两种方法是比较常见,因此在试用了第一种方法成功之后就采用了第一种方法

环境

A机器:cenos6.5、mysql是5.5

B机器:cenos7、mysql是5.5

开始工作

移植前的准备

1、找到mysql数据库数据文件的位置

find / -name 'mysql' 

找到所有mysql的目录查看A、B机器的数据文件的位置。

一般mysql5.5默认的位置是/var/lib/mysql

2、

df -h

查看linux系统中内存大小,是否能符合移植的需要。目前需要移植的数据在110G左右,给B机器分配足够的内存存储

3、初步了解数据文件的格式

1)从文件的扩展名是myisam类型的。

.frm 是描述表结构的文件

.MYD 是表的数据文件

.MYI 是表数据文件中任何索引的数据树。

2)而有些数据文件没有.MYD是数据存储在ibdata1。

因此我们所要做的是将整个/var/lib/mysql整个目录拷贝到B机器上

准备移植

1、首先关闭A、B机器的mysql服务

service mysql stop

也可以采用脚本

/etc/inint.d/mysqld start

2、备份B机器的mysql数据(以防移植后出现问题)

3、使用scp指令传输文件

scp -r root@192.168.1.1:/var/lib/mysql /var/lib

其中192.168.1.1是A机器的ip地址

由于文件110G左右,传输速度基本稳定在10M左右,传输时间基本可以接受。

4、这个时候从A机器拷贝的mysql 数据文件由于是在root权限下执行的,因此数据文件的权限是root,需要将权限改为mysql

chown -r mysql:mysql

不然这里会报错,错误信息也会有很多因素导致。

5、若复制后的文件中有mysql-bin-xxx格式的文件,会导致启动mysql服务失败,若有,需删除。

6、确认不缺失mysql数据库的前提下,开启mysql服务

service mysql start

至此移植工作完成。

后续检验

可以关闭B机器的防火墙后使用navicat来可视化查看表信息,也可以在linux系统下查看

mysql

或者

mysql -uroot -p

进入mysql命令行

show databases;     显示数据库
use database;       使用数据库
select database();显示当前使用数据库
show tables;        显示数据库中的tables
select * from 表名   显示table中的内容