MySQL基础2
1、mysql提示符可以显示什么?
在my.cnf里面配置prompt参数的值后:prompt="\\u@\\h [\\d]"
可以通过man mysql查询帮助,查看prompt的帮助信息;
2、mysql data目录文件说明
auto.cnf -------------------------------》server-uuid
error.log -------------------------------》启动、错误日志
general.log ---------------------------》通过log_error参数定义
ib_buffer_pool -----------------------》通过innodb_buffer_pool_filename参数定义
ibdata1 --------------------------------》通过innodb_data_file_path参数定义
ib_logfile0 ----------------------------》 redo group log
ib_logfile1 ----------------------------》 redo group log
ib_logfile2 ----------------------------》 redo group log
ibtmp1 --------------------------------》通过innodb_temp_data_file_path参数定义
localhost.pid ------------------------》mysql服务进程号
mysql ---------------------------------》mysql数据库文件夹
performance_schema ------------》performance_schema数据库文件夹
slow.log ------------------------------》慢查询日志文件,通过slow_query_log_file参数定义
sys ------------------------------------》sys数据库文件夹
3、慢查询日志
slow_query_log参数,指定输出文件名称和位置
long_query_time参数,配置query timeout,单位:s秒,默认值:10s
分析工具:mysqldumpslow,pt-query-digest
4、查看sql语句调用统计信息(5.7版本),查看调用次数、并发量等等
select * from sys.statement_analysis;
5、binlog(二进制日志)
show binary logs; #列出当前的日志文件及大小
show master status; #显示mysql当前的日志及状态【需要super,replication client权限】
show binlog events in '日志文件名称 [mysql-bin.000023]' #mysql二进制日志是以'事件'为单位存储到日志中,一个insert,update,...有多个事件组成。
expire-logs-days; 参数配置过期时间
一般binlog要保存多久?
看干什么用,如果用于从库同步,同步完就可以删除了。
建议:主从库全开;过期时间:根据磁盘容量,如果一天产生1-2G,可以保留7天;如果一天一备,保留2天。
binlog的查看,因为binlog日志对DML语句会加密,如何查看?
mysqlbinlog -v -v 日志文件名称;
mysqlbinlog -v --base64-output=decode-rows 日志文件名称;
insert,update,delete操作后闪回数据如何操作?
通过binlog,因为insert,update,delete操作时会把原始数据也输出到binlog中,所以可以利用binlog闪回数据。
6、审计功能:记录每一次对数据库的操作
社区版实现的方法:通过general_log参数,可以把每次对数据库的操作记录到文件中
5.7版本还可以对query_rewrite_plugin二次开发,拦截到sql to 到elk (有些大型互联网公司就是采用的这种方式)
7、二进制日志维护
删除二进制日志,根据文件名删除:purge binary logs to '日志文件名称'; #会把指定日志文件名称序号前的binlog文件都删除掉
还可以利用rm命令,从文件编号小的开始删除
删除前先备份
8、MySQL裁剪
主要用于物联网,节约空间和成本
裁剪base_dir文件夹下面的东西
正常的我们只需要保留bin/mysqld这个文件就行了,其它的都可以删除;然后还可以用 strip mysqld对mysqld文件进一步压缩其大小
如果需要用的mysql命令,还可以把bin/mysql文件保留;其它命令类似,用到哪个也可以保留哪个。
裁剪后记得ldd mysqld,验证下我们留下来的文件的依赖关系是否完成,如果没问题就可以启动了。
优点:节约空间,msyql5.7裁剪后从2.7G左右减小到30M左右;缺点:出错误后不好排除。