Mysql 日志备份恢复与JDBC
-
Mysql日志管理
-
Mysql日志时记录mysql数据库的日常操作和错误信息的文件,当数据库遭到意外的损害时,可以通过日志文件查询出错误原因,并且可以进行数据恢复;
-
Mysql的日志分类
- 二进制文件:以二进制的形式记录数据中的操作,但不记录查询语句;
- 错误日志:记录mysql服务器的启动,关闭和运行错误等信息;
- 通用查询日志:记录用户登录和执行查询的信息;
- 慢查询日志:记录执行时间超过指定时间的操作;
- 除了二进制日志外,其他日志都是文本文件,通常存储在mysql目录下,默认情况下之启动了错误日志的功能
-
日志操作
-
二进制日志
-
查看二进制日志是否开启
show variables like ‘log_bin%’;
-
删除二进制日志
reset master;
删除所有二进制日志,mysql将会重新创建新的二进制日志,编号从主机名-bin.000001开始;
-
根据编号删除小于该编号的二进制日志
purge master logs to ‘日志名’;
-
根据创建时间删除二进制日志
purge master logs to before ‘yyyy-mm-dd hh:mm:ss’;
-
使用二进制日志还原数据库
mysqlbinlog 日志名 | mysql -uroot -p
-
如果执行某些操作时不想被二进制日志记录可设置暂停二进制日志功能
set sql_log_bin=0;
若需重新开启二进制日志记录则需要设置:
set sql_log_bin = 1;
-
-
慢查询日志
-
查看慢查询日志功能是否开启
show variables like ‘%slow%’;
-
查看慢查询时间设置 默认为10秒
show variables like ‘long_query_time’;
-
在数据库中设置开启慢查询的方式
set global slow_query_log = ON;
该方法重启服务失效
也可通过修改my.ini文件的slow-query-log选项开启
-
删除慢查询日志
mysqladmin -uroot -p flush-logs;
-
-
通用查询日志
-
查看通用查询日志是否开启
show variables like ‘general%’;
-
启用通用查询日志
set global general_log = 1; 或者 on
-
删除通用查询日志
mysqladmin -uroot -p flush-logs;
-
-
错误日志
-
启动错误日志
通过修改my.ini文件log-error(定义是否启用) log-warnings(警告信息记录)
-
删除错误日志
mysqladmin -uroot -p flush-logs;
-
-
-
-
-
数据库备份和恢复
- #mysqldump 命令必须在cmd窗口下执行
#命令后没有分号直接回车输入密码即可
#备份某几个用户下某个库下的某个表
mysqldump -u用户名 -p 数据库名 表名>C:\表名.sql
#备份某个用户下的数据库
mysqldump -u用户名 -p databases 数据库名 …>C:\名字.sql
#备份某个用户下所有数据库
mysqldump -u用户名 -p all databases >C:\名字.sql
#恢复某个用户下所有数据库
mysql -u用户名 -p < C:\名字.sql
- #mysqldump 命令必须在cmd窗口下执行
-
JDBC
- 什么是JDBC
- JDBC全称Java Database Connectivity
- JDBC可以通过载入不同的数据库的驱动与不同的数据库进行连接
- JDBC的优点
- 可以兼容不同数据库
- 不同数据库操作方式相同
- JDBC流程
- 加载驱动:Class.forname(“数据驱动”);
- 获取连接:Connection con = DriverManage.getConnetion();
- 获取执行sql语句的statement对象:com.prepareStatement(“sql语句”);
- 执行sql语句:executeUpdate();返回影响行数
executeQuery();返回结果集ResultSet - 处理结果集:ResultSet.next() 获取结果集中的内容
- 关闭资源:close();
- 什么是JDBC