MySQL
文章平均质量分 73
Liu三变
小园香径独徘徊
展开
-
记一次哭笑不得的诡异事件
今天有个开发跑过来质疑我之前给他们灌输的数据库中尽量避免隐式转换的概念,理由是遇到一个where条件中不做隐式转化的SQL查询不到结果。表结构如下:mysql> desc m;+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+----.原创 2021-06-03 10:29:12 · 186 阅读 · 2 评论 -
MySQL redo log和binlog刷盘时机的个人理解
在MySQL中redo log和binlog在数据保护方面有着至关重要的作用,是有需要花点时间去研究一下这两个玩意儿。以下结论是个人一家一见,看官们请酌情观看,有异议之处欢迎进行交流,万分感谢!1.正常情况下两阶段提交配合组提交的流程如下:我个人理解是在双一模式下的流程,每个事务提交时都需要进行fsync刷盘,其执行过程才如上图所示。然而在配合两个参数sync_binlog和innodb_flush_log_at_trx_commit,上图会有所调整。一.innodb_flush_log.原创 2021-04-08 21:13:05 · 2580 阅读 · 1 评论 -
MySQL8.0 记一次Temporary file write failure
背景:开发同事反馈数据库有报错Temporary file write failure,咋一看临时文件磁盘满了?然鹅并不是~处理过程1.首先我并不是一个特别详细开发的人,要来SQL自己先跑一遍,果然报错复现了ERROR 1878 (HY000): Temporary file write failure.2.检查临时文件路径以及对应的磁盘使用情况:mysql> show variables like 'tmpdir';+---------------+-----------------+.原创 2020-12-23 16:35:37 · 895 阅读 · 2 评论 -
MySQL表关联join方式优化思路
概念引入MRR(Multi-Range Read)处理思路:空间换时间,化随机读为顺序读,优化通过二级索引检索回表的性能问题MySQL中,索引是B+ tree,在叶子节点中,数据是逻辑有序的,如主键索引中,是按照主键列有序排列,而二级索引中,是按照索引列进行有序排列,而二级索引的叶子节点存储的是索引列和主键值,索引列是有序的,此时主键值却不一定是有序的,往往是无序的,此时通过索引列定位到主键值,然后回表往往是离散的读取数据。MRR中就是先在内存中分配read_rnd_buffer空间,先把二级索原创 2020-11-12 21:29:43 · 182 阅读 · 0 评论 -
记一次MYSQL ERROR 3886 (HY000)处理过程
今天有开发找我反馈表关联的时候有报错,其原因是两个表的排序规则不一致,我一想这还不是三下五除二,改统一不就完事了。然鹅,事情往往不是一帆风顺,处理过程以及报错如下:mysql> alter table prod_dms_center_user.us_user CONVERT TO CHARACTER SET utf8mb4 collate utf8mb4_bin;ERROR 3886 (HY000): Could not change column 'phone' of table 'us_us原创 2020-11-11 20:20:40 · 329 阅读 · 0 评论 -
sql_require_primary_key参数详解
MySQL 8.0.13版本新引进一个参数,该参数非常实用,要求表有主键,减少了DBA对于代码的审计。官方文件信息:sql_require_primary_key: Whether tables must have a primary key. Added in MySQL 8.0.13.实验Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show variables .原创 2020-10-12 19:44:55 · 4056 阅读 · 0 评论 -
MySQL 8.0 MGR组复制集群搭建
目录1.MySQL各式同步方式说明2.MySQL MGR搭建前提要求3.搭建步骤1.基础信息2.配置文件相关参数信息3.创建复制账号并安装插件(所有节点)4.单主模式5.切换为多主模式过程所遇到的坑:1.MySQL各式同步方式说明异步复制:主库binlog落盘之后,即返回给客户端,事务已提交。全同步复制:所有从库均已接收到主库的binlog信息,并均已日志应用,才会返回客户端事务已提交,存在一定的性能问题,当主库长事务影响尤甚半同步复制:主库下游有一个从库接收到主库binlog,并写到relay-原创 2020-09-29 22:20:49 · 551 阅读 · 0 评论 -
MySQL MHA高可用架构搭建
一. 环境信息角色IP主机名网卡MHA node10.210.99.33liupc3ens192master10.210.99.31liupc1ens192slave10.210.99.32liupc2ens192VIP:10.210.99.30二. 配置MySQL node主从复制(该部分不叙述了,详情可以自行百度).三. 配置好相关依赖所有节点安装好依赖(我这边是以非rootOS用户mysql执行的)sudo yum install原创 2020-09-25 16:25:20 · 184 阅读 · 2 评论 -
MySQL 8.0版本 binlog2sql 解析binlog
1.确认MySQL相关配置以及用户权限使用MySQL server必须设置以下参数:[mysqld]server_id = 1log_bin = /var/log/mysql/mysql-bin.logmax_binlog_size = 1Gbinlog_format = rowbinlog_row_image = fulluser需要的最小权限集合:select, super/replication client, replication slave建议授权GRANT SELECT原创 2020-09-08 19:57:48 · 1594 阅读 · 0 评论 -
MySQL 自增主键不连续测试
日常工作中,是否遇到明明设置了自增主键,结果自增ID却是非连续性的情况呢,今天就通过测试来复现这种情况测试表以及相关参数设置如下:mysql> show variables like '%auto_increment%'; +--------------------------+-------+| Variable_name | Value |+--------------------------+-------+| auto_increment_incremen.原创 2020-08-24 13:07:34 · 185 阅读 · 0 评论 -
mysql_config_editor & my_print_defaults
mysql_config_editor用于给指定的连接和密码生成一个加目录下的隐藏密码文件.mylogin.cnf,避免密码直接暴露(不是绝对保密,后续有解法)原创 2020-08-18 18:32:21 · 306 阅读 · 0 评论 -
mysqlfrm解析表结构
1.下载并安装相关软件包地址:mysql-utilities-1.6.5.tar.gz下载地址[root@cnsz92vl13410 mysql]# lsmysql-utilities-1.6.5.tar.gz[root@cnsz92vl13410 mysql]# tar -xvf mysql-utilities-1.6.5.tar.gz [root@cnsz92vl13410 ~]# cd /home/mysql/mysql-utilities-1.6.5/[root@cnsz92vl1341原创 2020-08-18 10:51:19 · 431 阅读 · 0 评论 -
MySQL5.7版本二进制安装
1.安装包下载选择通用型二进制安装包,下载地址:https://downloads.mysql.com/archives/community/我这边选择的5.7.19版本,对应的安装包为:mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz2.服务器上创建相关MySQL用户和路径创建MySQL用户[root@cnsz92vl13410 ~]# groupadd mysql[root@cnsz92vl13410 ~]# useradd mysql -g mysq原创 2020-08-17 17:10:55 · 604 阅读 · 0 评论