记一次Mysql数据库迁移

MySQL提供了一个mysqldump命令,它可以实现数据的备份。mysqldump命令可以备份单个数据库、多个数据库和所有数据库,具体如下:

备份单个数据库:

1
mysqldump -uroot -proot test>back.sql

test是要备份的数据库名称,sql存放地址默认当前目录

有的情况下你可能会报错,像这个样子:

1
Warning: Using a password on the command line interface can be insecure.

==>>//警告:在命令行界面上使用密码可能不安全。

淡定,不要着急,你这样就好了

1
mysqldump  -uroot -p test>back.sql

注意下,-p那里,在这里我不输入密码,然后直接回车,让系统提示你输入密码,这个时候你再输入密码就可以了。

1
Enter password: ****

在使用mysqldump命令备份数据库的时候,直接在小黑窗(DOS)命令下执行该命令就可以了,不需要登录到MySQL数据库。

备份全部数据库:

介绍完了单个数据库的备份,该说说备份全部数据库了,命令如下:

1
mysqldump -uroot -p --all-databases>backall.sql

注意了,这里的--all--,--all-databases之间是没有空格的,如果有空格将会报错如下:

1
mysqldump: ambiguous option '--all' (all-databases, allow-keywords)

恢复备份:

注意:你需要先创建一个数据库,然后将备份文件恢复到创建的这个数据库当中,注意<符号,与备份时的>恰恰相反,命令如下:

1
mysql -uroot -p test<back.sql

然后提示输入密码

1
Enter password: ****

恢复成功后没有任何提示,这是正常的。

全部备份的恢复如下

1
mysql -uroot -p <backall.sql

当你使用--all-databases参数备份所有的数据库后,在还原数据库时,你不需要再创建数据库并指定要操作的数据库,因为,对应的备份文件中包含了CREATE DATABASE语句和USE语句。

第二种恢复数据方法

1
source  备份文件的路径+备份文件名称

1.先登录数据库,然后切换到要操作的数据库,我们还是先进行单个数据库的恢复。

1
2
3
4
mysql -uroot -proot -hlocalhost
mysql> use test
Database changed

2.在该数据库下进行恢复:

1
mysql> source back.sql

全部备份的恢复方法:

1
2
3

mysql -uroot -proot -hlocalhost
mysql> source allback.sql

SCP传输sql文件

scp【参数】本地文件 远程账户@远程IP地址:远程目录

参数 作用
-v 显示详细的连接进度
-P 指定远程主机的sshd端口号
-r 用于传送文件夹
-6 使用IPv6协议

示例

1
scp backup.sql root@192.168.3.99:/root

backup.sql传至root文件夹下