mysql
文章平均质量分 83
祖传编码手艺人
十年饮冰,难凉热血
展开
-
mysql从库start slave无法启动问题处理
ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository查看错误日志提示如下:[ERROR] [MY-010544] [Repl] Failed to open the relay log './e4917fb8ce7c-relay-bin.000014' (relay_log_pos 371).原创 2020-10-21 14:52:17 · 3995 阅读 · 0 评论 -
mysql常见的死锁场景
mysql的锁类型根据锁的粒度分为:1、表锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。2、页锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。很少使用。3、行锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。...原创 2020-10-15 15:36:17 · 1979 阅读 · 0 评论 -
mysql常见问题
1、什么是索引,有哪些优点,缺点。—— 索引是帮助MySQL高效获取数据的数据结构。—— 优点:(1)提高数据查询效率减小数据库IO。(2)通过索引排序,降低CPU消耗。—— 缺点:(1)索引需要占用存储空间。(2)降低了表的更新速度,需要额外的维护索引信息。2、索引分类?—— 应用层:主键索引、普通索引,唯一索引,复合索引。—— 存储结构:B+Tree(适合范围查询)、Hash(适合=、in、<> 查询)。3、B+Tree有哪些优势?—— 除了叶子节点外,其他节点只存储ke原创 2020-08-22 20:55:18 · 138 阅读 · 0 评论 -
php搭建mysql连接池
一直以来,php一直没有mysql连接池的概念,而在开发中大多数框架也是直接使用了长连接的方式。如Thinkphp就是使用过的长连接。对于并发较小的项目来说,长连接确实可以提高查询效率,php不用每次去与mysql服务器建立连接,只要某个php-cgi连接过mysql,那么本次访问结束后,php不会释放与mysql的连接。当下次请求过来的时候,php就可以复用之前的连接,从而消除了建立连接是的额外损耗。举个栗子:假如有一台mysql服务器MA允许的最大连接数为50。有一台php-fpm服务器PA,PA常原创 2020-08-08 14:47:27 · 3874 阅读 · 2 评论 -
如何保持mysql主从数据一致
对于mysql主从结构数据库如何保障数据一致性官方提供了“半同步插件”该插件默认不安装1、要使用半同步复制,必须满足以下要求:MySQL服务器支持动态加载插件的能力。要验证这一点,可以检查 have_dynamic_loading系统变量的值为YES。二进制发行版应支持动态加载。mysql> show variables like "%have_dynamic_loading%";+----------------------+-------+| Variable_name原创 2020-08-06 00:04:06 · 1486 阅读 · 0 评论 -
mysql主从服务器slave宕机后复制中断处理
昨天基于docker搭建了mysql的主从服务器。今天测试了一下宕机后,重新开启服务器master-slave是否可用。测试流程如下:1、直接关闭slave服务的container模拟服务器宕机docker stop my-app-mysql8-slave12、在master服务器的某个库中插入数据INSERT INTO `rbac`.`think_user`(`u_id`, `u_name`, `u_password`, `register_time`, `is_delete`, `statu原创 2020-08-04 23:35:05 · 842 阅读 · 0 评论 -
mysql主从复制工作原理
关于mysql主从复制原理的官方文档说明MySQL复制功能是通过三个线程实现的,一个在主服务器上,两个在从服务器上:Binlog dump thread: 在slave连接master时,master创建了一个线程, 将二进制日志内容发送给slave。 这个线程可以在master上使用show processlist查看到,是一个标识为该Binlog Dump线程。Slave I/O thread: 当执行start slave在slave服务器上执行时,slave服务器创建一个I / O线程,该线原创 2020-06-30 23:25:34 · 278 阅读 · 0 评论 -
基于docker 搭建mysql8.0主从复制
如何使用docker搭建mysql8.0主从复制从而实现读写分离前言1、 docker的安装与mysql8.0镜像的打包这里不做详细介绍。以后有时间再出详细教程。安装好docker运行环境拉去mysql8镜像,我使用的是自己源码编译的mysql8.0。docker-hub地址如下docker pull gongxulei/centos-lnmp:mysql82、主从复制原理mysql的主从复制是基于bin-log实现的,因此需要开启bin-log配置,另外mysql8.0默认是开启bin-lo原创 2020-06-27 22:37:28 · 1280 阅读 · 0 评论 -
The newly created data directory /usr/local/mysql/data/ by --initialize is unusable. You can remove
已经是凌晨深夜,终于找到了问题。昨天晚上打算把自己源码编译的mysql8docker镜像搭建一下主从复制。我使用本地目录挂载到了mysql容器的data目录。然后使用/usr/local/mysql/bin/mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data user=mysql 命令初始化了目录。my.cnf配置如下:[client]default-character-set=u原创 2020-06-27 01:46:28 · 9393 阅读 · 0 评论