python-day47--mysql数据备份与恢复
一、IDE工具介绍
掌握: #1. 测试+链接数据库 #2. 新建库 #3. 新建表,新增字段+类型+约束 #4. 设计表:外键 #5. 新建查询 #6. 备份库/表 #注意: 批量加注释:ctrl+?键 批量去注释:ctrl+shift+?键
二、MySQL数据备份
#1. 物理备份: 直接复制数据库文件,适用于大型数据库环境。但不能恢复到异构系统中如Windows(要求平台一致)。 #2. 逻辑备份: 备份的是建表、建库、插入等操作所执行SQL语句,适用于中小型数据库,效率相对较低。 #3. 导出表: 将表导入到文本文件中。
1.使用mysqldump实现逻辑备份
#语法: # mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql # #单库备份 mysqldump -uroot -p123 db1 > D:\\db1.sql mysqldump -uroot -p123 db1 table1 table2 > D:\\db1-table1-table2.sql #备份表 #多库备份 mysqldump -uroot -p123 --databases db1 db2 mysql db3 >D:\\ db1_db2_mysql_db3.sql #备份所有库 mysqldump -uroot -p123 --all-databases > D:\\all.sql
2.恢复逻辑备份
#方法一: mysql -uroot -p123 day47< D:\\day47.sql (要提前有day47 库) #方法二: create database day47; use day47; source D:\\day47
3.在不进入数据库的情况下查看数据库内的数据
4.数据库迁移(扩展了解)
务必保证在相同版本之间迁移 # mysqldump -h 源IP -uroot -p123 --databases db1 | mysql -h 目标IP -uroot -p456
5.表的导出和导入
SELECT... INTO OUTFILE 导出文本文件 示例: mysql> SELECT * FROM school.student1 INTO OUTFILE 'student1.txt' FIELDS TERMINATED BY ',' //定义字段分隔符 OPTIONALLY ENCLOSED BY '”' //定义字符串使用什么符号括起来 LINES TERMINATED BY '\n' ; //定义换行符 mysql 命令导出文本文件 示例: # mysql -u root -p123 -e 'select * from student1.school' > /tmp/student1.txt # mysql -u root -p123 --xml -e 'select * from student1.school' > /tmp/student1.xml # mysql -u root -p123 --html -e 'select * from student1.school' > /tmp/student1.html LOAD DATA INFILE 导入文本文件 mysql> DELETE FROM student1; mysql> LOAD DATA INFILE '/tmp/student1.txt' INTO TABLE school.student1 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '”' LINES TERMINATED BY '\n';