mysqlbinlog解析binlog?
你进入mysql /bin目录下你可以看到有一个mysqlbinlog可执行文件,只要 在命令下 ~ mysqlbinlog binlog文件 就可以查看咯,一般做增量备份
MySQL配置文件中#表示什么?
1. #表示注释2. 在MySQL配置文件中,#符号用于表示注释,即在配置文件中使用#符号后的内容将被视为注释,不会被MySQL解析和执行。
3. 注释是用来对配置文件进行说明和的,可以帮助用户更好地理解和修改配置文件。
通过注释,用户可以添加自己的备注、说明或者禁用某些配置项,从而实现对MySQL的个性化定制。
注释的存在使得MySQL配置文件更加灵活和易于维护。
浅谈MySQL存储引擎选择InnoDB与MyISAM的优缺点分析?
MyISAM引擎设计简单,数据以紧密格式存储,所以某些读取场景下性能很好。
但是MyISAM最典型的还是表锁问题,这样会导致长期处于"Locked"状态。而且数据恢复时间长,无事务等问题或短板。
虽然5.1之前MyISAM的读比Innodb快很多,但是在5.1之后,默认引擎已经变为Innodb。
Innodb读写有很大的提高,采用MVCC来支持高并发,针对行加锁,是使用最广泛的存储引擎。
官方建议尽量将MyISAM都换为Innodb。
如何使用MySQL数据库?
主从架构— —概念
binlog日志
MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间。
复制原理
1. 主库操作保留binlog日志
2. 从库的IO线程从主库拉取binlog日志,并生成中继日志(relay log)
3. 从库的SQL线程解析中继日志,并在本身回放
状态检查
主要通过判断IO线程和SQL线程是否处于Running判断复制是否正常,判断Seconds_Behind_Master参数代表数据同步是否延迟:
mysql> show slave status\G... Slave_IO_Running: YesSlave_SQL_Running: YesSeconds_Behind_Master: 0...
主从架构— —衍生各种扩展的主从架构
1. 一主多从
2. 双主复制
3. 级联复制
4. 等等
读写分离
大部分场景下,读的频率比写的频率会高很多。所以可以通过扩展多个SLAVE节点提高整体的使用性能。
数据备份
传统的备份包括三种方式:
1. lvm snapshot(LVM快照备份)
2. mysqldump
3. Xtarbackup
那么要如何实现数据的一致性备份呢(一致性备份是所有数据/文件/磁盘 需要在同一个时间点进行备份)
LVM SNAPSHOT
1. 执行FTWRL(FLUSH TABLES WITH READ LOCK)
1.1上全局读锁(lock_global_read_lock)
1.2清理表缓存(close_cached_tables)
1.3上全局COMMIT锁(make_global_read_lock_block_commit)
2. 执行lvcreate 创建lv快照.
3. UNLOCK TABLES解锁
MYSQLDUMP
1. 开启可重复读事务隔离
2. 开启事务
3. 建立数据快照(可以理解为select * from *)
4. 结束事务
XTRABACKUP
1. 不是整体采用备份锁,只有特定阶段。
2. indodb阶段不需要加锁,ACID的C(持续性)是通过Redo log实现,通过线程增量记录redo log实现。
两种方式,一种是MySQL自带的命令行窗口,一种是图形用户管理工具,前者类似于一个cmd窗口,日常管理维护数据库不是很方便,后者就是一个图形用户管理软件,种类繁多,使用起来也相对容易一些,下面我简单介绍一下这2种方式:
命令行窗口
1.这个MySQL一般会自带,安装完MySQL后,直接可以在开始菜单中找到,如下:
2.点击进去,输入密码后,就可以直接使用MySQL数据库,编写SQL代码了,效果如下,这里你也可以将MySQL添加到环境变量中,后面就可以直接使用命令“mysql -h localhost -u root -p”连接,效果一样:
图形用户管理工具
这个就很多了,下面我简单介绍几个软件,基本功能都不相上下,选择适合自己的一个就行:
1.MySQL workbench:这个是MySQL官方自带的一个图形用户管理工具,免费、跨平台,可以直接在MySQL官网下载,支持数据库的迁移、设计、建模、备份和恢复等功能,可以直接新建查询,编写SQL语句,使用起来非常不错:
2.Navicat:这也是一个非常不错的图形用户管理工具,大部分开发人员都应该听说或者使用过,界面干净整洁,可以直接建库建表、设计相关字段属性和主外键等,也支持数据库备份、恢复等功能,使用起来也非常方便:
3.DataGrip:这是一个比较专业的数据库管理工具,Jetbrains公司的产品,支持目前几乎所有的主流关系型数据库,像MySQL,Oracle,SQL Server等,新建查新、建库建表、日常备份恢复等功能都非常不错,支持代码高亮、语法提示和自动补全,使用起来非常不错,值得一试:
这里就介绍这3个软件,当然,还有许多其他管理工具,像SQLyog,phpMyAdmin,HeidiSQL,Sequel Pro等都不错,这里就不一一介绍了,感兴趣的话,可以到网上搜一下相关软件和资料,非常多。
至此,这2种使用MySQL的方式都介绍完了。总的来说,第一种方式使用起来不是很方便,日常开发使用不多,图形用户管理工具的方式使用最多,也更方便日常维护管理数据库,建议初学者的话,还是使用图形用户管理工具,更容易一些,网上也有相关教程和资料,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言。

