mysql數據庫數據從一個linux系統移植到另一個linux系統的方法

背景

問題介紹

現在有一個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中的內容

You May Also Like