Mysql 数据备份与恢复(详细步骤)

  • 测试数据:
当前我用 test 数据库 与 test 数据库中的 user 表作为测试使用

备份测试路径:/Users/dengzemiao/Desktop/dbTest

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| area           |
| test           |
| user           |
+----------------+


  • 数据备份

    数据备份就是指将一个数据库中的数据,转存为一个或多个文件的过程,备份数据库的命令不需要登录数据之后操作,直接打开命令行进行操作即可。



  • 备份整个数据库


命令形式: (注意:.exe 是 Windows 上面的,Mac 不用带这个)

// 这种中间存在 空格分开的方式密码可以不用输入,回车之后还是需要输入密码的
mysqldump.exe -h 主机地址 -u 用户名 -p 密码 数据库名 > 备份文件名(含路径)

// 这种中间没有空格分开的方式密码可以直接连着输入,但是回车之后会警告密码放命令行中不安全
mysqldump.exe -h主机地址 -u用户名 -p密码 数据库名 > 备份文件名(含路径)

// 如果是本地本机,可以省略 -h主机地址
mysqldump.exe -u用户名 -p密码 数据库名 > 备份文件名(含路径)

说明:
1、跟登录 mysql 类似,密码可以不写,则随后会提示输入
2、该语句是 mysq/bin 中的一个命令,不是 sql 语句(即不应该登录 mysql 后使用)

使用举例:
dengzemiaodeMacBook-Pro:~ dengzemiao$ mysqldump -hlocalhost -uroot -p test > /Users/dengzemiao/Desktop/dbTest/test.sql
Enter password: 

dengzemiaodeMacBook-Pro:~ dengzemiao$ mysqldump -hlocalhost -uroot -p123456 test > /Users/dengzemiao/Desktop/dbTest/test.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.


  • 备份单个表


命令形式: (使用的区别区别跟上面一样,看看上面就行了)
mysqldump.exe -h 主机地址 -u 用户名 -p 密码 数据库名 表名 > 备份文件名(含路径)
mysqldump.exe -h主机地址 -u用户名 -p密码 数据库名 表名 > 备份文件名(含路径)

说明:
1、跟登录 mysql 类似,密码可以不写,则随后会提示输入
2、该语句是 mysql/bin 中的一个命令,不是 sql 语句(即不应该登录 mysql 后再去使用)

使用举例:
dengzemiaodeMacBook-Pro:~ dengzemiao$ mysqldump -hlocalhost -uroot -p test user > /Users/dengzemiao/Desktop/dbTest/test-user.sql
Enter password: 

dengzemiaodeMacBook-Pro:~ dengzemiao$ mysqldump -hlocalhost -uroot -p123456 test user > /Users/dengzemiao/Desktop/dbTest/test-user.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.



  • 数据还原 (数据恢复)

数据还原(恢复)是指将一个之前备份过的数据文件,恢复(还原)到某个数据库的过程。
还原其实不分整个库还是单个表,都是一样的。



命令形式: (使用的区别区别跟上面一样,看看上面就行了)
mysql.exe -h 主机地址 -u 用户名 -p 密码 目标数据库名 < 想要还原的备份文件名(含路径)
mysql.exe -h主机地址 -u用户名 -p密码 目标数据库名 < 想要还原的备份文件名(含路径)

也可以登录数据库,并创建一个数据库,在数据库中通过 source 进行导入:
mysql> create database test_bak;
mysql> user test_bak;
mysql> source /Users/dengzemiao/Desktop/dbTest/test.sql;
mysql> source /Users/dengzemiao/Desktop/dbTest/test_user.sql;

目标数据库名: 也就是你数据库里面需要先建一个数据库,用于备份导入

使用举例:
dengzemiaodeMacBook-Pro:~ dengzemiao$ mysql -hlocalhost -uroot -p test_bak < /Users/dengzemiao/Desktop/dbTest/test.sql
Enter password: 

dengzemiaodeMacBook-Pro:~ dengzemiao$ mysql -hlocalhost -uroot -p123456 test_bak < /Users/dengzemiao/Desktop/dbTest/test.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
列出本地数据库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+

新建一个备份数据库 test_bak
mysql> create database test_bak;
Query OK, 1 row affected (0.01 sec)

使用备份数据库 test_bak
mysql> use test_bak;
Database changed

在备份前查看一下是否存在表,现在是没有的,那么开始备份
mysql> show tables;
Empty set (0.00 sec)

新开命令行窗口执行备份命令
dengzemiaodeMacBook-Pro:~ dengzemiao$ mysql -hlocalhost -uroot -p123456 test_bak < /Users/dengzemiao/Desktop/dbTest/test.sql
mysql: [Warning] Using a password on the command line interface can be insecure.

再次查看数据库中的表,说明备份数据已经导入进来了,就算重复执行上面的备份命令也只是覆盖数据库
mysql> show tables;
+--------------------+
| Tables_in_test_bak |
+--------------------+
| area               |
| test               |
| user               |
+--------------------+

上面备份整个数据库也就好了,当然也可以通过 source 来进行导入:
mysql> source /Users/dengzemiao/Desktop/dbTest/test.sql;
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
......

mysql> source /Users/dengzemiao/Desktop/dbTest/test_user.sql;
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
......
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡尔特斯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值