![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL数据库实战
蜗牛杨哥
成功就是将个人潜能发挥到极限!&&以及大多数人的努力程度之低,根本还轮不到拼天赋 【<br> |||| </br>】
决定出去看看,"看看那些在巨大压力下生活的老友们, 如果他们生活得还很好就取取经,如果他们生活状况一般, 就忽悠他们一起干事业"。找一些志同道合的人结伴而行,才能解决一个人单打独斗的势单力薄。尤其是在这个竞争日趋激烈的时代, 合伙创业, 会让很多事情从不可能变为可能, 从小打小闹发展到大规模运作。
展开
-
MySQL数据库 使用binlog+canal或binlake进行数据库的复制
前言在进行冷热分离的时候,需要将数据实时的复制在历史数据库中,我们使用的是binlog+canal的思想,将每次数据库数据的变更转换成消息发出来,然后再操作这些消息达到数据复制的在京东,实现同样功能的组件,叫binlake接下来详细说下:1.Binlogmysql有多种日志,常见的有:错误日志(ErrorLog)更新日志(UpdateLog)二进制日志(Binlog)查询日志(QueryLog)慢查询日志(SlowQ...原创 2020-05-19 21:50:00 · 1271 阅读 · 0 评论 -
MySQL数据库 基于 Binlog + Flink 实现多表数据同构/异构
什么是数据异构?简单讲,就是将数据进行异地数据异构存储。数据异构服务市场使用 BinLake(京东 MySQL 的 Binlog 日志实时采集、统一分发、消息订阅和监控服务)进行数据异构,即通过订阅 MySQL 的 Binlog 日志,通过接收 JMQ 进行数据异地构建存储。数据异构主要有两种方式,一种是顺序消费、另一种是并行消费。其中,在进行订单、订购的数据异构时是要求保证严格的顺序性的,因为并行消费是无法保证订单的先后顺序的,所以可能造成数据不一致。但顺序消息的问题主要是单点消费效...原创 2020-05-19 21:44:36 · 1442 阅读 · 1 评论 -
MySQL 导入SQL语句报错:Got a packet bigger than 'max_allowed_packet' bytes
在测试mysql备份文件是否可正常还原时,即将备份文件还原到另一台服务器实例上,出现了一系列的错误。其中的错误如下:[Err] 1153 - Got a packet bigger than 'max_allowed_packet' bytes[Err] 1046 - No database selected[Err] 1231 - Variable 'collation_connection' can't be set to the value of 'NULL...原创 2020-05-12 14:17:21 · 601 阅读 · 0 评论 -
MySQL 复制相关问题处理(细节)
部分参数设置 my.cnf server-id = 1 log_bin = mysql-bin binlog_format = row expire_logs_days = 7 sync_binlog = 1 sync_relay_log = 10000 sync_relay_log_info = 10000 relay_log_purge = 1 relay_log_recovery = 1 log_sla...原创 2020-05-12 14:13:49 · 1624 阅读 · 0 评论 -
MySQL 死锁检查处理(实战)
正常情况下,死锁发生时,权重最小的连接将被kill并回滚。但是为了找出语句来优化,启用可启用死锁将死锁信息记录下来。#step 1:窗口一mysql> start transaction;mysql> update aa set name='aaa' where id = 1;#step 2:窗口二mysql> start transaction;mysql> update bb set name=...原创 2020-05-12 14:06:27 · 447 阅读 · 0 评论 -
SQLServer MySql 计数器表(实操)
例子参考《高性能MySql》第三版4.4.2 计数器表(page 135)由于mysql 没有执行成功,现在用sqlserver 模拟样本。计数器表可用于缓存一个用户的朋友数,文件下载次数等。创建表hit_counter 用于计数,先插入一行数据,每次更新增加1,总计则求和!CREATE TABLE hit_counter( cnt int not null )GOinser...原创 2020-05-12 14:02:59 · 434 阅读 · 0 评论 -
MySQL EXPLAIN 实践汇总(操练)
MySQLEXPLAIN可以显示估计查询语句执行计划,从中可以分析查询的执行情况是不是最优,这有助于我们对不使用索引的查询进行优化。EXPLAIN对于每个查询语句返回一行信息,它列出了一个有序的表格,MySQL处理语句的时候会读取他们。MySQL解决所有的连接都使用嵌套连接方法。这意味着MySQL读取第一张一行,然后匹配第二张表的所有行,第三张表或更多表都如此。当所有的表在处理时,MySQL会输出已经查询出来的列,并且回溯到表继续查找直到所有的行被找到,从该表读取下一行,直到程序继续处理下一张表。当使用原创 2020-05-12 13:59:56 · 380 阅读 · 0 评论 -
MySQL 慢查询跟踪(实操)
参考:https://dev.mysql.com/doc/refman/5.7/en/slow-query-log.htmlmysql 版本:mysql-5.7.1慢查询用到的几个参数,默认值如下:+---------------------------------------+------------------------------------------+| Variable_name | Value ...原创 2020-05-12 04:12:49 · 510 阅读 · 0 评论 -
MySQL PROFILE 跟踪语句各阶段性能开销(性能调优)
PROFILE 可以跟踪查询语句各个阶段 Time,IO,CPU,MEMORY 等资源使用情况,比较详细。所以系统一般不会记录太多。启用是全局的,所以每个连接都保持语句的资源使用情况。查看 PROFILE 是否启用:mysql> select @@profiling;+-------------+| @@profiling |+-------------+| 0 |+-------------+mysql> show variables like '%...原创 2020-05-11 12:26:49 · 436 阅读 · 0 评论 -
MySQL 查看/备份/导入/导出/结构或数据(实战)
#查看某个表的结构(当前数据库mysql,查看表user):mysql > desc user;mysql > describe user;mysql > show columns from user;mysql > show fields from user;mysql > show create table user;mysql > select * from information_schema.columns where table_schema='m原创 2020-05-11 12:24:24 · 200 阅读 · 0 评论 -
MySQL 字符集编码及乱码实操
最常见的问题就是数据库插入查看或导入导出出现了乱码,这应该是所有用过mysql的人都遇到过了吧。所以解决乱码问题,就应该理解其原因:就是客户端连接设置的编码与表编码不一致!数据库字符集有多种,linux 系统默认是 utf-8 编码,而 windows 默认为 gbk 编码。一般我们常用的系统都是中英文命名和存储数据d系统,所以服务器和mysql数据库设置编码为 utf8。mysql 还有字符集 utf8mb4,兼容 utf8 ,可保持 emoji 表情,但比 utf8 多占用1个字节。查看li.原创 2020-05-11 12:22:43 · 643 阅读 · 0 评论 -
MySQL mysqldump 常见备份参数详解
#【-A, --all-databases】导出所有数据库数据,包括数据库和表的创建脚本mysqldump -uroot -pmysql -A#【-a】导出包括创建选项,默认启用(如创建表时带有选项 ENGINE DEFAULT CHARSET);# 相反:不需要选项则使用 --skip-create-optionsmysqldump -uroot -pmysql -a testmysqldump -uroot -pmysql --skip-create-options test#【-...原创 2020-05-11 12:13:43 · 1348 阅读 · 0 评论 -
MySQL 指定存储路径和分区实例
--检查是否支持 partition 红线部分,支持分区mysql> select plugin_name, plugin_version, plugin_status from information_schema.plugins;mysql> show variables like '%version%';+-------------------------+------------------------------+| Variable_name ...原创 2020-05-11 12:11:42 · 694 阅读 · 0 评论 -
MySQL 日志文件binlog相关操作(精讲)
show binary logs; #显示当前日志文件show variables like '%log_%';show variables like 'expire_logs_days';#轮询切换新日志文件flush logs; mysqladmin -u root -p flush-logsmysqladmin -u root -p refresh#日志过期清除天数expire_logs_days = 15 #配置文件 my.cfg 设置set globa...原创 2020-05-11 11:58:26 · 151 阅读 · 0 评论 -
MySQL 单个数据库备份还原(实战)
数据库备份还原 MYISAM: --lock-all-tables INNODB: --single-transaction#单个数据库备份及压缩mysqldump -uroot -pmysql --opt --databases --routines --events --flush-logs --single-transaction --master-data=2 --default-character-set=utf8 test | gzip > /op...原创 2020-05-11 11:56:45 · 569 阅读 · 0 评论 -
MySQL 常用脚本语句操练
查看配置变量及运行状态变量:#变量(全局)mysqladmin -uroot -pmysql variablesmysql -uroot -pmysql -e "show global variables;"select * from information_schema.global_variables;#运行状态(全局)mysqladmin -uroot -pmysql extended-statusmysql -uroot -pmysql -e "show global ...原创 2020-05-11 11:49:01 · 369 阅读 · 0 评论 -
MySQL NDB Cluster 搭建
MySQL NDB Cluster是内存集群数据库,可将数据分组分片冗余,由参数NoOfReplicas控制。MySQL NDB Cluster有三种类型的群集节点:管理节点:管理NDB群集中的其他节点,如配置、启动和停止节点、监控、备份等功能。数据节点:存储集群数据,NDB虽是内存数据库,也可定义表空间存储[# of node groups] = [# of data nodes] / NoOfReplicasSQL节点:访问群集数据的节点。对于NDB群集,SQL节点是使用NDBC..原创 2020-05-11 11:42:44 · 560 阅读 · 0 评论 -
MySQL主从复制时报错:No query specified
主节点操作:show master status;mysql> show master status;+---------------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+-------------------...原创 2020-05-11 10:53:47 · 3717 阅读 · 2 评论 -
MySQL InnoDB引擎表空间(tablespace)--探究
1.System tablespace系统表空间是MySQL Server进行相关操作的公共表空间,其主要内容包括:表数据页 表索引页 数据字典 MVCC控制数据 Undo space 回滚段 Double write buffer Insert buffer相关参数innodb_data_file_path = /ibdata/ibdata1:10M:autoextendinnodb_file_per_table = ONmysql> show variables原创 2020-05-10 19:17:41 · 2053 阅读 · 0 评论 -
MySQL:报错you *might* want to use the less safe log_bin_trust_function_creators variable
因为在打开日志文件情况下执行以前建立的 自定义函数报错详细分析如下: 1 .调用自定义函数 mysql> select sp_function_dbdh_three(); #以前自定义的函数 2. 报错信息: ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQ L DATA in its declaration and binary lo...原创 2020-05-10 19:07:04 · 703 阅读 · 0 评论 -
数据库日志文件【undo log ,redo log, undo/redo log】二阶段提交
在谈日志文件之前,不得不提事务这一概念。在某种意义上来说,如果没有事务存在,也就没有所谓的日志文件。下面开始了。一、事务1ACID数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作。 通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性。原子性 (atomicity) 事务必须是原子工作单元;...原创 2020-05-10 16:56:39 · 499 阅读 · 0 评论 -
MySQL日志系统:redo log、binlog、undo log 区别与作用
日志系统主要有redo log(重做日志)和binlog(归档日志)。redo log是InnoDB存储引擎层的日志,binlog是MySQL Server层记录的日志, 两者都是记录了某些操作的日志(不是所有)自然有些重复(但两者记录的格式不同)。 MySQL的逻辑架构图redo log日志模块redo log是InnoDB存储引擎层的日志,又称重做日志文件,用于记录事...原创 2020-05-10 15:09:53 · 1178 阅读 · 0 评论 -
MySQL5.7源代码安装及主从复制搭建
MySQL5.7源代码安装(源码安装 【Server version: 5.7.17】 )wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz创建MySql安装程序的目录mkdir -p /usr/local/mysql创建MySql数据文件的目录...原创 2020-04-03 00:42:05 · 336 阅读 · 0 评论 -
MySQL的binlog日志介绍及binlog_format模式与配置详解
binlog 基本认识 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。 一般来说开启二进制日志大概会有1%的性能损耗(参见MySQL官方中文手册 5.1.24版)。二进制有两个最重要的使用场景: 其一:MySQL Replication在Master端开启binlog,Mster把它的二进制日志传递给slaves来达到master...原创 2020-05-10 14:55:49 · 1539 阅读 · 0 评论