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數據庫備份恢復
備份庫
- 在執行mysqldump -uroot -p123456 mysql的時候會看到不少信息,屏幕上顯示的這些就是備份的數據
- 備份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 ~]#
- 咱們能夠經過mysqlbak.sql來恢復數據庫,還能夠恢復到另一個數據庫裏面去
- 建立一個新的庫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 ~]#
- 恢復庫
- 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 ~]#
- 進入到數據庫裏面,在後面加一個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>
- 查看數據庫
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
[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
- 這樣既可備份