MySQL 5.6参数说明
MySQL 5.6参数说明 core_file Server崩溃的时候将相关信息写到core文件里, 系统产生core文件需调大ulimit -c 参数, 文件名默认以.pid结尾. explicit_defaults_for_timestamp 在MySQL中,timestamp类型不同于其它标准数据类型的处理,默认情况下, timestamp列指定为允许NULL属性的话,给该列NULL值即给该列current timestamp值; 第一个为timestamp类型的列可以指定DEFAULT CURRENT_TIMESTAMP或 ON UPDATE CURRENT_TIMESTAMP 属性进行自动更新; 不是第一个的timestamp类型列, 如果没有指定NULL货DEFAULT属性,则DEFAULT ‘0000-00-00 00:00:00’赋于其值。 explicit_defaults_for_timestamp选项改变这种不标准的处理行为, timestamp列没有指定NOT NULL或允许NULL,...
max_allowed_packet and binary log corruption问题说明
max_allowed_packet参数指定了Server可以读取或创建的最大网络包的大小,在5.6.5版本之前默认为1MB, 5.6.6及之后的版本默认为4MB, 该参数最大可指定1GB大小, 在主从环境中关于该参数的限制有下面2点: 1. master端写binlog中的事件不能大于max_allowed_packet参数指定的大小; 2. 在所有slave 节点上的max_allowed_packet参数的值应该和master一样; 正常情况下, slave 得到 max_allowed_packet 相关的错误信息, 通常加大max_allowed_packet(上限1GB) 就可以处理该问题, 不过在异常情况下, 错误信息可能提示存在大于1G的包, 这是不可能的错误, 大部门原因是由于binlog文件中断引起, 举例如下: 出错信息: Got fatal error...
应用程序更新Illegal mix of collations错误说明
完整错误信息如: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (gbk_chinese_ci,IMPLICIT) for operation '=' (1267) INSERT INTO .... name = value ... 错误信息描述了操作符 = 两边的数据编码不一致而引起的冲突, 常见的原因有表的字符集可能为latin1, 而应用程序等的字符集为gbk, 当然基于这样的原因,应用程序等select出来的结果集也可能为乱码状态....
表记录清理注意事项
常规表清理见 pt-archiver 工具: [pt-archiver]/top-10-percona-toolkit-tools-%E4%B8%80/) 1 如果表更新频繁, 不要直接使用delete ... where id <= ? and update_time < ? 这类范围或结果集过大的SQL, 避免delete操作时间过长吃满thread资源影响服务; 2 如果满足条件的记录很多, delete 操作会是耗时操作,同样会引起1中的问题, 应用或脚本应该找出结果集范围对应的主键或唯一键信息, 通过分组方式一组一组的删除相应的id列表; 3...
SQL::Audit审核MySQL query说明
SQL 审核说明 1.概述 SQL::Audit模块审核是以MySQL audit插件为基础, 通过分析SQL记录的来源(audit.log或socket)和使用情况(存储引擎, 索引使用,字符集等)以期避免开发对生产环境主机的影响。 审核部分主要包括:操作日志记录、 统计分析、 SQL改写、 SQL索引分析、 SQL安全、 邮件发送。 见: https://github.com/mcafee/mysql-audit https://github.com/arstercz/cz-sql-audit 2.审核流程 sql_audit脚本读取audit插件的日志信息, 通过SQL::Audit完成检查和分析, 异常的信息通过邮件发送到开发组. 同类的sql在Memcached中缓存一天时间, 避免重复分析. +--------------------+ |MySQL (audit...
MySQL-audit审计插件
MySQL SQL审计插件 https://github.com/mcafee/mysql-audit https://bintray.com/mcafee/mysql-audit-plugin/release 安装: https://github.com/mcafee/mysql-audit/wiki/Installation 需要计算出mysqld版本偏移值: https://github.com/mcafee/mysql-audit/wiki/Troubleshooting my.cnf配置增加audit选项: 注: audit_offsets由offset-extract.sh脚本生成,依赖gdb; audit_whitelist_users增加用户白名单, 以防止程序审核sql的时候重复记录而造成无限循环; # audit plugin plugin-load=AUDIT=libaudit_plugin.so audit_offsets=6456, 6504, 4064, 4504, 104, 2584, 8, 0,...
top 10 percona toolkit tools(五)
9. pt-table-checksum pt-table-checksum.html 工具用来对主从表数据进行一致校验: 该工具通过分组(chunk)方式以hash, md5, cac32或自定义函数生成每个分组数据的检验串, 分别在master和slave端执行, 如果每个分组的校验串一致, 则认为该分组的数据在master和slave一致。详见: mysql 主从一致性校验, 这种方式可以相对有效的找出主从中哪个chunk组的数据不一致, 进而再继续细分chunk, 找出具体的行。 不过分组校验不一定能够严格校验主从的不一致, 这依赖校验函数的冲突率有多大, 默认的crc32函数的冲突率还是偏大的, 如果恰好有几个字符串算出的结果一样, 则该工具出现漏报的可能性, 误报的可能性不能完全杜绝。 该工具由以下限制: (1) 校验数据是假设主从的schema和table结构在master和slave上一致. (2)...
top 10 percona toolkit tools (四)
7. pt-query-digest pt-query-digest 用来分析query 语句: 该工具可用于统计分析 slow log, processlist, binary log 和 tcpdump 相关的sql 语句信息, 生成详细的报表供管理员查看或排错。我们最长用的可能是分析 slow log 和 tcpdump 文件, 基于以下几种场景: (1) 想详细了解过去一段时间慢查询的整体状况,比如哪类的 sql,...
MySQL 升级说明
MySQL 升级说明 1.为什么升级 在没有充分测试前, 升级MySQL,尤其是主版本升级会存在很大的风险, 可能系统表或存储引擎组织方式做了更新, 也可能是参数或默认值信息做了改动, 这些都可能引起应用的中断甚至Server端的崩溃; 不过升级的好处也是很大的,比如想使用新版的功能特性,更好的性能,对固态盘的支持或者已经修复的bug等; 当然一般来说bug和性能问题会促使我们做一些小版本或大版本的升级, 在没有遇到这两个问题之前, 个人不建议对正在稳定使用的MySQL进行升级, 即便新版有更好的功能或性能。 2.升级的方式 我们通俗的将版本升级分为主版本升级(大版本升级)和次版本升级(小版本升级): MySQL 5.1 升级到 MySQL 5.5 称为主版本升级; MySQL 5.5.23 升级到 MySQL...
master硬盘空间不足可能引起的问题
MySQL master硬盘满用引起更新语句阻塞, 表现为select正常, insert, update不能执行却占用线程资源,log出现Too many connections提示, 同时提示Error信息: mysqld: Disk is full writing './mysql-bin.000295' (Errcode: 28). Waiting for someone to free space... (Expect up to...