一、备份语句:
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和函数的。



















