9月 172010
 

搞了两天,综合网上优秀BLOG并且联系实际整理了下 Apache Mysql 的优化,虽然不一定适合每一个人,但里面的一些参数自己可以自己琢磨测试.不过Apache感觉不怎么样,爷爷的 15分钟在线 2000多IP就卡得不得了,每天90多W PV 都卡,看了下163他们的网络架构,不管是前端还是源段服务器都全是NGINX,看样子以后还得继续努力学习了,

Apache优化

KeepAlive On

KeepAliveTimeout 10


    StartServers          5
    MinSpareServers       10
    MaxSpareServers      20
    ServerLimit          1000
    MaxClients          1000
    MaxRequestsPerChild   10000

主要优化这几个参数,在服务器完全可以承受访问量的时候建议把KeepAlive设置为 on,但网上很多人设置了on但是KeepAliveTime设置为 3-5秒,我认为这样设置根本就没有效果,还不如KeepAlive设置为off,打开一个网页算快也要2秒,人家不可能看3秒又去打开新页面,所以这样设置个人觉得不科学,至少也要10秒,建议使用默认的15秒,如果服务器压力太大可以尝试KeepAlive设置off,以减少一些无效连接,

并发计算参考公式: Continue reading »

9月 172010
 

变量名说明 Qcache_free_blocks 缓存中相邻内存块的个数。数目大说明可能有碎片。FLUSH QUERY CACHE 会对缓存中的碎片进行整理,从而得到一个空闲块。 Qcache_free_memory 缓存中的空闲内存。 Qcache_hits 每次查询在缓存中命中时就增大。

Qcache_inserts 每次插入一个查询时就增大。命中次数除以插入次数就是不中比率;用 1 减去这个值就是命中率。在上面这个例子中,大约有 87% 的查询都在缓存中命中。 Qcache_lowmem_prunes 缓存出现内存不足并且必须要进行清理以便为更多查询提供空间的次数。这个数字最好长时间来看;如果这个数字在不断增长,就表示可能碎片非常严重,或者内存很少。(上面的 free_blocks 和 free_memory 可以告诉您属于哪种情况)。 Qcache_not_cached 不适合进行缓存的查询的数量,通常是由于这些查询不是 SELECT 语句。 Qcache_queries_in_cache 当前缓存的查询(和响应)的数量。 Qcache_total_blocks 缓存中块的数量。

通常,间隔几秒显示这些变量就可以看出区别,这可以帮助确定缓存是否正在有效地使用。运行 FLUSH STATUS 可以重置一些计数器,如果服务器已经运行了一段时间,这会非常有帮助。

使用非常大的查询缓存,期望可以缓存所有东西,这种想法非常诱人。由于 mysqld 必须要对缓存进行维护,例如当内存变得很低时执行剪除,因此服务器可能会在试图管理缓存时而陷入困境。作为一条规则,如果 FLUSH QUERY CACHE 占用了很长时间,那就说明缓存太大了。 Continue reading »

1月 252010
 

Discuz! info: Can not connect to MySQL server

Time: 2007-11-13 6:25pm
Script: /bbs/index.php

Error: Can't connect to MySQL server on 'localhost' (10048)
Errno.: 2003

Similar error report has beed dispatched to administrator before.

以上错误分几种情况说一下(首先您要确保您的服务器及服务器环境是正常的,装一个新论坛试一下就知道了):

1. 如果您是虚拟空间,出现以上错误,有可能是限制而引起,只有找您买虚拟空间的服务商解决,或是更换更好的空间
      
2. 有可能是攻击,攻击会导致服务器内存被占完,然后MYSQL数据库没内存用了,MYSQL就挂了,就会出现以上错误。

3. 有可能是程序出错,或是某个数据表出错,直接把整台服务器的MYSQL拉死了,然后出现上面错误。

4. 也有可能是服务器中安装的防火墙引起的。 Continue reading »

1月 252010
 

mysql安装好需要优化配置一下
2007-06-22 08:00
mysql安装好需要优化配置一下,打开c:\windows\my.ini文件
第一种
QUOTE:
#This File was made using the WinMySQLAdmin 1.4 Tool
#2004-2-23 16:28:14

#Uncomment or Add only the keys that you know how works.
#Read the MySQL Manual for instructions

[mysqld]
basedir=D:/mysql
#bind-address=210.5.*.*
datadir=D:/mysql/data
#language=D:/mysql/share/your language directory Continue reading »

1月 202010
 

