提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- mysql的备份作业
- 准备:两个数据库booksDB,test
- 一、使用mysqldump命令备份数据库中的所有表?
- 二、备份booksDB数据库中的books表
- 三、使用mysqldump备份booksDB和test数据库
- 四、使用mysqldump备份服务器中的所有数据库
- 五、使用mysql命令还原第二题导出的book表
- 六、进入数据库使用source命令还原第二题导出的book表
- 总结
备份作业:
准备:
booksDB数据库:
CREATE DATABASE booksDB;
use booksDB;
CREATE TABLE books
(
bk_id INT NOT NULL PRIMARY KEY,
bk_title VARCHAR(50) NOT NULL,
copyright YEAR NOT NULL
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
INSERT INTO books
VALUES (11078, 'Learning MySQL', 2010),
(11033, 'Study Html', 2011),
(11035, 'How to use php', 2003),
(11072, 'Teach youself javascript', 2005),
(11028, 'Learing C++', 2005),
(11069, 'MySQL professional', 2009),
(11026, 'Guide to MySQL 5.5', 2008),
(11041, 'Inside VC++', 2011);
CREATE TABLE authors
(
auth_id INT NOT NULL PRIMARY KEY,
auth_name VARCHAR(20),
auth_gender CHAR(1)
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
INSERT INTO authors
VALUES (1001, 'WriterX' ,'f'),
(1002, 'WriterA' ,'f'),
(1003, 'WriterB' ,'m'),
(1004, 'WriterC' ,'f'),
(1011, 'WriterD' ,'f'),
(1012, 'WriterE' ,'m'),
(1013, 'WriterF' ,'m'),
(1014, 'WriterG' ,'f'),
(1015, 'WriterH' ,'f');
CREATE TABLE authorbook
(
auth_id INT NOT NULL,
bk_id INT NOT NULL,
PRIMARY KEY (auth_id, bk_id),
FOREIGN KEY (auth_id) REFERENCES authors (auth_id),
FOREIGN KEY (bk_id) REFERENCES books (bk_id)
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
INSERT INTO authorbook
VALUES (1001, 11033), (1002, 11035), (1003, 11072), (1004, 11028),
(1011, 11078), (1012, 11026), (1012, 11041), (1014, 11069);
test库:在此可以使用任何的数据库
提示:以下是本篇文章正文内容,下面案例可供参考
一、使用mysqldump命令备份数据库中的所有表?
[root@localhsot ~]# mysqldump -uroot -p'123456' booksDB > /backup/booksDB_all.sql;
mysqldump备份关键字,-uroot,-p‘%’,root用户的密码,booksDB是所需要的备份的数据库,
/backup/是备份到的目录,booksDB_all可以自行编辑,但必须以 ”.sql“结尾。
我的结果如下:
[root@localhost ~]# mysqldump -uroot -p123456 booksDB > /backup/booksDB_all.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
[root@localhost ~]# vim /backup/booksDB_all.sql
内容如下所示:我的部分内容所示仅供参考
二、备份booksDB数据库中的books表
[root@localhsot ~]# mysqldump -uroot -p'123456' booksDB books > /backup/books.sql;
mysqldump: [Warning] Using a password on the command line interface can be insecure
备份booksdump中的books表仅需将booksDB与books用空格分开,修改存储名字即可。
我的结果如下:
第三题:使用mysqldump备份booksDB和test数据库
[root@localhsot ~]# mysqldump -uroot -p'123456' --databases booksDB test > /backup/booksDB_test.sql;
mysqldump: [Warning] Using a password on the command line interface can be insecure
备份booksDB与test两个数据库,需在两个数据库前面添加--databases,并且两个数据库要用空格分开,然后修改存储名字即可。
我的结果如下:
第四题:使用mysqldump备份服务器中的所有数据库
[root@localhost ~]# mysqldump -uroot -p123456 --all-databases > /backup/all_datables.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
备份所有的数据库则需要将在密码之后添加--all-databases,在给定目录及名字,即可。
我的结果如下:
第五题:使用mysql命令还原第二题导出的books表
先删除booksDB中的books表:
命令:
1.先将关闭Foreign Key,存在Foreign Key的约束,删不了
mysql> Set FOREIGN_KEY_CHECKS = 0;
Query OK, 0 rows affected (0.00 sec)
关闭后执行:mysql> drop table books;
Query OK, 0 rows affected (0.01 sec)
恢复books表:
[root@localhost backup]# mysql -uroot -p123456 booksDB < books.sql
booksDB需要导入的数据库名称,使用"<"将backup目录底下的books.sql文件导入booksDB数据库。
mysql: [Warning] Using a password on the command line interface can be insecure.
我的结果如下:
数据与结果都存在:
第六题:进入数据库使用source命令还原第二题导出的book表
删除books的记录:
恢复备份:部分展示已成功
总结
以上就是我对备份的部分理解。