一、备份数据
1)导出备份数据
- mysqldump -用户名 -p 数据库 > [路径]dump_name.sql;# 备份整个数据库到dump_name.sql文件中
- mysqldump -用户名 -p 数据库 数据表1,数据表2 > [路径]dump_name.sql;# 备份数据库中的某个表到dump_name.sql文件中
- mysqldump -u用户名 -p --databases 数据库1,数据库2 > [路径]dump_name.sql;# 备份多个数据库到dump_name.sql文件中
- mysqldump -u用户名 -p --all-databases > [路径]databases_name.sql;# 备份系统中所有数据库到databases_name.sql文件中
2)导入备份数据
- mysql -u用户名 -p 数据库 < [路径]dump_name.sql;# 将备份的数据dump_name.text导入到MySQ服务器上,但请保证两台服务器是相通的,可以相互访问
二、进行数据库维护
1)分析表(更新索引的统计信息):ANALYZE TABLE 数据表名称[,数据表名称..]
- 分析并存储表的键值分布统计信息
- 为执行查询提供更好的选择
- 对使用InnoDB、NDB和MyISAM存储引擎的表生效
- 支持分表
- ANALYZE TABLE选项:ANALYZE [ NO_WRITE_TO_BINLOG | LOCAL ] TABLE 数据表名称[,数据表名称..];不记录二进制日志
2)检查表(检查表的完整性);CHECK TABLE 数据表名称[,数据表名称..]
- 检查表结构和内容的完整性
- 验证视图定义
- 支持分区表
- 对使用InnoDB、CSV、MyISAM和ARCHIVE存储引擎的表生效
- CHECK TABLE选项:
- CHECK TABLE 数据表名称[,数据表名称..] FOR UPGRADE;检查当前服务器的表是否工作
- CHECK TABLE 数据表名称[,数据表名称..] QUICK;不扫描不正确链接的行
- CHECK TABLE 数据表名称[,数据表名称..] FOR UPGRADE;检查当前服务器的表是否工作
- 如果CHECK TABLE发现使用InnoDB存储引擎的表有错误:
- 服务器将会被关闭以防止错误传播
- MySQL将会记录到错误到错误日志
- 服务器将会被关闭以防止错误传播
3)校验表(报告表数据的一致性检测结果);CHECKSUM TABLE 数据表名称[,数据表名称..]
- 报告表的checksum
- (该语句)用来验证表备份,回滚或者其它操作之前或之后内容是否一致
- 读取整个表逐行进行校验
- 默认选项EXTENDED提供这种行为
- QUICK选项在MyISAM表上可用
- MyISAM默认选项上为设置CHECKSUM=1;
4)修复表;REPAIR TABLE 数据表名称[,数据表名称..]
- 修复可能已经损坏的MyISAM或ARCHIVE表
- 不支持InnoDB
- 优化过程中会锁定表
- 支持分区表
- REPAIR TABLE选项:
- REPAIR TABLE 数据表名称 QUICK;仅仅修复索引树
- REPAIR TABLE 数据表名称 EXTENDED;逐行创建索引(替代以排序方式一次创建一个索引)
- REPAIR TABLE 数据表名称 USE_FRM;使用.FRM文件重新创建.MYI文件
- REPAIR { NO_WRITE_TO_BINLOG | LOCAL }TABLE 数据表名称;不记录二进制日志
5)优化表;OPTIMZE TABLE 数据表名称[,数据表名称..]
- 整理表的锁片
- 重建表和释放未使用的空间以整理碎片
- 优化过程中会锁定表
- 更新索引统计信息
- 在一张永久的,数据密集/完全填充?的表上是比较好的
- 在InnoDB,MyISAM和ARCHIV表上生效
- 支持分区表
- OPTIMZE TABLE选项:OPTIMZE [ NO_WRITE_TO_BINLOG | LOCAL ] TABLE 数据表名称[,数据表名称..];不记录二进制日志
6)返回信息:
- Table:标示执行操作的表,
- Op:操作的名字(check、repair、analyze、optimze)
- Msg_type:提供一个成功或失败的指示,
- Msg_text:提供额外的信息;
诊断启动问题: