mysql
川中胡子
一个老运维的工作和学习笔记,好记性不如烂笔头。
展开
-
关于mysql字符集的修改
按照下述修改mysql配置文件,重启生效==================================================[client]default-character-set=utf8[mysql]default-character-set=utf8[mysqld]init-connect='SET NAMES utf8'character-set-server = utf...原创 2018-04-08 14:55:13 · 1019 阅读 · 0 评论 -
MySQL字符集
1、字符集查看数据库支持的字符集:show character set;查看字符集所拥有的排序字符集:show collaction like 'lation%';常用字符集:二字节:GBK、GBK2312(GBK的子集)三字节:utf8(utf8mb4的子集)四字节:utf8mb4 5.5版本后支持,支持emoji类字符排序字符集后缀:_ci case insensitive 大小写不敏感_cs...原创 2018-06-27 11:25:49 · 169 阅读 · 0 评论 -
不停业务搭建MySQL从库
网上介绍的从库搭建一般需要停止主库业务,对业务持续性存在影响,本文将在不停业务不停主库的情况下,完成从库的初始化及binlog同步配置,适用于传统自建mysql及云环境下的mysql从库的搭建。 关键:有主库全备文件及备份时刻的position;全库备份参考:主库导出,记录主库binlog及positionmysqldump -uroot -p123456 -h10.1.1.1...原创 2018-07-02 11:16:46 · 1033 阅读 · 0 评论 -
mysql可视化管理工具+字符集不一致导致主从中断
问题现象:操作人员在主库上通过mysql可视化管理工具sqlyog编辑表结构(增加一个字段)后,导致mysql主从同步sql同步进程中断从库端“show SLAVE STATUS”查看中断报错:某个字段主库有,从库没有; 先解决主从同步中断问题: 1、停止从库同步:stop slave; 2、手工在从库新增对应字段; 3、启动从库同步:start s...原创 2018-07-13 17:45:52 · 422 阅读 · 0 评论 -
MySQL主从同步状态监控脚本及邮件通知
网络版本#!/bin/bashmysql_cmd="mysql -u root -pxxxxxxxxx"errorno=(1158 1159 1008 1007 1062)while truedoarray=($($mysql_cmd -e "show slave status\G"|egrep '_Running|Behind_Master|Last_SQL_Errno'...原创 2018-07-31 16:17:54 · 1062 阅读 · 0 评论 -
MySQL的存储引擎
查看当前MySQL数据库支持的引擎:show engines;mysql引擎特点:插件式,可混用,可定制常见mysql引擎介绍:1、MEMORY内存表,只有一个.frm文件,用于存储表结构;只有定义,绝无数据;memory引擎的表数据常驻内存,删除记录后内存可被该表重用,但不能被其他对象或线程使用;表数据重启mysql后丢失, 查看表状态:show table st...原创 2018-08-01 10:07:20 · 131 阅读 · 0 评论 -
MySQL的逻辑备份mysqldump及自动化备份脚本
连接参数-u-p-S --socket-h --host-P --port--database备份示例:mysqldump -uabc -p'43df.com' -S /xxxx/3306/mysql.sock --databases db_a db_b >/.../xx.sql上述示例简单有效,但锁库锁表,避免用于生产环境可输出为定界格式文件,相关参...原创 2018-08-14 14:11:34 · 1814 阅读 · 0 评论 -
MySQL数据库的文件结构
1、初始化选项文件(配置文件)可以启动的时候指定,更多的时候选择默认查询,windows查找顺序略,Linux查找顺序:/etc/my.cnf/etc/mysql/my.cnf/SYSCONFDIR/my.cnf 通过CMake源码编译时指定的SYSCONFDIR参数指定$MYSQL_HOME/my.cnf~/.my.cnf其他目录下时,通过参数defaults-fil...原创 2018-08-02 10:17:13 · 3114 阅读 · 0 评论 -
利用mysql的TRIGGER 同步更新相关记录
做了一个应用分发脚本,update了mysql中shell自己相关的记录状态后,开发还要求我去更新他的记录(好吧,其实我是一枚运维);懒得改shell脚本了,直接用个触发器,保持两边状态同步,记录一下。DELIMITER $$USE `xxxx_db`$$CREATE TRIGGER `shelloperatelist_tri` AFTER UPDATE ON `t_shell...原创 2018-09-05 20:58:23 · 477 阅读 · 0 评论 -
mysql的datetime和timestamp
TIMESTAMP和DATETIME的相同点:1> 两者都可用来表示YYYY-MM-DD HH:MM:SS[.fraction]类型的日期。TIMESTAMP和DATETIME的不同点:1> 两者的存储方式不一样对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。适用于跨时区业务。而...转载 2018-12-07 10:16:54 · 192 阅读 · 1 评论 -
关于mysql数据库分库分表、事务一致性问题的学习
很多人张嘴就是分库分表,好像不分库分表就不算牛逼的系统,不谈分库分表就没有逼格一样。个人觉得,在设备配置别太挫、业务拆分别太渣、sql写法别太low、单表数据不上亿的情况下,靠读写分离、索引优化、表分区等手段就能满足绝大多数系统的需求,能不分还是不分的好!当然,最关键的还是先搞清楚自己的到底是OLTP还是OLAP数据库,如果你非要在交易库上跑BI,那你就任性吧。最近看了一个老司机的文章,深...原创 2019-04-22 17:40:05 · 2558 阅读 · 0 评论 -
MySQL主主集群节点迁移方案
需求:A、B节点为mysql主主集群,现在需要接入C节点,与B形成主主,A节点降级为B的从节点。规划:1、完成B到C的主从配置;2、停掉A的业务接入(或将流量暂时切换到B),即停止A的写入,关闭A到B的主从,AB节点降级为单纯的B到A的主从;3、完成C到B的主从配置,实现B、C的主主配置;4、将原来A的流量切换到C;实践:1、搭建A、B主主集群;2、写个shell,...原创 2019-05-26 11:14:10 · 568 阅读 · 0 评论 -
FastDFS、Hadoop、TiDB共同点与各自特点
有一天,看TiDB资料的时候,突然想起FastDFS、Hadoop的存储模型,发现与TiDB极为相似,于是总结下。架构特点:都是管理节点(管理元信息、负载均衡)和处理节点(管理数据、计算)的架构;共有的优点:分布式、高可用、无限水平扩展;各自特点:FastDFS:轻量级,单纯的文件存取,节点不具备运算功能;Hadoop:以低成本获得大数据(PB级)处理能力,存储节点也是计算节点...原创 2019-06-05 10:49:58 · 5312 阅读 · 0 评论 -
MySQL的分区(Partition)与分片(sharding)
分区(Partition)优点:业务无感,多个物理存储,逻辑上还是一张表局限:局限于单库,不能跨主机适用:数据量不超过单主机物理承载分片(sharding)优点:无限扩展,可以跨库、跨主机局限:扩展时需要调整业务配置适用: 垂直分片:不同的表分散到不同的数据库或主机,适用于低耦合系统; 水平分片:同一张表的数据分散到不同的数据库或主机,适用于复杂系统。...原创 2019-06-13 09:47:27 · 2564 阅读 · 0 评论 -
MySQL的权限体系
1、关于账号user@host 账号三要素:账号、密码、来源主机账号的创建传统方式:create user abc@'192.168.1.2' identified by 'abc';grant方式:grant select on abc_db.* to abc@'192.168.1.2' identified by 'abc';另类方式:insert into m...原创 2018-06-26 15:22:04 · 241 阅读 · 2 评论 -
mysql保存安卓手机表情出错
苹果手机保存表情,不报错;安卓手机保存表情,报错: Incorrect string value: '\xF0\x9F\x91\x8D' for column 'content' at row 834字段类型text,字符集utf8mb4;解决:设置[mysqld]参数character-set-server = utf8mb4 ...原创 2018-06-05 10:24:48 · 246 阅读 · 0 评论 -
mysql培训素材总结
公司部门内部培训,总结了些mysql相关的培训素材,用完了在这里分享下,素材收集自网络,加入了一些个人看法。原创 2018-04-08 15:06:57 · 563 阅读 · 0 评论 -
Mysql VS Oracle
培训所需,对mysql和oracle做了些简单的对比原创 2018-04-08 15:08:55 · 297 阅读 · 0 评论 -
修改sql_mode=only_full_group_by
查看select @@sql_mode;SHOW VARIABLES LIKE '%sql_mode';SHOW GLOBAL VARIABLES LIKE '%sql_mode%';修改配置文件,重启后生效[mysqld]sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION下述处理,重启后恢复原配置关闭se...原创 2018-04-08 15:14:36 · 1983 阅读 · 1 评论 -
mysql最大连接数的修改
MySQL查看最大连接数和修改最大连接数1、查看最大连接数show variables like '%max_connections%';2、修改最大连接数 重启后恢复set GLOBAL max_connections = 1000;永久修改:修改MySQL配置文件my.ini 或 my.cnf的参数max_connections,将其改为max_connections=1000,然后重启MyS...原创 2018-04-08 15:27:20 · 149 阅读 · 0 评论 -
电信三户模型在其他领域的应用(如物联网)
原创 2018-04-08 15:36:16 · 472 阅读 · 0 评论 -
Got a packet bigger than 'max_allowed_packet' bytes 报错处理
参考文章:https://blog.csdn.net/superit401/article/details/77480078max_allowed_packet 针对的是一个事务中的一行记录大小,当一行记录超过了限制的大小,将会报错。sql文件中每次insert完进同一张表的所有数据被称为一个数据包(packet),max_allowed_packet就是来限制这个的大小的阈值,大于这个值,mys...原创 2018-04-16 16:35:10 · 745 阅读 · 0 评论 -
mysql数据恢复或数据找回方法
注意:在恢复全备数据之前必须刷新该库binlog,否则恢复过程中,可能会继续写入语句到binlog,最终导致增量恢复数据部分变得比较混乱1、关闭应用,取出全量备份和binlog(腾讯cdb全备的position无法自行定位,需要提工单腾讯技术支持)2、flush logs ; 刷新binlog3、解析binlog,根据时间或其他方法(如:全备时使用--master-data或-...原创 2018-04-11 15:16:23 · 9321 阅读 · 0 评论 -
mysql从库在开启GTID时跳过错误的方法
未开启GTID的处理:set global sql_slave_skip_counter=1;如果开启了GTID,则会报错:ERROR 1858 (HY000): sql_slave_skip_counter can not be set when the server is running with @@GLOBAL.GTID_MODE = ON. Instead, for each trans...原创 2018-04-08 14:50:23 · 4667 阅读 · 0 评论 -
mysql查时间
关于时间的查询select current_date as Systemtime;select now() as Systemtime;select sysdate() as Systemtime;关于时间戳的查询,常用作与随机数一起生成一个高唯一性的id作为记录的主键:select UNIX_TIMESTAMP() ;select from_unixtime(UNIX_TIMESTAMP(),...原创 2018-04-17 14:58:42 · 2047 阅读 · 0 评论 -
mysql的GTID模式对create table as select的限制
在MYSQL中,执行建表语句时CREATE TABLE aaaa AS SELECT * FROM menu; 报: 错误代码: 1786Statement violates GTID consistency: CREATE TABLE ... SELECT.不安全的基于语句复制,实际是两个独立的事件,一个用于建表,一个用于向新表插入源表数据。解决: create ...原创 2018-04-17 15:07:59 · 10781 阅读 · 0 评论 -
Specified key was too long; max key length is 767 bytes
Specified key was too long; max key length is 767 bytes原因:mysql innodb引擎 默认索引长度767 bytes解决:1、减少索引字段长度;2、配置innodb_large_prefix=ON,将约束项扩展至3072byte;3、采用前缀索引的方式以减少索引长度;4、改变字符集为gbk、latin1......(呵呵,不推荐)关联知识...原创 2018-04-18 16:24:45 · 885 阅读 · 0 评论 -
关于MySQL主从模式下主库新增db的处理流程
为节约资源,一般我们只选择通过replicate-do-db指定db进行同步,如果主库新增dbnew,而没有提前做好从库的配置,新增的dbnew是没法自动同步过来的,可以参考如下流程处理;1、停止从库同步stop salve;2、主库、从库分别手工建库明确库名、字符集、排序字符集3、修改从库配置从库my.conf中[mysqld]下新增一行:replicate-do-db=dbnew,重启从库;4...原创 2018-05-28 10:12:05 · 506 阅读 · 0 评论 -
csv导入mysql中文乱码等问题
1、日期格式选择不正确导致导入失败源日期格式:2018-05-31 23:49:44 ,导入时日期分隔符默认为“/”,调整为“-”,问题解决。2、中文导入后乱码原因:字符集选择错误,导入时默认选择如下:应该调整为搞定!...原创 2018-06-05 10:12:49 · 17755 阅读 · 3 评论 -
MySQL集群模式选择
没有最好,只有最适合,根据实际需求和条件选择最适合自己业务系统的就是最好的。1、MySQL主从模式传统Master-Slave模式,可实现读写分离,数据备份;局限:需手动切换数据库2、MySQL主主模式+keepalive两套DB互为主从,结合配置keepalive,故障自动切换,以实现高可用;4、MySQL之MMMMMM:Master-Master ...原创 2019-06-13 14:36:17 · 3414 阅读 · 0 评论