数据库日志与还原、日志


数据备份与还原

数据备份:
1.mysqldump -u 用户名 -h 主机名 -p 登陆密码 数据库名[表1,表2,...] >备份后的文件名.sql;
※首先要打开cmd,在cmd中输入语句,如果不能用,可能是路径错误,如果配置过路径,就在C:下输入,没配置过就找到MySQL里的bin文件夹,在bin路径下输入。
例:mysqldump -u user -h host -p --databases 库1,库2,... >filename.sql (备份所有数据库用--all-databases)
2.复制整个数据库目录
3.mysqlhotcopy (之备份MyISAM类型的表)
例:mysqlhotcopy 库1,库2,... 路径

还原数据:
1.用备份的sql文件导入
例:mysql -u user -p 库名 < 导入的文件名.sql (cmd方法)
例:source 文件路径 (MySQL方法)
2.直接复制
3.Mysqlhotcopy 备份后的文件放到数据位置,直接重启数据库即可。

数据库迁移:
1.相同版本:mysqldump -h 原地址 -u 用户名 -p 密码 数据库名 | mysql -h 新地址 -u 用户名 -p密码
2.不同版本:用mysqldump导出,再向新版本导入
3.不同数据库:利用一些工具,如:MyODBC、MySQL、Migration Toolkit等

表的导出和导入(txt、html、xml)
导出:
1.select 语句 into outfile '文件名' [option 选项]
2.mysqldump -T 路径 -u 用户名 -p 库名[表名] [option 选项]
3.mysql -u 用户名 -p --excute="select 语句" 库名>文件名
导入:
1.load data infile 文件名 into table 表名 option 选项
2.mysqlimport -u root -p 库名.文件 option 选项

※5.7以上版本的MySQL要用/

日志

分类:
错误日志——记录MySQL服务的启动、运行或停止MySQL服务时出现的问题。
二进制日志——记录所有更改数据的语句,可以用于数据复制。
慢查询日志——记录所有执行时间超过配置里long_query_time的查询,或不使用索引的查询。
查询日志——记录建立的客户端连接的执行的语句。

二进制日志:
1.启用/配置:在MySQL数据库中my.ini里的[mysqld]下设置
例:
log_bin="F:/MySQLlog/logbin/bin" (前面是路径,最后的bin是名,会出现bin.000001、bin.index等日志)
expire_logs_days=10 (清楚过期日志的时间)
max_binlog_size=100M (单个日志大小限制,超了就会关闭新打开一个)
2.查看
show binary logs; —— 查看个数,文件名,大小 (MySQL中运行)
※每启动一次服务就会产生一个二进制日志
mysqlbinlog 位置 —— 查看二进制日志内容 (在cmd中输入,注意不要有;)
例:mysqlbinlog F:/MySQLlog/logbin/bin.000001
3.删除
reset master; —— 删除所有日志并重置
purge {MASTER|BINARY} logs to 'log_name' ——删除编号比log_name小的所有日志
purge {MASTER|BINARY} logs Before 'date' —— 删除date日期前的所有日志
例:purge MASTER logs before '20161130';
4.用二进制还原数据
mysqlbinlog [option] filename | mysql -u user -p pass
option里有:
--start-position 开始位置
--stop-position 结束位置
--start-date 开始时间
--stop-date 结束时间
例:mysqlbinlog F:/MySQLlog/logbin/bin.000001 | mysql -u user -ppass
5.暂时停止:set sql_log_bin=0 (暂停=1,开始=1)

错误日志:
1.启用/配置:在MySQL数据库中my.ini里的[mysqld]下设置 log_error=路径
2.查看
show variables like 'log_error'; 查看错误日志位置 (要查看内容直接到路径下打开)
3.删除:直接删除到路径下删除,之后用下面月重建
mysqladmin -u root -p flush_logs (在cmd中用)
flush logs (在mysql中用)

通用查询日志:
1.启用/配置:在MySQL数据库中my.ini里的[mysqld]下设置
general_log=on (开启)
general_log_file = 路径 (设置路径和名字)
log_output = 输出格式
2.查看:直接到路径下记事本打开
3.删除:直接删除到路径下删除,之后用下面月重建
mysqladmin -u root -p flush_logs (在cmd中用)
flush logs (在mysql中用)

慢查询日志:
1.启用/配置:在MySQL数据库中my.ini里的[mysqld]下设置
slow_query_log=on (开启)
log_query_time=2 (慢于2秒都被记录为慢查询)
slow_query_log_file=路径 (设置路径和名字)
2.查看:直接到路径下记事本打开
3.删除:直接删除到路径下删除,之后用下面月重建
mysqladmin -u root -p flush_logs (在cmd中用)
flush logs (在mysql中用)

你可能感兴趣的:(MySQL)