喜欢MySQL的赶紧去签名支持,一起拯救MySQL吧
—————————————————–
今早收到了MySQL的邮件,全文如下:

亲爱的拯救MySQL的中国签名支持者,

欧盟可能无法拯救MySQL, 中国和俄罗斯可能是拯救MySQL的希望之所在。中国拥有强大、独立以及自信的反垄断主管机关,因此,我本人在此请求您的帮助。对于您在 http://www.helpmysql.org/cn/petition 的签名,我们深表感谢。如果可以的话,我们需要您的进一步帮助:

(1)商务部反垄断局 http://fldj.mofcom.gov.cn/index.shtml 是并购反垄断审查的主管机关,包括本次对甲骨文收购太阳微电子的反垄断审查。如果您正在使用MySQL,您的意见将对于商务部反垄断局的审查非常重要。我们不能详细的指示您该如何如何对主管机关反映情况,因为这是不妥当的。但是我们认为,如果您能告诉主管机关您的公司如何使用MySQL (什么项目,什么规模、数据流量以及使用者数量等)以及您认为甲骨文收购MySQL之后会产什么样的影响,将会非常有用。如果您知道MySQL是昂贵的甲骨文数据库的免费替代品,举例向商务部反垄断局说明将会很有帮助。特别是,您知道或使用MySQL作为筹码,或声称将使用MySQL,以此要求甲骨文数据库降低价格的情况,请一定向商务部说明。我们希望您能直接写信给商务部反垄断局,传真010-65198998。鉴于时间紧迫,我们鼓励您直接打电话给商务部反垄断局,电话是010-65198680。
  
商务部反垄断局会保护MySQL以及您作为使用者,客户和消费者的利益。在与商务部的沟通过程中,请您简单明了地说明您具体需要什么样的帮助。

(2)感谢许许多多像您一样支持我们的人,我们在中国已经收集到了650 个签名,请见:http://helpmysql.org/cn/stats 。 这是一个很好的开始。但是像中国这样一个支持开源的大国,应该会有更多人的签名。问题可能在于很多人可能认为这是欧盟委员会审查决定的事项,中国可能无法改变什么。事实上,中国商务部反垄断局可以做出自己的决定。

在中国,知道此事的人可能还不多,新闻报道也比较有限,比如http://tech.sina.com.cn/it/2010-01-04/21153736195.shtml 。如果您有兴趣,可以帮我们联系中国有影响力IT网站或杂志,告诉他们这次签名活动。

如果有更多的网站参与进来,就会有更多的人签署请愿书,虽然这只是第一步。切记确保文章中或网站中提到helpmysql.org,或者提供一个链接http://helpmysql.org/cn/theissue/customerspaythebill
  
对于您所做出的任何帮助,我在此预致感谢!

Michael Widenius
Creator of MySQL

2月 132008
 

MySql数据库修复
                                      

今天早上发现因为磁盘满造成了Mysql服务没法正常运行,首先腾硬盘空间,再停止 mysqld服务,还用了下kill杀掉了mysqld进程,后来发现数据库虽然启动了,但是数据表损坏了,google搜索了下,用myisamchk 修复了下数据表文件,成功。特摘录下文。

检查和修复MySQL数据文件

由于临时断电,使用kill -9中止MySQL服务进程,或者是Jessica的朋友idiot@%.host.net又犯了一个错误,所有的这些都可能会毁坏MySQL的数据文件。如果在被干扰时,服务正在改变文件,文件可能会留下错误的或不一致的状态。因为这样的毁坏有时是不容易被发现的,当你发现这个错误时可能是很久以后的事了。于是,当你发现这个问题时,也许所有的备份都有同样的错误。

MySQL参考手册的第十五章讲述了MySQL自带的myisamchk的功能,以及如何使用它检查和修复你的MySQL数据文件。虽然这一章对于每个想要搭建一个强壮的MySQL服务的人都是推荐阅读的,我们还是有必要在这里对其中的要点进行讨论。

在我们继续之前,你必须意识到myisamchk程序对用来检查和修改的MySQL数据文件的访问应该是唯一的。如果MySQL服务正在使用某一文件,并对myisamchk正在检查的文件进行修改,myisamchk会误以为发生了错误,并会试图进行修复–这将导致MySQL服务的崩溃!这样,要避免这种情况的发生,通常我们需要在工作时关闭MySQL服务。作为选择,你也可以暂时关闭服务以制作一个文件的拷贝,然后在这个拷贝上工作。当你做完了以后,重新关闭服务并使用新的文件取代原来的文件(也许你还需要使用期间的变更日志)。

