不灭的焱

革命尚未成功,同志仍须努力

作者:php-note.com  发布于:2014-07-10 21:24  分类:MySQL/NoSQL 

一、环境说明: CentOS6.3(32位) + MySQL Cluster 7.3.5,规划5台机器,资料如下:

节点分布情况:

MGM:192.168.137.101

NDBD1:192.168.137.102

NDBD2:192.168.137.103

SQL1:192.168.137.104

SQL2:192.168.137.105

作者:php-note.com  发布于:2014-07-09 02:20  分类:MySQL/NoSQL 

MySQL突然访问很慢,重启也启动不了,看了一下Mysql的错误日志,意外状况出现……

Disk is full writing './mysql-bin.~rec~' (Errcode: 28). Waiting for someone to free space... (Expect up to 60 secs delay for server to continue after freeing disk space)

作者:php-note.com  发布于:2014-07-08 14:33  分类:MySQL/NoSQL 

service mysqld start 报错

090517 13:34:15 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
090517 13:34:15 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
090517 13:34:15 mysqld_safe mysqld from pid file /usr/local/mysql/var/mail.bmitwap.com.pid ended
090517 13:38:35 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

作者:php-note.com  发布于:2014-07-06 00:02  分类:MySQL/NoSQL 

MySQL Cluster 自带了一个错误代码的查看的小程序。通过这个小东西我们可以方便的把问题解决。 这个程序就是perror 在MYSQL安装目录的bin下面。

如报错:ERROR 1005 (HY000) at line 474868: Can't create table 'Table Name'(errno: 136)

你可以用perror命令查询 错误原因:

#/usr/local/mysql/bin/perror --ndb 136
MySQL error code 136: No more room in index file

通过它的解释 我们把 index的相关选项改高一些。如下: (依实际情况决定数值大小)

MaxNoOfTables: 1024
MaxNoOfOrderedIndexes: 1024
MaxNoOfUniqueHashIndexes: 1024

这样问题就能解决了。

作者:php-note.com  发布于:2014-07-05 23:22  分类:MySQL/NoSQL 

MySQL Cluster 配置文件(config.ini)详解

###########################################################################
## MySQL CLuster 配置文件
## 带有[!]的注释表示该参数有详细说明,建议参考官方描述.
## 带有[!!]的注释表示设置该参数时应该详细阅读官方描述.
## SCI 连接方式的配置请详细阅读官方描述.
## 官方说明: http://dev.mysql.com/doc/refman/5.1/zh/ndbcluster.html(老版本中文)
5.6版本: http://dev.mysql.com/doc/refman/5.6/en/index.html
########################################################################### 

作者:php-note.com  发布于:2014-07-05 22:47  分类:MySQL/NoSQL 

NoOfReplicas这个参数是控制数据份数的,如果是2 表有两份数据,如果是1表示只有一份数据。 MySql Cluster 中没有参数设计节点组数。 节点组数=节点数/NoOfReplicas

作者:php-note.com  发布于:2014-06-27 14:40  分类:MySQL/NoSQL 

如果你没有修改过MySQL的配置,缺省情况下,wait_timeout 的初始值是28800

wait_timeout过大有弊端,其体现就是MySQL里大量的SLEEP进程无法及时释放,拖累系统性能,不过也不能把这个指设置的过小,否则你可能会遭遇到“MySQL has gone away”之类的问题,通常来说,我觉得把wait_timeout设置为10是个不错的选择,但某些情况下可能也会出问题,比如说有一个CRON脚本,其中两次SQL查询的间隔时间大于10秒的话,那么这个设置就有问题了(当然,这也不是不能解决的问题,你可以在程序里时不时 mysql_ping 一下,以便服务器知道你还活着,重新计算wait_timeout时间):

作者:php-note.com  发布于:2014-06-27 13:38  分类:MySQL/NoSQL 

这篇文章很多地方只是翻译了my.cnf原始配置文件的说明

以下原文中有些参数事实上不适用于MySQL5.5,不知道原作者是否有经过实际测试,比如log-slow-queries应该写成slow-query-log,而log_long_format这个干脆就直接不支持了,回头我再重新整理一份靠谱点的参数说明吧

作者:php-note.com  发布于:2014-06-27 13:18  分类:MySQL/NoSQL 

对于任何一个数据库管理系统来说,内存的分配使用绝对可以算的上是其核心之一了,所以很多希望更为深入了解某数据库管理系统的人,都会希望一窥究竟,我也不例外。

这里给出方案

按照下面的设置试试看:

key_buffer_size= 3840M
max_allowed_packet = 16M
table_cache = 1024
sort_buffer_size = 32M
read_buffer_size = 32M
read_rnd_buffer_size = 32M
myisam_sort_buffer_size = 256M
thread_cache_size = 32
query_cache_size = 256M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8

其中key_buffer_size 上限是 4G,不能再多了。

作者:php-note.com  发布于:2014-06-27 11:39  分类:MySQL/NoSQL 

程序中报错: MySQL server has gone away 是什么意思? 如何避免?

因此,感觉有必要总结一下发生这个问题的原因。今天正好看到一篇外文blog总结的比较好,就翻译过来了:

原文:http://ronaldbradford.com/blog/sqlstatehy000-general-error-2006-mysql-server-has-gone-away-2013-01-02/