随笔分类 -  mysql

摘要:最近有一台MySQL的从库老是报延迟,观察到:FLUSH TABLES WITH READ LOCK,阻塞了4个多小时,还有另外一条SQL语句select *,从现象上来看是select * 阻塞了flush tables with read lock。 flush tables with read 阅读全文
posted @ 2012-02-02 16:38 sunss 阅读(20772) 评论(0) 推荐(2)
摘要:这是一个真实的场景,表的定义如下:CREATE TABLE `user` ( `id` bigint(20) NOT NULL, `user_nick` varchar(32), `user_source` tinyint(4) NOT NULL , `user_type` tinyint(4) NOT NULL,........ `version` int(11) DEFAULT '0' COMMENT '版本', `crc_user_nick` bigint(20) DEFAULT NULL, PRIMARY KEY (`id`), KEY `idx_use 阅读全文
posted @ 2012-01-17 19:26 sunss 阅读(5568) 评论(0) 推荐(1)
摘要:今天接到报警,报警的信息是:MYSQL_BIN_LOG::purge_logs was called with file '/home/log/mysql-bin.22.log' not listed in the indexgoogle一把,查到了mysql的源码:View Code int MYSQL_BIN_LOG::purge_logs(const char *to_log, bool included, bool need_mutex, ... 阅读全文
posted @ 2012-01-12 12:16 sunss 阅读(2090) 评论(0) 推荐(0)
摘要:平时工作中有关char,varchar的疑问,今天总结下:char的范围可以存放0到255个字符,注意哦,是确切的字符,CREATE TABLE `t1` ( `id` int(11) DEFAULT NULL, `a` char(255) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=gbk1 row in set (0.00 sec)向表中插入几个值,insert into t1 values(1,'aaaaa'),(2,'我是谁'),(3,'(当我睁开眼睛,发现自己竟然什么也看不见,眼前一片黑暗时,我像被噩 阅读全文
posted @ 2012-01-04 11:33 sunss 阅读(5270) 评论(2) 推荐(0)
摘要:乱码有很多种情况引起,不过通常情况都是由于各种编码不一致问题导致,今天遇到的乱码问题是:文件编码和数据库连接编码不一致的问题导致,由于要添加初始化数据,批量执行,采用source命令,root@(none) 03:14:49>use testDatabase changedroot@test 03:14:53>show create table rule\G;*************************** 1. row *************************** Table: ruleCreate Table: CREATE TABLE `rule` ( `i. 阅读全文
posted @ 2011-11-21 15:37 sunss 阅读(348) 评论(0) 推荐(0)
摘要:读取binlog,方法有二:1.使用mysqlbinlog,详细用法,请参考MySQL手册 2.使用MySQL的自带工具,SHOW BINLOG EVENTS读取relaylog,在5.4.4以后能使用show relay log ,如果要想读取的话,要用mysqlbinlog读取,方法:mysqlbinlog relaylogname 阅读全文
posted @ 2011-06-17 12:04 sunss 阅读(539) 评论(0) 推荐(0)
摘要:1 drop table if exists employee; 2 3 create table employee 4 ( 5 emp_id smallint unsigned not null auto_increment primary key, 6 name varchar(32) not null, 7 boss_id smallint unsigned null, 8 key boss_id_idx(boss_id) 9 )engine = innodb; 10 11 12 insert into employee (name, boss_id) values 13 ('f 阅读全文
posted @ 2011-06-14 14:32 sunss 阅读(6472) 评论(0) 推荐(0)
摘要:mysqlhotcopy 是MySQL的热备工具,详细请看手册 ,为了安全起见我们给热备分配个用户:grant select, reload, lock tables on *.* to 'hotcopy'@'localhost' identified by '123456'; 如果我们只想热备其中的一部分数据就有可能用到正则了,使用 mysqlhotcopy --help可以看到它支持的选项,其中有:--regexp 这个正则是和数据库名匹配的,比如:备份以abc开头的库,可以使用:mysqlhotcopy --flushlog -u=' 阅读全文
posted @ 2011-06-10 17:38 sunss 阅读(338) 评论(0) 推荐(0)
摘要:如果想要我们的SQL语句看起来很美观,除了自己平时注意外,还有一个懒人方法,O(∩_∩)O~第一款在线格式化工具:Instant SQL Formatter功能强劲,可以设置第二款,和第一款类似,功能也一样,只不过是不同的UI而已,SQLPP第三款是针对MySQL的,是作者从phpMyAdmin中抠出来的,php-SQL-Format ,这个在我本地出了点小问题,复杂SQL格式化不了,我和作者沟通,他说有可能是SQLParser的问题,没有深究,我又观察了下,我觉得是过程中传递参数的问题,复杂的SQL语句,返回的是pma中php代码格式。 阅读全文
posted @ 2011-06-09 14:15 sunss 阅读(5235) 评论(2) 推荐(2)
摘要:接上篇:mysql使用mysql-udf-http效率测试笔记 ,这次不使用rest架构,而是使用:libmemcached和memcached_functions_mysql,测试版本是:libmemcached-0.34.tar.gz和memcached_functions_mysql-0.9.tar.gz,其它版本配对都有问题,我安装测试过有问题的版本有:memcached_functions_mysql-1.1在:libmemcached-0.49\libmemcached-0.48\libmemcached-0.47\libmemcached-0.30\libmemcached-0. 阅读全文
posted @ 2011-06-07 16:41 sunss 阅读(2862) 评论(2) 推荐(0)
摘要:今天在测试libmemcached的时候,反复安装,反复加载sql,语句,重复创建函数memc_*,所以再次执行SQL之前,需要删除原来的函数,删除语句:DELETE FROM `func` WHERE `name`=function_name' LIMIT 1;而不是:drop function if exists function_name; 阅读全文
posted @ 2011-06-06 18:12 sunss 阅读(268) 评论(0) 推荐(0)
摘要:在多数情况下,alter table 工作的时候都会拷贝一个目标表(暂且命名为a)的临时备份(暂且命名为b),alter操作都是在备份文件(b)上操作,然后删除目标表(a),重命名备份表(b)为目标表(a)。当alter table执行的时候,其他会话是可以读目标表(a)的,但是update,write操作会被阻塞,直到b命名为a后,才可以重定向到a,而不会丢失任何DML操作。这个临时表b是和目标表a创建在同一个库下的。 下面是测试过程:alter table cdb_posts drop index fid;drop index fid on cdb_posts;alter table c. 阅读全文
posted @ 2011-06-01 10:47 sunss 阅读(614) 评论(0) 推荐(0)
摘要:以前有同事问我SQL语句是边执行边同步还是,在主库执行完毕再同步?我这里通过测试观察,可以确切的说明是:主库执行完再同步,步骤如下:1.master 执行DML SQL2.执行完毕写入bin log3.复制线程复制并执行SQL 阅读全文
posted @ 2011-05-21 05:22 sunss
摘要:测试表结构:CREATE TABLE `a` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `cnt` INT(11) NULL DEFAULT NULL, PRIMARY KEY (`id`))COLLATE='utf8_general_ci'ENGINE=MyISAMROW_FORMAT=DEFAULT和存储过程相关的几个权限:alter routine,create routine,execute和触发器相关的权限:trigger创建一个测试账号:grant select,update,insert,create,del 阅读全文
posted @ 2011-05-20 11:35 sunss 阅读(8437) 评论(0) 推荐(0)
摘要:/usr/local/bin/mysqlslap --create-schema=test--query="SELECT * FROM test force index(idx_id) WHERE id =5 " --iterations=10000 -u root -p'123456' 阅读全文
posted @ 2011-05-19 16:11 sunss
摘要:今天利用limit offset,n从一个表中分批导出数据的时候,总比原表少那么几条记录,创建一个小表做测试才发现其中的奥秘:mysql> select * from sss1;+----+------+------+| id | name | c_id |+----+------+------+| 1 | aaa | 1 | | 2 | bbb | 2 | | 3 | ccc | 3 | | 4 | ddd | 1 | | 5 | eee | 4 | | 6 | ffff | 6 | | 7 | NULL | 0 | | 8 | NULL | 0 | | 9 | NULL | 0 | 阅读全文
posted @ 2011-05-18 10:03 sunss 阅读(2926) 评论(0) 推荐(0)
摘要:前天在本地测试机上,MySQL 5.1.43,MyISAM引擎,执行repair table的时候,导致数据丢失,特此记录,以前在MySQL5.0.32版本也遇到过同样的问题,所以在repair table前一定要备份。 在执行repair table的前一晚,刚看了“宇航员的妻子”的电影,虽然是个烂片,但是其中的一句话印象很深刻:“太空总署告诉我,一定要有备份”,外行人都知道的简单的道理,我却没有做到,以此谨记。 这个也是MySQL官方承认的bug,http://bugs.mysql.com/bug.php?id=10437,http://bugs.mysql.com/bug.php?id. 阅读全文
posted @ 2011-05-16 11:56 sunss 阅读(1205) 评论(0) 推荐(1)
摘要:看到张宴的博客上关于"http/rest客户端的文章",怎样安装啥的直接都跳过,下面直接进入测试阶段,测试环境:虚拟机 [root@localhost ~]# uname -aLinux sunss 2.6.18-128.el5 #1 SMP Wed Jan 21 10:44:23 EST 2009 i686 i686 i386 GNU/Linux内存和交换分区:[root@localhost ~]# free -m total used free shared buffers cachedMem: 376 363 13 0 23 105-/+ buffers/cache: 阅读全文
posted @ 2011-05-09 16:33 sunss 阅读(5581) 评论(5) 推荐(0)
摘要:安装mycheckpoint的时候,给这个监控用户分权限的时候,发现了这个秘密:mysql> mysql> GRANT ALL PRIVILEGES ON mycheckpoint.* TO 'mycheckpoint_user'@'localhost' IDENTIFIED BY '123456'; ERROR 1470 (HY000): String 'mycheckpoint_user' is too long for user name (should be no longer than 16)mysql> 阅读全文
posted @ 2011-04-30 08:16 sunss 阅读(565) 评论(0) 推荐(0)
摘要:这是我使用过的工具(phpmyadmin,sqlyog...),使用最方便最顺手的一个工具,支持同时管理好几个数据库, HeidiSQL官方 http://www.heidisql.com/ HeidiSQL下载 http://www.heidisql.com/download.ph 阅读全文
posted @ 2011-03-30 14:38 sunss 阅读(713) 评论(0) 推荐(0)