今天又细读了下mysql手册的集群部分,更深的理解了些疑问.
最近好懒,发现我现在越来越懒了,怎么办?
Submitted by admin on 2008, January 4, 3:30 PM
今天又细读了下mysql手册的集群部分,更深的理解了些疑问.
最近好懒,发现我现在越来越懒了,怎么办?
Submitted by admin on 2007, October 27, 11:34 AM
./run-all-tests
Can't locate DBI.pm in @INC (@INC contains: /usr/lib/perl5/5.8.5/i386-linux-thread-multi /usr/lib/perl5/5.8.5 /usr
/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.4/i386-linux-thread-multi /usr/lib
/perl5/site_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi /usr/lib/per
l5/site_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/s
ite_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.4 /usr/lib/perl5/site_perl/5.8.3 /usr/lib/perl5/site_perl/5.8.2 /usr/l
ib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.5/
i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.3/
i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.1/
i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5
/usr/lib/perl5/vendor_perl/5.8.4 /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl/5.8.2 /usr/lib/perl5/
vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl .) at ./run-all-tests line 36.
BEGIN failed--compilation aborted at ./run-all-tests line 36.
出现这个错误,同上一篇类似,也就是你的DBI模块没装.同样的方法,到ISO文件里找到 perl-DBI-1.40-5.i386.rpm,上传,安装
再次执行,出了新的问题.
./run-all-tests
install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC (@INC contains: /usr/lib/perl5/5.8.5/i386-linux-th
read-multi /usr/lib/perl5/5.8.5 /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.
8.4/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.2/
i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0/i386
-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.4 /usr/lib/perl5/site_perl/5.8.3 /
usr/lib/perl5/site_perl/5.8.2 /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_pe
rl /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-mul
ti /usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-mul
ti /usr/lib/perl5/vendor_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-mul
ti /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.4 /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/per
l5/vendor_perl/5.8.2 /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl
.) at (eval 51) line 3.
Perhaps the DBD::mysql perl module hasn't been fully installed,
or perhaps the capitalisation of 'mysql' isn't right.
Available drivers: ExampleP, Proxy, Sponge.
at /www/servers/mysqlclu/sql-bench/server-cfg line 247
这里就是DBD的问题了.再把 perl-DBD-MySQL-2.9004-3.1.i386.rpm 装一下
但时安装时又出了个错.
rpm -ivh /www/perl-DBD-MySQL-2.9004-3.1.i386.rpm
warning: /www/perl-DBD-MySQL-2.9004-3.1.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
error: Failed dependencies:
libmysqlclient.so.14 is needed by perl-DBD-MySQL-2.9004-3.1.i386
Suggested resolutions:
mysql-4.1.7-4.RHEL4.1.i386.rpm
这个是程序的依懒关系,也和版本有关.
到这里,可以按照上面的方法,再一个个找出来安装(比较麻烦),或者干脆加个参数 --nodeps 去掉这个依懒关系的检查.就可以安装了,但这样的话,有可能会安装后也不能正常使用.如果这样,那就办法了,只有一个个找出来装了.
Submitted by admin on 2007, October 27, 11:20 AM
在装好mysql后,用mysql自身提供一些测试程序时,时常会有这样的错误.这是因为这些测试程序都是用perl写的,也就是用perl连接数据库有些问题.
如提示下面这个错误,是说你的系统里少装了一个DBD的模块.可以用rpm -qa | grep "name"来查找你所有的东东有没装.
./run-all-tests
install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC (@INC contains:
/usr/lib/perl5/5.8.5/i386-linux-thread-multi /usr/lib/perl5/5.8.5 /usr/lib/perl5
/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.4/i386-lin
ux-thread-multi /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi /usr/lib/
perl5/site_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.1/i38
6-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr
/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.4 /usr/lib/perl5/site_pe
rl/5.8.3 /usr/lib/perl5/site_perl/5.8.2 /usr/lib/perl5/site_perl/5.8.1 /usr/lib/
perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.5/
i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/vendor_
perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.1/i386-linux-t
hread-multi /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/pe
rl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.4 /usr/lib/perl5/vendor_per
l/5.8.3 /usr/lib/perl5/vendor_perl/5.8.2 /usr/lib/perl5/vendor_perl/5.8.1 /usr/l
ib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl .) at (eval 51) line 3.
Perhaps the DBD::mysql perl module hasn't been fully installed,
or perhaps the capitalisation of 'mysql' isn't right.
Available drivers: ExampleP, Proxy, Sponge.
at /www/servers/mysqlclu/sql-bench/server-cfg line 247
在网上找了下,但没找到具体的原因和安装方法.但觉得是DBD的模块问题.网上也没找到有这个模块.就在RHEL4的ISO文件里找,在第二张光盘里有一个 perl-DBD-MySQL-2.9004-3.1.i386.rpm ,把这个上传,安装就OK了
Submitted by admin on 2007, October 25, 10:23 AM
昨天作了一个mysql的集群测试.用了三台机.一台作管理(实际上是作数据同步用),两个节点.两个节点间的数据,是实时同步的,但在存储引擎里得用ndbcluster.只是简单测试了这个集群效果.因为之前一直不太理解,他这个数据是如何同步.原来是通过管理机来实现实时的同步.这样的话,我觉得,在写数据频繁的应用上,效率不好(网上很多文章也这样说.更多的是说mysql的集群问题太多,限制太多),但在select的应用上,确实有不错的效果,以及达到分流效果.
这里所说的集群,是mysql官方的方法做的.和其它集群应用是不同的.如LVS.在LVS里,管理机是实现分流调度的.而mysql这里的管理机,只不过是起到一个数据同步的作用,没有分流的作用.这样的话,应用上,限制就比较多了
不过,这个数据同步问题解决了.要是再加一层LVS来作分流调度,应该是一个比较理想的mysql集群负载均衡了.至少在读频繁的应用上,会有不错的效果.但在写频繁的应用上,就有待测试了
此次所有的mysql版本是5.0,45
还有,在mysql集群上还有一个问题,就是那些数据都存储在内存上,也就是需要很大的内存.这里也是一个限制了.不过,在5.1版以后的这个问题,会有改善.
接下来,将会作这一系列的测试
Submitted by admin on 2007, October 23, 7:48 PM
最近要做mysql集群,今天就准备下载回来装一下.可跑到mysql的官网上看,却怎么也找不到mysql的MAX版本,因为做集群的就要这个版本.奇怪了,以前都有的,怎么现在没有了.难不成mysql不对企业版开源也不发布这个版本了.找了半天都见不到,烦了.网上搜了下也没结果.没办法,只有看官网的说明文档了.只是E文太差,看得比较辛苦
在 MySQL 5.0 Reference Manual 的 16.3.1. Building MySQL Cluster from Source Code 这一节说明如下:
NDB
, the Cluster storage engine, is available in binary distributions for Linux, Mac OS X, and Solaris. We are working to make Cluster run on all operating systems supported by MySQL, including Windows.
If you choose to build from a source tarball or the MySQL 5.0 BitKeeper tree, be sure to use the --with-ndbcluster
option when running configure. You can also use the BUILD/compile-pentium-max build script. Note that this script includes OpenSSL, so you must either have or obtain OpenSSL to build successfully, or else modify compile-pentium-max to exclude this requirement. Of course, you can also just follow the standard instructions for compiling your own binaries, and then perform the usual tests and installation procedure. See Section 2.4.15.3, “Installing from the Development Source Tree”.
You should also note that compile-pentium-max installs MySQL to the directory /usr/local/mysql
, placing all MySQL Cluster executables, scripts, databases, and support files in subdirectories under this directory. If this is not what you desire, be sure to modify the script accordingly.
(原文http://dev.mysql.com/doc/refman/5.0/en/mysql-cluster-building.html)
可以在编译时加个参数,或是自己编译,这样就爽了.今天又学到新知识了.
之前还在想,如果mysql的社区版不支持这个,那不是很麻烦.想做集群也没得做了,要做也只得花M了.呵呵.看来是多虑了
这几天也看了些文章,有的说mysql做集群不稳定,有的说很稳定.看来是要看具体的应用了.不过,要自己测试过就知道是怎样了.
Submitted by admin on 2007, August 7, 4:35 PM
在MySQL开发过程中,同时存在多个发布系列,每个发布处在成熟度的不同阶段:
· MySQL 5.2是最新开发的发布系列,是将执行新功能的系列。不久的将来可以使用Alpha发行,以便感兴趣的用户进行广泛的测试。
· MySQL 5.1是当前稳定(产品质量)发布系列。只针对漏洞修复重新发布;没有增加会影响稳定性的新功能。
· MySQL 5.0是前一稳定(产品质量)发布系列。只针对严重漏洞修复和安全修复重新发布;没有增加会影响该系列的重要功能。
· MySQL 4.0和3.23是旧的稳定(产品质量)发布系列。该版本不再使用,新的发布只用来修复特别严重的漏洞(以前的安全问题)。
我们不认为有完全的冻结版,因为任何版本均需要对漏洞进行修复和其它修复。对于“某种程度的冻结”,我们是指我们可以在产品发布中增加一些不会影响当前工作的小东西。自然,前一系列的相关漏洞修复会移植到后面的系列。
Submitted by admin on 2007, August 6, 2:11 PM
Submitted by admin on 2007, July 17, 1:04 AM
在网上搜索了下,有同样问题的挺多,但似乎没一个解决方法.
我觉得是字符集原因,才会出现这个错误.
如你建库时选用了GBK,在程序里没有设置GBK的话,就会出现这个错误.
设置方法如下:
SET character_set_connection=$dbcharset, character_set_results=$dbcharset, character_set_client=binary
$dbcharset为你的字符集,如上面的GBK.$dbcharset='gbk';这样设置后,就正常了.
如是用默认的话,应该是不会有这个错误的.
如有任何问题, 欢迎在此讨论