MySQL
南山行者
这个作者很懒,什么都没留下…
展开
-
mysql的权限控制
一,创建用户CREATE USER user1@'%' IDENTIFIED BY '123456';二,删除用户DROP USER ‘username’@'host’;二,创建权限GRANT all privileges ON databasename.tablename TO 'username'@'host'三,取消权限REVOKE p原创 2015-12-02 11:20:07 · 568 阅读 · 0 评论 -
一致性哈希算法
一致性hash算法(consistenthashing)张亮consistent hashing算法早在1997年就在论文Consistenthashing and random trees中被提出,目前在cache系统中应用越来越广泛;1基本场景比如你有N个cache服务器(后面简称cache),那么如何将一个对象object映射到N个cache上呢,你很可能会采用类似下面的通用转载 2016-03-03 11:33:14 · 584 阅读 · 0 评论 -
创建,增加,删除mysql表分区
1.测试添加分区和删除分区###添加删除range分区(1)创建一个分区:CREATE TABLE titles ( emp_no INT NOT NULL, title VARCHAR(50) NOT NULL, from_date DATE NOT NULL, to_date D转载 2016-03-03 13:54:17 · 4247 阅读 · 0 评论 -
MySQL安装方法
一、确认没有安装mysql数据库查看mysql[root@localhost]# rpm -qa | grep mysql普通卸载,如果有依赖,无法删除并提示依赖[root@localhost]# rpm -e mysql 强制卸载,如果有任何依赖,强制删除[root@localhost]# rpm -e --nodeps mysql原创 2015-08-24 00:44:52 · 1031 阅读 · 0 评论 -
inception安装步骤
1. 下载:https://github.com/mysql-inception/inception 选择下载:Downloda ZIP注意安装包:yum -y install cmake libncurses5-dev libssl-dev g++ bison openssl-devel.x86_64 2. 下载后解压编译:# un转载 2016-04-01 16:08:12 · 2479 阅读 · 1 评论 -
MySQL在线DLL测试
MySQL5.5和之前版本,在运行的生产环境对大表(超过数百万纪录)执行Alter操作是一件很困难的事情。因为将重建表和锁表,影响用户者的使用。MySQL5.6提供了在线DDL,并且不锁表的功能,如果数据量不是特别大,通常可以使用alter。目前在线DLL,有四种办法一、alter table xxxxx; 优点:不阻塞读写,消耗时间长二:alter table xxx原创 2016-03-09 15:43:53 · 6397 阅读 · 0 评论 -
58同城扩展性架构实践的总结
下面是原文文章只是把大概的步骤描述了,看到这里,其实很多人都会觉得有问题。比如从升为主,那么就有两个库的数据相同,而新的mod规则只会到一个库,新的数据能分布到所有库,而老的数据,肯定存在冗余,而且无法对应mod规则。还有“把多余的数据删除掉”,什么意思之类的问题。也是因为文章写得很简单,没有详细说明做法,我画了一个图上方的红框就是使用hash,分了2个库,各一个备库。现在要做mod的2倍扩容,步...原创 2016-03-03 16:17:02 · 814 阅读 · 0 评论 -
mysqldump工具的使用
mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等。运行mysqldump需一定的权限。如,备份表的最低权限为select,备份视图需show view权限,备份触发器需trigger权限。mysqldump的输出可能包含alter database语句,如,用于保持备份库的字符集,原创 2015-08-22 16:30:06 · 1208 阅读 · 0 评论 -
MySQL的biglog文件操作
一、查看1、SQL(1) 查看所有binlog文件mysql> show binary logs;(2) 查看binlog内容mysql> show binary events in 'mysql-bin.000001';2、mysqlbinlog(1) 查看binlog内容,需要先将二进制文件转换成文本文件再查看(也可以加入start-pos、end-pos、s原创 2015-09-01 16:37:41 · 3527 阅读 · 1 评论 -
利用一致性哈希水平拆分MySql单表
Sharding(切片) 不是一门新技术,而是一个相对简朴的软件理念,就是当我们的数据库单机无法承受高强度的i/o时,我们就考虑利用 sharding 来把这种读写压力分散到各个主机上去。所以Sharding 不是一个某个特定数据库软件附属的功能,而是在具体技术细节之上的抽象处理,是Horizontal Partitioning 水平扩展(或横向扩展)的解决方案,其主要目的是为转载 2016-03-03 11:20:03 · 960 阅读 · 0 评论 -
innodb_flush_method 与 File I/O
之前在研究MySQL的一个参数innodb_flush_method时,就涉及到了fsync/fdatasync这些库函数(什么是库函数?它与系统调用的区别在哪?参见这里)。接下来就简单的分析一下sync/fsync/fdatasync的区别。 sync():int sync( void )这就是它的原型,A call to this function will not retu转载 2016-01-09 23:47:17 · 921 阅读 · 0 评论 -
MySQL简单MHA环境搭建
MySQL-MHA是日本MySQL专家用Perl写的一套MySQL故障切换方案,它有Node、Manager两种角色。Node需要安装在所有MySQL服务器不管主还是从,Manager运行在独立服务器。本次搭建使用四台虚拟机,Manager是管理节点,其他三台都是Node: db1即是主库也是管理节点,db2是Master备节点,db3是从库。一、安装MySQL 步骤省原创 2015-08-24 16:03:41 · 3605 阅读 · 0 评论 -
Percona XtraDB Cluster 安装
pxc和普通mysql的安装方式相同,这里只说介绍rpm安装和源码安装两种方法。一,yum安装1,pxc安装按先后顺序需要grlera,shared,client, xtrabackup,server。其中socat被server依赖,也可以yum安装。同时有版本兼容问题,参考如下rpm包。 安装xtrabackup需要先安装源 yum -y install per原创 2015-12-29 12:21:55 · 1013 阅读 · 1 评论 -
Percona XtraDB Cluster 简介
错误的MySQL配置只要定义了wsrep_cluster_address,即使没有定义wsrep_provider参数,MySQL也可以正常启动,但某些希望执行的功能却无法正常工作,而且很难找到问题所在。MySQL错误日志会有如下输出结果:$ bin/mysqld_safe --defaults-file=etc/my.cnf --wsrep_cluster_address=gcomm转载 2015-12-29 16:01:06 · 2070 阅读 · 1 评论 -
MySQL-Double Write
没有Double Write特性的时候更新数据后,会将dirty page放到innodb buffer cache中。此时页的checksum值会发生变化。页的头部fileheader部分有checksum项,名为file_page_space_or_checksum。页的尾部filetailer部分也有用来比较checksum的项,名为file_page_end_lsn。它们使转载 2015-12-17 10:55:07 · 721 阅读 · 0 评论 -
MySQL-Redo Log
redo日志由两部分构成:redo log buffer、redo log file。innodb是支持事务的存储引擎,在事务提交时,必须先将该事务的所有日志写入到redo日志文件中,待事务的commit操作完成才算整个事务操作完成。在每次将redo log buffer写入redo log file后,都需要调用一次fsync操作,因为重做日志缓冲只是把内容先写入操作系统的缓冲系统中,并没有确保转载 2015-12-17 11:07:33 · 846 阅读 · 0 评论 -
mysql交互式连接&非交互式连接
交互式操作:通俗的说,就是你在你的本机上打开mysql的客户端,就是那个黑窗口,在黑窗口下进行各种sql操作,当然走的肯定是tcp协议。非交互式操作:就是你在你的项目中进行程序调用。比如一边是tomcat web服务器,一边是数据库服务器,两者怎么通信?在java web里,我们通常会选择hibernate或者是jdbc来连接。那么这时候就是非交互式操作。在之前,我基本上不关系这两个属转载 2015-12-01 10:05:23 · 1736 阅读 · 0 评论 -
percona tpcc的安装和使用
tpcc-mysql是开源的TPC-C测试工具,其完全遵循TPC-C标准.TPC-C是TPC协会制定的,用来测试典型的复杂OLTP(在线事务处理)系统的性能。它是percona基于tpc-c衍生出来的产品,专用于mysql基准测试,其源码放在bazaar。一、安装1,安装bzr版本控制工具yum install bzr 2,下载tpcc源码bzr branch lp:~perc原创 2015-12-03 10:27:35 · 710 阅读 · 0 评论 -
Mysql自动化安装
1,Shell脚本mysql二进制安装#!/bin/bashecho "Step 1,uninstall mysql-lib"yum remove -y mysql-libsecho "Step 2,add group and user"groupadd mysqluseradd -r -g mysql mysqlecho "Step 3,tar mysql原创 2015-11-12 17:18:19 · 862 阅读 · 0 评论 -
关于GAP死锁的场景
场景是表中id从5到9的数据被删除,当事务A锁定id=6,事务B也锁定id=6,事务A插入会等待,事务B插入提示死锁, 事务B回滚,事务A提交。数据如下:REPEATABLE-READ隔离(默认):事务A执行插入:显示锁类型是行锁,模式是排他、GAP锁。事务B执行插入:事务B回滚,事务A执行。范围for update时,同样会有死锁的原创 2015-12-18 17:50:29 · 2226 阅读 · 0 评论 -
mysql分库分表方案浅析
分库分表(这里不讨论中间件)分库:原因:单机负载大,优点:降低单机负载,难度小分表:原因:单表增删改查慢,优点:使用多个表,提高读写效率,难度大分表:在一个库中进行进行分表,有两种方法1、mysql表分区使用表分区时,分区字段。需要根据业务来定,这里所说的业务,指的就是需要做分表的表会和哪些业务相关,比如订单表,主键是订单ID,分表时,需要结合业务综合看待。原创 2016-03-02 16:56:46 · 2060 阅读 · 0 评论 -
MySQL审计之插件
通过审计插件可以记录服务器活动,记录谁连接到服务器,运行了什么查询,访问了哪些表,能存储到日志文件或发送到本地syslogd守护进程。一、mariadbmariadb的审计插件能工作在mariadb、mysql和percona server。拷贝到server_audit.so到适当的目录,然后安装插件:root@[(none)] 21:52:32>INSTALL PLUGIN ser转载 2016-04-21 15:31:42 · 5489 阅读 · 3 评论 -
MySQL分析工具之pt-query-digest
一、简介pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog、General log、slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析。可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行参数化,然后对参数化以后的查询进行分组统计,统计出各查询的执行时间、次数、占比等,可以借助分析结果转载 2016-04-22 10:37:21 · 1650 阅读 · 0 评论 -
MySQL常用工具之percona-toolkit
一、简介Percona Toolkit 是一组高级的命令行工具集,用来管理 MySQL 和系统任务,主要包括:1、主从状态检测及修复2、检测从库复制的延迟3、慢查询、日志分析4、检测MySQL 服务器状态5、从日志和 tcpdump 中检测二、使用1,服务器摘要pt-summary 2、服务器磁盘监测pt-diskstats 3、mysql转载 2016-04-22 15:14:05 · 1329 阅读 · 0 评论 -
MySQL审计之General log
General log记录了MySQL所有执行过的命令,包括【客户端连接】,【从机器的复制】,【DDL】,【DML】等,因为记录的粒度最小,所以文件会增长很快,也会特别大。因为会实时写入文件,带来IO的额外负载,影响DB的工作效率,一般只用于开发和测试环境,生产环境一般不会开启。一,开启General log1,配置文件设置或者 2,全局配置(1)打开mysql>set原创 2016-04-21 14:04:06 · 1819 阅读 · 0 评论 -
MySQL审计之init-connect + binlog
如果只需要统计修改操作,有一个办法,我们可以使用init-connect + binlog的方法进行mysql的操作审计。init-connect是配置文件的一个参数,作用是在每个客户端连接时执行,我们需要有一个表来保存连接客户端的ID,IP和登录时间,ID是连接的session的ID号,是递增的。那么,当我们在binlog查出操作的SQL,并找到该记录的thread_id,然后将thread_i原创 2016-04-22 15:50:10 · 1622 阅读 · 0 评论 -
MySQL的Keepalived安装、配置、启动
keepalived是什么keepalived是集群管理中保证集群高可用的一个服务软件,对内解决单点故障,对外提供唯一入口。keepalived工作原理keepalived是一个类似于layer3, 4 & 7交换机制的软件,也就是我们平时说的第3层、第4层和第7层交换。第3层:Keepalived使用Layer3的方式工作式时,Keepalived会定期向服务器群中的服务器发原创 2015-08-31 16:22:01 · 1245 阅读 · 0 评论 -
MySQL5.6配置文件详解
character-set-server=utf8#服务器端字符集lower_case_table_names = 0#默认为0,数据库、表名大小写敏感back_log = 600 #在MYSQL暂时停止响应新请求之前,短时间内的多少个请求可以被存在堆栈中。如果系统在短时间内有很多连接,则需要增大该参数的值,该参数值指定到来的TCP/IP连接的监听队列的大小。默原创 2015-09-09 12:00:22 · 7065 阅读 · 0 评论 -
MyCat部署运行(Windows环境)与使用步骤详解
1、MyCat概念1.1 总体架构MyCAT的架构如下图所示:MyCAT使用MySQL的通讯协议模拟成一个MySQL服务器,并建立了完整的Schema(数据库)、Table(数据表)、User(用户)的逻辑模型,并将这套逻辑模型映射到后端的存储节点DataNode(MySQL Instance)上的真实物理库中,这样一来,所有能使用MySQL的客户端以及编程语言都能原创 2015-07-20 13:55:08 · 34502 阅读 · 8 评论 -
MySQL5.6之后默认root密码的问题
前端时间安装mysql5.6后,习惯性的无密码登录,但是提示要输入密码# mysql -u root -pEnter password:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)好吧,那我就安全模式登入,也就是常说的绕过密码验证# /etc/init.d/m原创 2015-08-23 15:47:16 · 29694 阅读 · 0 评论 -
Anemometer和pt-query-digest结合将MySQL慢查询可视化
pt-query-digest虽然功能强大, 但毕竟没有web界面显示的直观,我们可以借助Anemometer作为pt-query-digest执行结果的显示端,Anemometer是专门为mysql的慢查询开发的一款开源软件,地址在http://www.oschina.net/p/anemometer一、安装LAMP环境1,安装 yum install httpd php *b原创 2016-04-26 16:12:40 · 7610 阅读 · 1 评论 -
Mysql各版本区别
mysql-server-4.1 增加了子查询的支持,字符集增加UTF-8,GROUP BY语句增加了ROLLUP,mysql.user表采用了更好的加密算法,innodb开始支持单独的表空间。mysql-server-5.0 增加了Stored procedures、Views、Cursors、Triggers、XA transactions的支持,增加了转载 2016-05-17 16:16:31 · 1027 阅读 · 0 评论 -
MySQL增量备份
两种方法一,mysqldump(全备) + binlog(增备)mysqldump每周做一次全备,参数带上--master-data=2,能看到当前DB最后的pos点,在master-slave中能看到主的最后pos以便change master,在恢复时也提供binlog恢复的起点;--single-transaction,设定本次会话的隔离级别为:REPEATABLE READ,以确保原创 2016-03-11 14:25:50 · 824 阅读 · 0 评论 -
MySQL监控系统Lepus
现在流行的监控系统很多,选择一个合适自己的就可以了,例如Zabbix、Nagios;监控MySQL为主的有MySQLMTOP、Lepus。本文主要介绍快速部署lepus以及监控MySQL,因为作为DBA我们还是注重MySQL的监控,当然系统状态也非常重要,监控成为我们日常工作不可缺少,废话就不多说了,下面开始环境搭建。官方网站:http://www.lepus.cc/page/produc转载 2016-05-06 11:25:52 · 3067 阅读 · 0 评论 -
MySQL半同步复制
MySQL在5.5时引入了半同步插件,相比MySQL自带的异步复制,半同步复制能保证数据全部传输到从机再返回结果,一定程度上提高了数据的完整性,但因为不是异步操作,对性能有一定影响,如果对数据可靠和完整性有要求时,建议启用。一、查看插件1,查看是否加载半同步插件。sql> show plugins;2,查找mysql插件目录位置。mysql> show varia原创 2016-04-27 14:24:47 · 928 阅读 · 0 评论 -
SysBench 0.5 安装
sysbench压力测试工具简介: sysbench是一个开源的、模块化的、跨平台的多线程性能测试工具,可以用来进行CPU、内存、磁盘I/O、线程、数据库的性能测试。目前支持的数据库有MySQL、Oracle和PostgreSQL。目前sysbench代码托管在launchpad上,项目地址:https://launchpad.net/sysbench (原来的官网http:/原创 2016-04-27 15:43:06 · 2581 阅读 · 0 评论 -
Anemometer使用详解
使用pt-query-digest搜集慢查询日志,目前策略是每10分钟搜集分析一次。将数据存储在两张表中:global_query_review 和 global_query_review_history。该系统使用anemometer将pt-query-digest 搜集的数据以web形式展现出来,方便查询分析表结构1、global_query_review 表结构:转载 2016-04-26 18:26:00 · 3832 阅读 · 0 评论 -
MySQL监控工具之innotop
MySQL监控管理工具--innotopyum install perl-DBI perl-DBD-MySQL perl-TermReadKeytar -zxvf innotop-1.9.0.tar.gzcd innotop-1.9.0perl Makefile.PLmake installinnptop --help原创 2016-04-29 15:27:39 · 720 阅读 · 0 评论 -
percona xtrabackup的安装和使用
一、安装1,下载wget http://www.percona.com/downloads/XtraBackup/XtraBackup-2.1.2/binary/Linux/x86_64/percona-xtrabackup-2.1.2-611.tar.gz2,安装所需的依赖包yum install libaio libaio-devel perl-Time-HiRes curl原创 2015-11-27 17:41:10 · 1510 阅读 · 0 评论 -
Mysql多实例安装
目前并没有用到多实例,但是还是需要了解的,安装起来很简单, 单机多实例有两种方法,多配置文件和mysqld_multi命令,两者的基础都是需要先初始化多个数据库,多配置文件是启动实例带对应的配置文件;mysqld_multi是在配置文件里写多个mysqld的配置。多配置文件操作简单,互不影响;mysqld_multi易于管理。初始化多个数据库1,/usr/local/mysql原创 2016-05-17 14:22:25 · 603 阅读 · 0 评论