- 博客(33)
- 收藏
- 关注
原创 ssh免密码登录
在很多分布式集群化解,需要机器之间使用ssh免密码登录。下面以机器A(192.168.60.159)想无密码登录机器B(192.168.61.64)为例。1、在A机器下生成公钥/私钥对[root@slave159 u02]# ssh-keygen -t rsa -P ''敲击回车键即可,它在/home/hadoop下生成.ssh目录,.ssh下有id_rsa和id_rsa.pub。
2015-11-30 13:43:32 863
原创 MySQL 按月给表分区存储过程
drop procedure if exists p_add_part_month;DELIMITER // create procedure p_add_part_month(tab_name varchar(50),dtime datetime)begindeclare p1_name varchar(50) default concat('p_',date_format(dtime
2015-11-26 20:04:23 2887
原创 MySQL表名 区分大小写
官方文档说的很清楚 嘿嘿 lower_case_table_namesCommand-Line Format --lower_case_table_names[=#]System Variable Name lower_case_table_namesVariable Scope GlobalDynamic Variable NoPermitted Values Type in
2015-11-24 11:00:15 451
原创 error code 1592 Unsafe statement written to the binary log using statement...
今天发现这样的警告Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. INSERT IGNORE... SELECT is unsafe because the order in which rows are retrieved by the SEL
2015-11-24 10:20:31 1370
原创 MySQL 存储过程之游标
BEGIN DECLARE Done INT DEFAULT 0; DECLARE id_ INT; DECLARE name_ VARCHAR(30); /* 声明游标 */ DECLARE v_cur CURSOR FOR SELECT id_,name_ FROM t; /* 异常处理 */ DECLARE CONTINU
2015-11-23 16:06:55 407
原创 MySQL不支持动态表名
今天写一个数据迁移的存储过程,用到了动态表名,发现MYSQL不支持直接使用变量做表名。然后就用下面的方式来做了。DROP PROCEDURE IF EXISTS p_transfer_data;delimiter // CREATE PROCEDURE p_transfer_data()begin declare v_dbname varchar(100) default da
2015-11-23 15:47:33 2696
原创 MySQL 存储过程中的循环
以下是常用的三种循环方式WHILE……DO……END WHILEREPEAT……UNTIL END REPEATLOOP……END LOOP1、 WHILE……DO……END WHILE 示例DROP PROCEDURE IF EXISTS p_while;delimiter // create procedure p_while()begindecl
2015-11-23 15:09:32 391
原创 MySQL show processlist 中status
一 般情况下,DBA能从监控mysql的状态列表中查看出数据库的运行端倪,需要注意的是STATUS所表示的不同内容。且需要注意的是TIME字段表示的 意思。它表示的只是最后那个STAT状态持续的时间。这个时间是有可能忽大忽小的。而不是SQL开始执行到现在的时间。单位时间是秒。------------------------------------------------------------
2015-11-16 19:09:56 470
原创 MySQL 表添加字段 存储过程实现 IF NOT EXISTS
-- 创建表语句(对于已经存在的表不再建立)create table IF NOT EXISTS t1(id int not null);create table IF NOT EXISTS t2(id int not null);-- 添加字段存储过程(对于已经存在的字段不再添加)DROP PROCEDURE IF EXISTS p_alter_table;delimiter //
2015-11-16 15:43:32 15023
原创 keepalived 详解
1、什么是Keepalived?keepalived观其名可知保持存活在网络里面就是保持在线。也就是所谓的高可用或热备用来防止单点故障(单点故障是指一旦某一点出现故障就会导致整个系统架构的不可用)的发生. Keepalived是用VRRP协议来实现高可用性(HA)的。关于VRRP协议参考http://blog.csdn.net/gua___gua/article/details/498
2015-11-12 21:32:42 1177
原创 VRRP协议
1. 前言VRRP(Virtual Router Redundancy Protocol)协议是用于实现路由器冗余的协议,最新协议在RFC3768中定义,原来的定义RFC2338被废除,新协议相对还简化了一些功能。2. 协议说明2.1 协议VRRP协议是为消除在静态缺省路由环境下的缺省路由器单点故障引起的网络失效而设计的主备模式的协议,使得在发生故障而进行设备功能切
2015-11-12 19:34:50 713
原创 MySQL 源码编译安装
注意:安装前前确保需要的工具是否安装好,cmake、gcc、gcc-c++、ncurses-devel等有的甚至对上述工具的版本还有要求,比如5.7对cmake有要求,不能低于他指定的版本。1、创建mysql组和用户shell> groupadd mysqlshell> useradd -r -g mysql mysql2、Obtain and Unpack the Dist
2015-11-11 18:11:46 442
转载 用google mock模拟C++对象
google mock是用来配合google test对C++项目做单元测试的。它依赖于googletest(参见我上篇文章《如何用googletest写单元测试》: http://blog.csdn.net/russell_tao/article/details/7333226),下面我来说说linux上怎么用它来做单元测试。本文包括:1、如何获取、编译google mock;2、如何使
2015-11-11 09:43:30 461
原创 MySQL 源码编译安装报错 CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
今天编译安装mysql 5.6.27的时候报错。执行命令:shell> cmake . \> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \> -DMYSQL_DATADIR=/usr/local/mysql/data \> -DDEFAULT_CHARSET=utf8 \> -DDEFAULT_COLLATION=utf8_general_ci
2015-11-10 20:07:33 19584
原创 MySQL 源码编译安装报错 Googlemock was not found
今天编译安装mysql 5.6.27的时候报错。执行命令:shell> cmake . \> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \> -DMYSQL_DATADIR=/usr/local/mysql/data \> -DDEFAULT_CHARSET=utf8 \> -DDEFAULT_COLLATION=utf8_general_ci
2015-11-10 20:03:29 3682
原创 MySQL 源码编译安装报错 Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
今天在编译安装mysql 5.6.27的时候报错。执行的命令:shell> cmake . \> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \> -DMYSQL_DATADIR=/usr/local/mysql/data \> -DDEFAULT_CHARSET=utf8 \> -DDEFAULT_COLLATION=utf8_general_
2015-11-10 19:57:49 1910
原创 /etc/passwd & /etc/shadow
更详细的资料您可以自行 man 5 passwd 及 man 5 shadow # /etc/passwd 这个档案的构造是这样的:每一行都代表一个帐号, 有几行就代表有几个帐号在你的系统中!不过需要特别留意的是, 里头很多帐号本来就是系统中必须要的,我们可以简称他为系统帐号, 例如 bin, daemon, adm, nobody 等等,这些帐号是系统正常运作时所需要的,请不要
2015-11-10 18:42:34 367
原创 MySQL index hint
语法:tbl_name [[AS] alias] [index_hint_list]index_hint_list: index_hint [, index_hint] ...index_hint: USE {INDEX|KEY} [FOR {JOIN|ORDER BY|GROUP BY}] ([index_list]) | IGNORE {INDEX|
2015-11-10 10:46:27 621
原创 Last_IO_Error: Got fatal error 1236 from master解决方法
今天在一个主从的从库发现了这个错误。到这样的错误如:“Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'”等或由于清数据导致主从库不同步了,解决办法如下:
2015-11-06 14:51:23 1877
原创 pt-config-diff
1、用法 pt-config-diff [OPTION...] CONFIG CONFIG [CONFIG...] CONFIG可以是文件也可以是数据源名称,最少必须指定两个配置文件源,就像unix下面的diff命令一样,如果配置完全一样就不会输出任何东西例1、比较本地和远程服务器配置差异[root@slave159 test]# pt-config-diff h=192.168.
2015-11-06 14:38:09 547
原创 lepus 一键安装脚本
最近把开源的lepus做了一些定制改造,主要是让他监控我们的分布式mysql集群。修改了他的php和python代码。后来发现这个东西安装比较麻烦,安装前要有php、python、httpd、snmpd环境,并且要有mysql数据库来存储数据(我为其内置了一个mysql。并把端口设置为3388)。为了安装简单,我写了一个一键安装脚本,执行一个安装命令,就会自动安装完所有东西。并且把lepu
2015-11-06 14:31:53 1949 2
原创 service xxxx does not support chkconfig
今天想把自己启动服务的脚本放到/etc/init.d目录下,然后用chkconfig添加的自动启动项中去。结果报错了。[root@huang ~]# chkconfig --level 2345 lepus onservice lepus does not support chkconfig查了资料,也看了下mysql的启动脚本发现需要在脚本里加入下面的内存,才可以用chkconfig
2015-11-06 13:34:52 1562
原创 linux chkconfig 详解
chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。使用语法:chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level ][系统服务][on/off/reset]chkconfig在没有参数运行时,显示用法。如果加上服务
2015-11-06 11:10:31 270
原创 Transparent HugePages 详解
之前写过关于HugePages的,当时是介绍ORACLE在大内存下建议开启大页内存管理。文章的链接为 http://blog.csdn.net/gua___gua/article/details/22613691今天写下关于Transparent HugePages的,这个也大页内存管理,不过他和标准的大页内存管理有区别。Transparent HugePages是在运行时动态
2015-11-06 10:26:09 6200
原创 selinux 查看 关闭
SELINUX经常会导致一些服务器莫名的问题,今天就遇到httpd发布的php网页访问不了。搞了半天发现停止SELINUX就好了。下面是查看和关闭SELINUX的方法。查看SELinux状态1、/usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态SELinux status:
2015-11-05 20:41:55 356
原创 MYSQL my_print_defaults程序解析
my_print_defaults 这个程序是用来解析my.cnf文件的,将其中的参数打印到终端。这个小程序在mysql的启动脚本中会有用到。其读取my.cnf的顺序,从下面可以看出[root@slave159 ~]# /opt/mysql-5.5.41/bin/my_print_defaults --help|grep -A2 -B2 my.cnfDefault options a
2015-11-05 15:43:43 4324
原创 Mysql:Forcing close of thread 756 user: 'root'
最近发现两台MySQL server在中午的时候忽然(很突然的那种)发飙,不断的挂掉。重启mysql也尽是失败,看mysql的errorlog,只能看到类似如下的信息: Forcing close of thread 12232 user: 'root' 发现这算属MySQL的一个bug,不管连接是通过hosts还是ip的方式,MySQL都会对DNS做反查,IP到DNS,由于反查的接续
2015-11-04 18:23:56 566
原创 tar
tar命令 [root@linux ~]# tar [-cxtzjvfpPN] 文件与目录 ....参数:-c :建立一个压缩文件的参数指令(create 的意思);-x :解开一个压缩文件的参数指令!-t :查看 tarfile 里面的文件!特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。-z :是否同时具有 gzip 的属性?
2015-11-04 15:21:16 327
原创 sed当中使用变量替换以及执行外部命令
今天要用sed对配置文件中的一些配置参数进程替换,遇到了一些小问题,在这里记录下。-- 下面命令没有对变量进程替换[root@slave159 support-files]# install_dir=/var/www/html[root@slave159 support-files]# sed -n '45,48s/^basedir=$/&$install_dir\/mysql\/data
2015-11-04 11:15:40 1743
原创 mysql数据迁移shell 脚本
有两个脚本第一个mysql_db_trans.sh,第二个mysql_all_db_trans.sh。这个两个脚本可能存在缺陷,放在这里只是为了方便自己查看。mysql_db_trans.sh#!/bin/shtmp_dbname=$1db_old_name=$2db_new_name=$3db_ip=$4db_port=$5db_user=$6trans_type=$7
2015-11-03 14:12:40 3128
原创 Transparent Hugepage造成带ToKudb引擎的Mysql无法启动
今天启动自己虚拟机的mysql时报错如下[root@kfpanda ~]# /etc/init.d/mysql startStarting MySQL....The server quit without updating PID file[FAILED]ysql/data/kfpanda.pid).告警日志中的内容如下151103 19:40:55 mysqld_safe Star
2015-11-03 13:46:40 1551
转载 processlist中哪些状态要引起关注
一般而言,我们在processlist结果中如果经常能看到某些SQL的话,至少可以说明这些SQL的频率很高,通常需要对这些SQL进行进一步优化。今天我们要说的是,在processlist中,看到哪些运行状态时要引起关注,主要有下面几个:状态建议copy to tmp table执行ALTER TABLE修改表结构时建议:放在凌晨执行或者采
2015-11-02 09:59:26 280
转载 不同的binlog_format会导致哪些SQL不会被记录
我们都知道binlog_format有三种可选配置:STATEMENT、ROW、MIXED,相应地,基于这三种模式的Replication分别称为SBR(STATEMENT BASED Replication)、RBR、MBR。 同时,我们也知道,MySQL Replication可以支持比较灵活的binlog规则,可以设置某些库、某些表记录或者忽略不记录。通常地,我们强烈建议不要设置这些
2015-11-02 09:47:10 727
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人