13.6 mysql數據庫備份恢復

mysql數據庫備份恢復目錄概要

  • 備份庫 mysqldump -uroot -p123456 mysql > /tmp/mysql.sql
  • 恢復庫 mysql -uroot -p123456 mysql < /tmp/mysql.sql
    • 恢復是,必須保證目錄一致
  • 備份表 mysqldump -uroot -p123456 mysql user > /tmp/user.sql
  • 恢復表 mysql -uroot -p123456 mysql < /tmp/user.sql
  • 備份全部庫 mysqldump -uroot -p -A >/tmp/123.sql
  • 只備份表結構 mysqldump -uroot -p123456 -d mysql > /tmp/mysql.sql

mysql數據庫備份恢復

備份庫

  1. 在執行mysqldump -uroot -p123456 mysql的時候會看到不少信息,屏幕上顯示的這些就是備份的數據
  2. 備份mysql庫文件
  • mysqlbak.sql文件就是mysql的備份庫文件
[root@hf-01 ~]#  mysqldump -uroot -p'hanfeng' mysql > /tmp/mysqlbak.sql
Warning: Using a password on the command line interface can be insecure.
[root@hf-01 ~]#
  1. 咱們能夠經過mysqlbak.sql來恢復數據庫,還能夠恢復到另一個數據庫裏面去
  2. 建立一個新的庫mysql2
[root@hf-01 ~]#  mysql -uroot -p'hanfeng' -e "create database mysql2"
Warning: Using a password on the command line interface can be insecure.
[root@hf-01 ~]#
  1. 恢復庫
  • mysql -uroot -phanfeng mysql < /tmp/mysql.sql
[root@hf-01 ~]#  mysql -uroot -p'hanfeng' mysql < /tmp/mysqlbak.sql
Warning: Using a password on the command line interface can be insecure.
[root@hf-01 ~]#
  1. 進入到數據庫裏面,在後面加一個mysql2 就會進入到mysql2數據庫裏面
  • mysql -uroot -p'hanfeng' mysql2
[root@hf-01 ~]#  mysql -uroot -p'hanfeng' mysql2
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.6.35 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>
  1. 查看數據庫
mysql> select database();
+------------+
| database() |
+------------+
| mysql2     |
+------------+
1 row in set (0.00 sec)

mysql>

備份表

  • 針對庫裏面的某一個表去作備份,只須要在 庫後面 加上 表名字 便可備份
    • 先庫 在表,中間是空格
    • 備份表 mysqldump -uroot -p123456 mysql user > /tmp/user.sql
  • 能看到備份的時候,庫存在的話,先把庫drop掉,而後建立庫,表存在的話,先把表drop掉,而後建立表,而後在一步一步的插入每一行數據
[root@hf-01 ~]# mysqldump -uroot -phanfeng mysql user > /tmp/user.sql
Warning: Using a password on the command line interface can be insecure.

[root@hf-01 ~]# less /tmp/user.sql  查看備份表
  • 恢復表的時候,只須要寫庫的名字,不須要去寫表的名字
    • 恢復表 mysql -uroot -p123456 mysql < /tmp/user.sql
  • 恢復mysql2庫裏面的表
[root@hf-01 ~]# mysql -uroot -phanfeng mysql2 < /tmp/user.sql
Warning: Using a password on the command line interface can be insecure.
[root@hf-01 ~]#

備份全部的庫

  • 備份全部庫 mysqldump -uroot -phanfeng -A >/tmp/123.sql
    • -A 表示all全部的意思
[root@hf-01 ~]# mysqldump -uroot -phanfeng -A > /tmp/mysql_all.sql
Warning: Using a password on the command line interface can be insecure.
[root@hf-01 ~]# 

[root@hf-01 ~]# less /tmp/mysql_all.sql
  • 只備份表結構 mysqldump -uroot -phanfeng -d mysql > /tmp/mysql.sql
    • 不須要表的數據,只須要表的語句
  • 備份mysql2的表結構
[root@hf-01 ~]# mysqldump -uroot -phanfeng -d mysql2 > /tmp/mysql.sql
Warning: Using a password on the command line interface can be insecure.
[root@hf-01 ~]#

[root@hf-01 ~]# less /tmp/mysql.sql

示例

  • 兩個機器的庫備份,一個庫備份到另外一臺機器上
  • 解決:
    • 首先兩臺機器可以通訊
    • 而後mysqldump -h 遠程mysql-ip -uuser-ppassword dbname > /本地backup.sql
    • 這樣既可備份
相關文章
相關標籤/搜索