Mysql数据库(九)备份与恢复
一、数据备份
1.使用mysqldmp命令备份
(1)备份一个数据库
mysqldump -u root -p dbname table1 table2 ... > D:\BackName.sql
(2)备份多个数据库
mysqldump -u root -p --databases dbname1 dbname2 > D:\BackName.sql
(3)备份所有数据库
mysqldump -u root -p --all-databases > D:\BackName.sql
2.直接复制整个数据库目录(先找到数据库文件的保存位置,然后将数据库文件直接复制出来)
show variables like '%datadir%';
3.使用mysqlhotcopy工具快速备份(是一个Perl脚本,主要在Linux操作系统下使用,只能备份MyLSAM类型的表)
二、数据恢复
1.使用mysql命令还原
mysql -u root -p db_librarybak < D:\db_library.sql
2.直接复制到数据库目录(对InnoDB类型的表不可用)
三、数据库迁移
1.MySQL数据库之间的迁移
mysqldump -h host1 -u root --password=password1 --all-databases | mysql -h host2 -u root --password=password2
2.不同数据库之间的迁移
(1)在Windows下,通常可以使用MyODBC实现MySQL数据库与SQL Server之间的迁移。
(2)将MySQL数据库迁移到Oracle数据库时,需要使用mysqldump命令先导出SQL文件,再手动修改SQL文件中的CREATE语句。
四、表的导出和导入
1.用SELECT...INTO OUTFILE导出文本文件
(1)指定的目标路径只能是MySql的secure_file_priv参数所指定的位置。
mysql> select @@secure_file_priv -> ; +-------------------------------------------------+ | @@secure_file_priv | +-------------------------------------------------+ | C:\mysoftware\Java\mysql-5.7.20-winx64\Uploads\ | +-------------------------------------------------+ 1 row in set (0.00 sec)
(2)使用SELECT...INTO OUTFILE导出文本文件
mysql> use db_library; Database changed mysql> select * from tb_bookinfo INTO OUTFILE 'C:/mysoftware/Java/mysql-5.7.20-winx64/Uploads/bookinfo.txt'; Query OK, 3 rows affected (0.01 sec)
2.用mysqldump命令导出文本文件
C:\Users\BigJun>mysqldump -u root -p -T "C:/mysoftware/Java/mysql-5.7.20-winx64/Uploads" db_library tb_bookinfo Enter password: *********
mysqldump命令还可以导出xml格式的文件。
C:\Users\BigJun>mysqldump -u root -p --xml db_library tb_bookinfo > D:\name.xml Enter password: *********
3.用mysql命令导出文本文件
C:\Users\BigJun>mysql -u root -p -e "SELECT * FROM tb_bookinfo" db_library > D:/bookinfo3.txt Enter password: *********
mysql -u root -p --xml -e "SELECT * FROM tb_bookinfo" db_library > D:/bookinfo3.xml mysql -u root -p --html -e "SELECT * FROM tb_bookinfo" db_library > D:/bookinfo3.html
儿女情长什么的,最影响我们闯荡江湖了。