一、备份语句:
mysqldump
可以用来导出单个数据库、多个数据库,甚至所有数据库的数据。以下是导出多个数据库到指定文件位置的语法和具体案例。
基本语法
mysqldump -u [username] -p[password] --databases [db1] [db2] ... > [file_path]
- -u: 数据库用户名
- -p: 数据库密码,紧跟在
-p
后面 - --databases: 指定要导出的数据库名称,可以跟随多个数据库名称
- file_path: 导出文件的路径及名称
实际案例
假设你有两个数据库,分别是 database1
和 database2
,并希望将其导出到路径 /backup/multiple_databases.sql
中。
mysqldump -u root -p --databases database1 database2 > /backup/multiple_databases.sql
常用选项
可以结合一些选项来定制导出内容:
--add-drop-database
: 导出时添加DROP DATABASE
语句--add-drop-table
: 导出时添加DROP TABLE
语句--skip-lock-tables
: 跳过锁表,适用于只读操作,不锁定表--no-data
: 仅导出表结构,不导出数据
具体示例
假设要将多个数据库导出到 /backup/multiple_databases.sql
,并且包含删除表的语句:
mysqldump -u root -p --databases database1 database2 --add-drop-table --skip-lock-tables > /backup/multiple_databases.sql
导出多个数据库的多种方案
-
单文件导出多个数据库:
将多个数据库导出到一个
.sql
文件,使用--databases
参数:mysqldump -u root -p --databases db1 db2 db3 > /backup/multi_db_backup.sql
-
单独文件导出每个数据库:
对每个数据库进行单独导出:
mysqldump -u root -p db1 > /backup/db1_backup.sql mysqldump -u root -p db2 > /backup/db2_backup.sql mysqldump -u root -p db3 > /backup/db3_backup.sql
可以将这些命令写入脚本,自动化执行多数据库的导出。
如果你已经进入了 MySQL Shell(通过 mysql -u root -p
登录进入的那种),先输入 exit
退出 MySQL Shell,然后在命令行中执行上述 mysqldump
命令。
有些数据库备份会缺失内容,通常可能涉及以下原因:
-
文件大小限制:某些系统或文件系统可能会对单个文件的大小有限制(例如 FAT32 文件系统的 4GB 限制)。可以尝试将备份文件分割,或者确保备份位置支持大文件存储。
-
mysqldump 选项设置:默认情况下,
mysqldump
只会导出表和数据,不会包含存储过程(SP)、函数、触发器或事件等。
包含存储过程、函数、触发器和事件的备份
为了确保 mysqldump
包含所有这些数据库对象,在命令中添加以下参数:
mysqldump -u root -p --databases db_student ods tmp --routines --triggers --events > /backup/mybackup_db.sql
这些参数的作用:
--routines
:包含存储过程和函数。--triggers
:包含触发器。--events
:包含事件。
这样,备份文件会包含数据库中的所有对象,确保在恢复时不会遗漏。
二、恢复语句:
1,创建db
备份的数据库sql不会帮你创建db,如果要导入备份的sql文件,需要先创建对应db.
2,导入db
有两种方式:
1)cmd不登录的情况:
mysql> source D:\DB\myBackup_db_tmp.sql
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected, 1 warning (0.00 sec)
2)登录的情况:
登陆数据库创建一个库
mysql> create database t1;
语法:# mysql -u root -p1 -D db1 < D:\DB\myBackup_db_tmp.sql
[root@mysql-server ~]# mysql -uroot -p'qf123' -D t1 < D:\DB\myBackup_db_tmp.sql
导入成功后在检查数据,查询,SP,表,视图都有了,如果使用Navicate是不会有SP和函数的。