总体来说:在 tx_isolation= READ-COMMITTED .binlog_format =statement 的情况下,mysql 没有gap 锁,这样binlog 记录的数据修改的顺序可能会导致 复制环境的 slave 数据和master 数据不一致. 模拟步骤 数据初始化 CREATE TABLE `gapt` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(32) DEFAULT NULL, PRIMARY KEY…
配置样例 首先提供一个我使用的配置样例 [client] #password=88888888 socket=/data/var/mysql/mysql.sock [mysqld_safe] pid-file=/data/var/mysql/mysqld.pid log-error = /data/local/mysql-5.7.19/log/mysql-error.log [mysql] socket=/data/var/mysql/mysql.sock [mysqld] user = mys…
1. 主从模式的部署步骤 目标:部署一个有3台主机的单主模式的MySQL分组. Primary:192.168.197.110. Secondary:192.168.197.111. Secondary:192.168.197.112. MySQL端口:3306,MySQL分组复制端口:33061. (1)主机192.168.197.110上的操作. 按照如下步骤完成MySQL配置,并且将自己加入到分组中,最后启动分组. (a)修改MySQL配置. 修改MySQL服务的配置文件. [mysqld…
在 Mixed 模式下,MySQL 会根据执行的每一条具体的 SQL 语句来区分对待记录的日志形式,也就是在 statement 和 row 之间选择一种.如果SQL语句为UPDATE/DELETE等修改语句时,并不是所有操作都以ROW模式记录变更操作. 测试Demo: ## 创建测试表 CREATE TABLE TB001(ID INT AUTO_INCREMENT PRIMARY KEY,C1 INT,C2 INT); ## 插入测试数据 ,); ## 更新数据 ; 查看生成的BINLOG事…
为了给高并发情况下的mysql进行更好的优化,有必要了解一下mysql查询更新时的锁表机制. 一.概述 MySQL有三种锁的级别:页级.表级.行级.MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking):BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁:InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁. MySQL这3种锁的特性可大致归纳如下: 表级锁:开销小,加…
Session 1: mysql> start transaction; Query OK, 0 rows affected (0.00 sec) mysql> select * from SmsTest where phoneNo between 30 and 40 for update; +----+---------+-------------+--------+ | sn | phoneNo | channelType | status | +----+---------+------…
mysql> select sn,id,info from s100 group by id; +-----+------+------+ | sn | id | info | +-----+------+------+ | 227 | 1 | aa | | 228 | 2 | bb | +-----+------+------+ 2 rows in set (0.02 sec) mysql> select sn,count(id),info from s100 group by id; +-…
可以通过以下命令查看日志是否开启查看 show global variables like '%log%'; 当bin-log的模式设置为row时 不仅日志长得快 , 并且查看执行的sql时 , 也稍微麻烦一点:1.干扰语句多; 2生成sql的编码需要解码 此时需要加上参数 base64-output --base64-output=decode-rows -v 例如: /opt/mysql/bin/mysqlbinlog --base64-output=decode-rows -v --sta…
为了给高并发情况下的mysql进行更好的优化,有必要了解一下mysql查询更新时的锁表机制. 一.概述 MySQL有三种锁的级别:页级.表级.行级.MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking):BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁:InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁. MySQL这3种锁的特性可大致归纳如下: 表级锁:开销小,加…
目录 MySql 严格模式 MySQL的sql_mode合理设置 sql model 常用来解决下面几类问题 sql_mode常用值 注意 改为严格模式后可能会存在的问题 模式设置和修改(以解决上述问题为例) MySql 严格模式 MySQL的sql_mode合理设置 sql_mode是个很容易被忽视的变量,默认值是空值,在这种设置下是可以允许一些非法操作的,比如允许一些非法数据的插入. 在生产环境必须将这个值设置为严格模式,所以开发.测试环境的数据库也必须要设置,这样在开发测试阶段就可以发现问…
转自https://www.cnblogs.com/jhcelue/p/7290243.html 1.开启与关闭Strict Mode方法 找到mysql安装文件夹下的my.cnf(windows系统则是my.ini)文件 在sql_mode中增加STRICT_TRANS_TABLES则表示开启严格模式.如没有增加则表示非严格模式,改动后重新启动mysql就可以 比如这就表示开启了严格模式: sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES…
1.开启与关闭Strict Mode方法 找到mysql安装文件夹下的my.cnf(windows系统则是my.ini)文件 在sql_mode中增加STRICT_TRANS_TABLES则表示开启严格模式.如没有增加则表示非严格模式,改动后重新启动mysql就可以 比如这就表示开启了严格模式: sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 2.Strict Mode功能说明 不支持对not null字段插入null值 不支持对自增长字段…
在MySQL数据库中,在进行数据迁移和从库只读状态设置时,都会涉及到只读状态和Master-slave的设置和关系. 经过实际测试,对于MySQL单实例数据库和master库,如果需要设置为只读状态,需要进行如下操作和设置:      将MySQL设置为只读状态的命令:# mysql -uroot -pmysql> show global variables like "%read_only%";mysql> flush tables with read lock;mysq…
在给mysql数据库备份时,报错: mysqldump: Got error: 145: Table '.\shengdaxcom\pre_forum_thread' is marked as crashed and should be repaired when using LOCK TABLES 如上错误的解决方法如下:1.进入数据库对该表进行检测: mysql> check tables pre_forum_thread;+------------------------------+--…
前言 过年回来的第二周了,终于有时间继续总结知识了.这次来看一下SQL调优的知识,这类问题基本上面试的时候都会被问到,无论你的岗位是后端,运维,测试等等. 像本文标题中的两个问题,就是我在实际面试过程中遇到的,所以这次就主要围绕着这两个问题来总结一下. 本文的重点在第二部分,请耐心看完! explain 查询SQL执行计划 我们在想知道一条SQL的执行计划时,是可以通过Explain关键字来模拟优化器执行SQL查询语句,进而来分析SQL的语句. 举例: 创建如下数据表 CREATE TABLE…
oracle创建表时,不支持在建表时同时增加字段注释.故采用以下方式: #创建表CREATE TABLE predict_data as ( id integer ), mid ), time date , content ), constraint predict_data primary key (id) );#字段注释comment on table predict_data is '预测表';comment on column predict_data.id is '主键';commen…
mysql 查询数据时按照A-Z顺序排序返回结果集 $sql = "SELECT * , ELT( INTERVAL( CONV( HEX( left( name, 1 ) ) , 16, 10 ) , 0xB0A1, 0xB0C5, 0xB2C1, 0xB4EE, 0xB6EA, 0xB7A2, 0xB8C1, 0xB9FE, 0xBBF7, 0xBFA6, 0xC0AC, 0xC2E8, 0xC4C3, 0xC5B6, 0xC5BE, 0xC6DA, 0xC8BB, 0xC8F6, 0xCB…
前言 最近在使用bootstrap的popover插件,效果如下: popover插件的focus模式时表现为当点击按钮时弹出浮动层,在点击浮动层外的任何一处,都隐藏浮动层. 但是在mac下的Safari浏览器中无法弹出浮动层,bug导致原因未知,官方demo也是如此. 解决方案 最后反复试验,发现一种解决方案,非常简单,即在给按钮绑定鼠标事件,然后手动触发dom的focus事件,也就连带触发了popover插件的显示事件. var $btn=$(".btn"); $btn.mouse…
MySQL做练习时总结的一些知识点     0:mysql有三种注释方法 上午插入记录的时候一直没有成功,郁闷不知道为什么.因为是很多条记录一起插入,中间一些不用的数据就用"--"来注释了,结果没有效果. 没有办法,在网上找了找,才发现注释符"--"错了,需要一个空格,应该是"-- ".  mysql注释符有三种: 1.#... 2."--  ..." 3. mysql 服务器支持 # 到该行结束.-- 到该行结束 以及 的注…
MySQL 插入数据时,中文乱码问题的解决(转) 当向 MySQL 数据库插入一条带有中文的数据形如 insert into employee values(null,'张三','female','1995-10-08','2015-11-12','Sales',2000,'是个好员工!'); 出现乱码时,可以使用语句 show variables like 'character%'; 来查看当前数据库的相关编码集. 从上图中可以看到 MySQL 有六处使用了字符集,分别为:client .co…
paip.navicat form  mysql导入文本文件时CPU占用100%的解决 作者Attilax ,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog.csdn.net/attilax navicat 10.1.7 导入一个txt文件,CPU占用100%..但是导入其他TXT文件是没有问题的. 以为是中文文件名问题,改成英文还是这样.. EDITPLUS>DOCUMENT>FILE ENCODEING>CHANGE F…
问题现象: 这几天在为客户终端换装杀毒软件时出现这么一个问题:在控制面板的添加或删除程序里面将“McAfee VirusScan Enterprise和 McAfee AntiSpyware Enterprise Module”卸载后,却无法卸载“McAfee agent”,总是提示“处于托管模式时无法删除”. 问题分析: 其实这是因为McAfee杀毒软件的CMA程序在作怪,而这个CMA却并不会在添加或删除程序列表里面显示,且它会占用一个服务. 解决方法: 在 McAfee 默认安装目录下,有一…
spa(单页应用,vue)中,使用history模式时,微信长按识别二维码在ios下失效的问题. 触发条件: spa单页应用: 路由模式 history 从其他页面跳转到带有微信二维码识别的页面(不是直接打开该页面) ios版本的微信(实测版本6.5.19) 结果: 二维码长按无法识别,刷新页面后恢复正常,安卓下正常. 解决方案: 1. 进入该页面的方式不使用路由跳转,而改为 <a href="xxx">目标二维码页面</a>的方式: 2. 在beforeCre…
[CSDN下载] Powerdesigner 设计主键code不能重复等问题 [CSDN博客] Oracle中用一个序列给两个表创建主键自增功能的后果 [CSDN博客] MySQL自增主键删除后重复问题 [CSDN博客] mysql 主从复制 双主从复制原理 防止主键重复问题(必看) [CSDN博客] replace into导致mysql自增列导致主键重复问题分析 [CSDN博客] 一个循环更新某库所有表所有非主键列的值方法(sql 2005 & mysql) [CSDN博客] mysql i…
一.问题描述: mysql数据库查询时,遇到下面的报错信息: 二.原因分析: dw_user 表数据量比较大,直接查询速度慢,容易"卡死",导致数据库自动连接超时.... 三.解决办法: 方案1.在mysql配置文件[myslqd]下面添加一行设置skip-name-resolve.需要重启mysql服务. 方案2.在hosts文件内添加: ip与主机名的映射关系[这种方式不用重启] 如: 在hosts文件中添加: 127.0.0.1 localhost 其他网上的方法: 1. 代码层…
mysql 严格模式 Strict Mode说明 1.开启与关闭Strict Mode方法找到mysql安装目录下的my.cnf(windows系统则是my.ini)文件 在sql_mode中加入STRICT_TRANS_TABLES则表示开启严格模式,如没有加入则表示非严格模式,修改后重启mysql即可 例如这就表示开启了严格模式: sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 2.Strict Mode功能说明不支持对not null…
排除故障指南:MySQL运行内存不足时应采取的措施? 天一阁@ 老叶茶馆 1周前 导读 排除故障指南:MySQL运行内存不足时应采取的措施? 翻译团队:知数堂藏经阁项目 - 天一阁 团队成员:天一阁-冷锋. 天一阁-Judy .天一阁-神谕 译文校稿:叶师傅 原文出处:<What To Do When MySQL Runs Out of Memory: Troubleshooting Guide> https://www.percona.com/blog/2018/06/28/what-to-…
在学MySQL的连接时,为了便于记忆,就将左连接 记做 最后结果的总记录数 和 进行左连接的左表的记录数相同,简单的说就是下面这个公式 count(table A left join table B) == count(table A)  毫无疑问,很多时候是这样的,但是,这个结论是错误的,因为一旦table B中有重复的数据时,最后的结果就可能比count(A)的数量多 举个例子:这里有两个表,结构如下 mysql> desc dep; +--------+---------+------+-…
关于mysql严格模式的开启.关闭 由于项目中对一些默认值设置问题,以及种种原因,mysql数据库需要使用非严格模式开发(mysql最近的版本默认是开启严格模式的). linux下mysql服务下操作步骤是: 1.进入mysql服务 2.执行set操作修改,我们项目是直接设置为'' mysql> set global sql_mode=''; #这种方法修改,当前会话失效后,这个修改就没意义了,建议修改配置文件的方式修改 3.修改后,不需要重启mysql服务,立即生效 4.检查是否生效,执行sq…
mysql主从模式下在主库上的某些操作不记录日志的方法 需求场景: 在主库上的需要删除某个用户,而这个用户在从库上不存在(我在接手一个业务的时候,就遇到主从架构用户授权不一致的情况,主库比较全,而从库只创建了复制和只读账号). 个人建议,在一个集群架构(姑且把主从复制也称为集群吧),端口.用户名.密码.权限都要保持一致,这样,在切换的时候,就不用考虑权限问题.否则切换了,但是因为权限问题, 导致连接报错,不值得自己给自己挖坑. 具体说明如下: set sql_log_bin=0;的作用和目的:禁…