MySQL数据目录不是太难理解的。每一个数据库对应一个子目录,每个子目录中包含了对应于这个数据库中的数据表的文件。每一个数据表对应三个文件,它们和表名相同,但是具有不同的扩展名。tblName.frm文件是表的定义,它保存了表中包含的数据列的内容和类型。tblName.MYD文件包含了表中的数据。tblName.MYI文件包含了表的索引(例如,它可能包含lookup表以帮助提高对表的主键列的查询)。

要检查一个表的错误,只需要运行myisamchk(在MySQL的bin目录下)并提供文件的位置和表名,或者是表的索引文件名:

% myisamchk /usr/local/mysql/var/dbName/tblName
% myisamchk /usr/local/mysql/var/dbName/tblName.MYI

上面的两个命令都可以执行对指定表的检查。要检查数据库中所有的表,可以使用通配符:

% myisamchk /usr/local/mysql/var/dbName/*.MYI

要检查所有数据库中的所有表,可以使用两个通配符:

% myisamchk /usr/local/mysql/var/*/*.MYI

如果不带任何选项,myisamchk将对表文件执行普通的检查。如果你对一个表有怀疑,但是普通的检查不能发现任何错误,你可以执行更彻底的检查(但是也更慢!),这需要使用–extend-check选项:

% myisamchk –extend-check /path/to/tblName
对错误的检查是没有破坏性的,这意味着你不必担心执行对你的数据文件的检查会使已经存在的问题变得更糟。另一方面,修复选项,虽然通常也是安全的,但是它对你的数据文件的更改是无法撤消的。因为这个原因,我们强烈推荐你试图修复一个被破坏的表文件时首先做个备份,并确保在制作这个备份之前你的MySQL服务是关闭的。

当你试图修复一个被破坏的表的问题时,有三种修复类型。如果你得到一个错误信息指出一个临时文件不能建立,删除信息所指出的文件并再试一次–这通常是上一次修复操作遗留下来的。

这三种修复方法如下所示:

% myisamchk –recover –quick /path/to/tblName
% myisamchk –recover /path/to/tblName
% myisamchk –safe-recover /path/to/tblName

第一种是最快的,用来修复最普通的问题;而最后一种是最慢的,用来修复一些其它方法所不能修复的问题。

检查和修复MySQL数据文件

如果上面的方法无法修复一个被损坏的表,在你放弃之前,你还可以试试下面这两个技巧:

如果你怀疑表的索引文件(*.MYI)发生了不可修复的错误,甚至是丢失了这个文件,你可以使用数据文件(*.MYD)和数据格式文件(*.frm)重新生成它。首先制作一个数据文件(tblName.MYD)的拷贝。重启你的MySQL服务并连接到这个服务上,使用下面的命令删除表的内容:

mysql> DELETE FROM tblName;

在删除表的内容的同时,会建立一个新的索引文件。退出登录并重新关闭服务,然后用你刚才保存的数据文件(tblName.MYD)覆盖新的(空)数据文件。最后,使用myisamchk执行标准的修复(上面的第二种方法),根据表的数据的内容和表的格式文件重新生成索引数据。

如果你的表的格式文件(tblName.frm)丢失了或者是发生了不可修复的错误,但是你清楚如何使用相应的CREATE TABLE语句来重新生成这张表,你可以重新生成一个新的.frm文件并和你的数据文件和索引文件(如果索引文件有问题,使用上面的方法重建一个新的)一起使用。首先制作一个数据和索引文件的拷贝,然后删除原来的文件(删除数据目录下有关这个表的所有记录)。

启动MySQL服务并使用当初的CREATE TABLE文件建立一个新的表。新的.frm文件应该可以正常工作了,但是最好你还是执行一下标准的修复(上面的第二种方法)。

5月 032007
 

mysql字符集编码

字符集和整理
整理 描述
armscii8 (ARMSCII-8 Armenian)
armscii8_bin 亚美尼亚语, 二进制
armscii8_general_ci 亚美尼亚语, 不区分大小写
ascii (US ASCII)
ascii_bin 西欧 (多语言), 二进制
ascii_general_ci 西欧 (多语言), 不区分大小写
big5 (Big5 Traditional Chinese)
big5_bin 繁体中文, 二进制
big5_chinese_ci 繁体中文, 不区分大小写
binary (Binary pseudo charset)
binary 二进制
cp1250 (Windows Central European) Continue reading »