2010年8月30日星期一

navicat linux版破解

navicat linux版本有一个月的试用期, 当过了试用期以后, 不能再进入。
但其实只要将~下.navicat目录下的system.reg文件删掉, 重新启动navicat的时候, 就可以再获得一个月的试用期,而且前面使用的连接配置都还在。

2010年8月9日星期一

sysdate与current_date

刚刚看到bench_mark函数, 突然想平时写sql的时候经常用sysdate, 并且也知道current_date, current_time可以达到同样的效果。

于是尝试将这两个不同的方法进行比较。

SELECT BENCHMARK(1000000,SYSDATE());
SELECT BENCHMARK(1000000,concat(CURRENT_DATE(), ' ',CURRENT_TIME()));

发现前者所花时间平均是后者的2.5倍。

bin_log_do_db参数

今天在尝试配置mysql中的repliation, 感觉配置起来还是蛮简单的。
但是配置完成以后,遇到了麻烦, 在主库的AP上作了一些操作, 硬是没有传到从库上。
检查了主库的二进制日志, 也没有发现对应的sql, 但是在general log中却有。

检查my.cnf文件, 发现其中有一个参数bin_log_do_db, 以前一直没注意这个参数,以为只是对db名称的一个配置。查了下文档, 原来这个参数是配置那些db需要记录二进制日志,我当前配置成了只有test库,也许是以前刚开始玩mysql的时候配置上去的。

将该参数去掉,replication复制马上就正常了。

2010年8月5日星期四

关于log_bin_trust_function_creators

当开启了log-bin时, 如果该参数为OFF, 则需要有super权限的user才能创建function/procedure
如果该参数为ON, 则拥有create routine权限的user就可以创建function/procedure了

折腾安装mysql

这几天一直在反复折腾安装mysql, 主要是实验如何在已经rpm安装的os下再source安装一个以及同时在一个OS下source安装两个mysql。
基本上觉得有步骤按照手册上的来不会有什么大的问题:
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> gunzip < mysql-VERSION.tar.gz | tar -xvf -
shell> cd mysql-VERSION
shell> ./configure --prefix=/opt/mysql
shell> make
shell> make install
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> cd /usr/local/mysql
shell> bin/mysql_install_db
shell> chown -R root .
shell> chown -R mysql var
shell> chgrp -R mysql .
shell> bin/mysqld_safe &

但是如果OS中已经存在了mysql, 安装第二个的时候有以下需要注意的地方
1. configure的时候加上--prefix, --with-tcp-port, --with-unix-socket-path, 尤其是--prefix, 决定了你需要安装在什么位置, 后面两个参数可以在安装完后修改启动配置文件。
2. 如果原来/etc/my.cnf已经存在, 一定记得先将这个文件移走或者暂时重命名, 因为mysql下的诸多脚本会默认从这个文件中读取配置
3. 在make install后, 注意将环境变量path修改, 将当前安装路径bin目录放在最前面,因为mysql_install_db会从path中寻找需要的可执行文件


为mysql安装innodb存储引擎

今天RD需要一个新的clone开发环境, 环境好不容易搭建起来,把对应的数据目录拷进去,发现居然没有innodb引擎。
网上搜索了一下安装方法:
INSTALL PLUGIN INNODB SONAME 'ha_innodb_plugin.so';
INSTALL PLUGIN INNODB_TRX SONAME 'ha_innodb_plugin.so';
INSTALL PLUGIN INNODB_LOCKS SONAME 'ha_innodb_plugin.so';
INSTALL PLUGIN INNODB_LOCK_WAITS SONAME 'ha_innodb_plugin.so';
INSTALL PLUGIN INNODB_CMP SONAME 'ha_innodb_plugin.so';
INSTALL PLUGIN INNODB_CMP_RESET SONAME 'ha_innodb_plugin.so';
INSTALL PLUGIN INNODB_CMPMEM SONAME 'ha_innodb_plugin.so';
INSTALL PLUGIN INNODB_CMPMEM_RESET SONAME 'ha_innodb_plugin.so';