数据库数据备份
情况一、源数据库服务器和目标数据库不能相互通信时
一、登入源数据库:输入命令。
mysqldump -P3306 -uroot -p’123456’ --single-transaction -R -E --databases system> /home/backup/system.sql;
- 说明:
- -P3306 为端口号(大写的P),如果是默认端口号可以省略
- -uroot 为用户名
- -p’123456’ 为密码(小写的p),如果只输入 -p 则需要在执行命令时再输入一遍密码, 之所以使用 ‘’ 是因为要防止特殊字符 ‘’ 可以转换为字符串
- system 为要拷贝的目标数据库
- /home/backup/system.sql 为要备份到哪里(注意:文件夹需要存在才可以) – 创建文件命令 : mkdir ,例:在home文件下 mkdir backup
二、将备份的文件压缩:输入命令。
先 cd 到目标文件所在目录。例如:cd /home/backup
tar -czvf system.tar.gz system.sql
- 说明:
- system.tar.gz 为压缩的目标文件路径和目标文件名称
- system.sql 为要压缩的源文件路径和源文件
三、将压缩的文件下来到本地:输入命令(一般使用可视化工具)
先 cd 到目标文件所在目录。
sz system.sql
- 说明:
- sz 为下载命令
- rz 为上传命令
下面开始操作目标数据库
四、将文件传输到目标服务器:输入命令(一般使用可视化工具)
先 cd 到目标文件所在目录。
rz
- 会有弹框提示,选择文件之后上传即可
五、解压源文件:输入命令。
tar -xzvf system.tar.gz
- 说明:
- 将源文件解压
六、将原数据导入到目标数据库:输入命令。
先 cd 到目标文件所在目录。
======== 特别注意,在操作这一步之前,一定要注意数据库名称 ========
如果是备份传输了一份和源数据可同名的数据库,那可以直接运行备份命令,如果不是备份和源数据库同名的目标数据库,一定要注意修改解压后的sql文件。否则源数据库中的数据内容会将目标数据库中的数据覆盖。
例如:源数据库叫system,可是目标数据库要改为 system_window则需要修改源sql文件
使用vi
命令将sql文件打开。找到CREATE DATABASE
和USE
的地方进行修改
# 源
CREATE DATABASE IF NOT EXISTS `system` DEFAULT CHARACTER SET utf8mb4;
USE `system`;
# 目标
CREATE DATABASE IF NOT EXISTS `system_window` DEFAULT CHARACTER SET utf8mb4;
USE `system_window`;
mysql -P3306 -uroot -p’123456’ < system.sql
到此为止,就可以把两个相互之间不能相互通信的服务器数据库数据同步过来了。
##########################################################################
情况二、源数据库服务器和目标数据库能相互通信时
如果两个服务器之间可以项目通信那就省去了很多麻烦了。
一、登入目标数据库:输入命令。
注意:这里登录的是目标数据库
mysqldump -h192.168.x.x -P3306 -uroot -p’123456’ --single-transaction -R -E --databases system> /home/backup/system.sql;
-
说明:
-
重点说明:
- -h192.168.x.x 此处为源服务器地址,可以直接只用此地址进行数据的拉取
-
-P3306 为端口号(大写的P),如果是默认端口号可以省略
-
-uroot 为用户名
-
-p’123456’ 为密码(小写的p),如果只输入 -p 则需要在执行命令时再输入一遍密码, 之所以使用 ‘’ 是因为要防止特殊字符 ‘’ 可以转换为字符串
-
system 为要拷贝的目标数据库
-
/home/backup/system.sql 为要备份到哪里(注意:文件夹需要存在才可以) – 创建文件命令 : mkdir ,例:在home文件下 mkdir backup
-