September 12, 2009
FreeBSD中忘记root密码的解决办法
"重新启动FreeBSD 过往单用户更改密码\nFreeBSD 4.x 或之前的版本\n在系统启动所示以下信息时按 spacebar\nHit [Enter] to boot immediately, or any other key for command prompt.\nBooting [kernel] in 10 seconds…接着在所示以下信息时输入 boot -s\nType ‘?’ for a list of commands, or ‘help’ for more detailed help.\nok\n按 Enter 后系统会进行至所示以下信息\nEnter full pathname of shell or RETURN for /bin/sh:\n再按 Enter 进入单用户模式,所示 #\n挂载档案系统,输入\nfsck -p \\文件档案检查 mount -u / \\挂载 mount -t ufs -a \\挂载所有文件档案 更改密码"
August 28, 2009
mysql中显示当前使用的数据库名称
"mysql\u0026gt; select database(); +------------+ | database() | +------------+ | csdn | +------------+ 1 row in set (0.00 sec) mysql\u0026gt; SELECT * FROM information_schema.SCHEMATA where schema_name=\u0026#39;csdn\u0026#39;; +--------------+-------------+----------------------------+------------------------+----------+ | CATALOG_NAME | SCHEMA_NAME | DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME | SQL_PATH | +--------------+-------------+----------------------------+------------------------+----------+ | …"
August 26, 2009
nginx 502 bad gateway 解决办法
"NGINX 502 Bad Gateway错误是FastCGI有问题,造成NGINX 502错误的可能性比较多。将网上找到的一些和502 Bad Gateway错误有关的问题和排查方法列一下,先从FastCGI配置入手:\n1.FastCGI进程是否已经启动\n2.FastCGI worker进程数是否不够 运行 netstat -anpo | grep “php-cgi” | wc -l 判断是否接近FastCGI进程,接近配置文件中设置的数值,表明worker进程数设置太少 通过命令查看服务器上一共开了多少的 php-cgi 进程\nps -fe |grep “php” | grep -v “grep” | wc -l\n使用如下命令查看已经有多少个php-cgi进程用来处理tcp请求\nnetstat -anop | grep “php” | grep -v “grep” | wc -l\n接近配置文件中设置的数值,表明worker进程数设置太少 参见: http://blog.s135.com/post/361.htm\n3.FastCGI …"
August 24, 2009
MySQL中UNION和UNION ALL的区别
"在数据库中,UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。\nMySQL中的UNION UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。实际大部分应用中是不会产生重复的记录,最常见的是过程表与历史表UNION。如:\nselect * from gc_dfys union select * from ls_jg_dfys\n这个SQL在运行时先取出两个表的结果,再用排序空间进行排序删除重复的记录,最后返回结果集,如果表数据量大的话可能会导致用磁盘进行排序。\nMySQL中的UNION ALL 而UNION ALL只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。 从效率上说,UNION ALL 要比UNION快很多,所以,如果可以确认合并的两个结果集中不包含重复的数据的话,那么就使用UNION ALL,如下:\nselect * from gc_dfys union all select * from …"
July 31, 2009
详细讲解C++ 类的继承
"一个私有的或保护的派生类不是子类,因为非公共的派生类不能做基类能做的所有的事,就是指在公开场合,但是在类内部可以的\n一、引言 在C++中,类是提供封装的逻辑单位,类的每一个对象都包含有描述其自身状态的数据集合,并且通过接收特定的消息来处理这个数据集合。如果程序设计 人员能够通过增加、修改或替换指定类的部分内容的方法对该类进行剪裁,就可以适应不同的应用,从而在很大程度上增强了数据封装的价值,而接下来要讨论的继 承就完全可以实现这种操作。\n二、与继承有关的基本概念 继承是一个进程,通过继承,一个对象可以获得另一个对象的属性(包括函数),并可向其中加入属于自己的一些特征。作为C++语言的一种重要机制,用 继承的方法可以自动为一个类提供来自另一个类的操作和数据结构,进而使程序设计人员在一个一般的类的基础上很快建立一个新的类,而不必从零开始设计每个 类。\n当一个类被其他的类继承时,被继承的类称为基类(可不是鸡肋^_^),又称为父类。\n继承其他类属性的类称为派生类,又称为子类。\n一般情况下,继承的进程起源于一个基类的定义,基类定义了其所有派生类的公有属性。从本质上讲,基类具有同一类集合中的公共属 …"
July 2, 2009
Mysql Master/Slave模式实战
"**1.master上授权给slave ** mysql\u0026gt;grant all on *.* to repadmin@’218.6.67.75′ identified by ‘backup’; mysql\u0026gt;flush privileges; mysql\u0026gt;use abs; mysql\u0026gt;create table mysqlslave (status char(8)); mysql\u0026gt;insert into mysqlslave values (‘aaaa’);\n2.shutdown master mysqladmin -u root shutdown\n3.拷贝数据文件 直接把数据文件夹打包拷贝到slave去。\n4.修改Master的my.cnf文件,在[mysqld]处增加 master /etc/my.cnf: log-bin server-id = 1 sql-bin-update-same binlog-do-db = abs\n5.修改Slave的my.cnf文件 server-id = 2 master-host = 218.6.67.68 …"
June 27, 2009
解决Default storage engine (InnoDB) is not available导致mysql无法启动的
"一次为了修改mysql的root用户密码,就启用了本机启动模式,可再次启用mysql时,却揭示:Default storage engine (InnoDB) is not available ,mysql无法启动,后搜索网络,得知应该是配置文件有错,这里提示:“060827 1:12:22 [ERROR] Default storage engine (InnoDB) is not available” 打开my.ini或my.cnf文件,找到default-storage-engine这一行,把它改成default-storage-engine=MyISAM。"
June 26, 2009
MySQL特异功能之:Impossible WHERE noticed after reading const tables
"用EXPLAIN看MySQL的执行计划时经常会看到Impossible WHERE noticed after reading const tables这句话,意思是说MySQL通过读取“const tables”,发现这个查询是不可能有结果输出的。比如对下面的表和数据:\ncreate table t (a int primary key, b int) engine = innodb; insert into t values(1, 1); insert into t values(3, 1); 执行“EXPLAIN select * from t where a = 2”时就会输出“Impossible WHERE noticed after reading const tables”。\n不 明白所谓的“const tables”是什么意思,对MySQL在查询优化时竟然可以发现一个查询不可能输出结果更是感觉不可思议。按数据库中“传统”的做法,查询优化时只会访 问模式定义和统计信息,而据我所知,数据库中使用的各种统计信息如EquiDepth、MaxDiff柱状图,MCV,属性的最大 …"
June 23, 2009
用mrtg监控网络设备端口流量
"被监控设备必须支持snmp协议,因为mrtg就是通过snmp协议来获取该设备的端口流量信息。如何在一个网络设备上启用snmp协议呢?\n在配置模式下执行如下命令:3550(config)#snmp-server community public ro,启用snmp协议。启用后才能使用mrtg进行监控。\n我中心用一台linux服务器监控三台网络设备的流量,其服务器地址为10.66.100.100/16,三台交换机的任一VLAN地址分别为 192.168.3.253,172.19.96.2,10.70.0.1。现为了叙述方便,仅选取10网段的交换机为例进行说明。其他设备方法相同,不 再赘述。\n在执行mrtg的各步操作前,linux系统中必须先安装apache服务,用于网页发布。\nI、Apache服务的安装\n因为mrtg是以网页的形式来显示被监测设备的端口流量信息的,所以必须先安装apache服务。现将安装过程中的几个问题描述如下:\n下载apache-2.0.44-2.i586.rpm软件包,安装时系统显示”libssl.so.0 is needed by …"
June 23, 2009
使用FreeBSD的SNMP+MRTG网络流量分析
"、 安装SNMP 一般版本的FreeBSD系统SNMP存放在/usr/ports/net/net-snmp下面,但是有的版本不是。有些版本 在安装Package的时候,除了要安装Net之外,还要安装Net-mgmt里面的SNMP,安装好之后,SNMP就存放在/usr/ports /net-mgmt/net-snmp下面了。下面就是安装过程: # cd /usr/ports/net-mgmt/net-snmp #snmp的存放路径 # make install clean #安装snmp # ee /etc/rc.conf snmpd_enable=”YES” snmpd_flags=”-p /var/run/snmpd.pid” # /etc/netstart # ee /usr/local/share/snmp/snmpd.conf rocommunity public # /usr/local/etc/rc.d/snmpd.sh start #启动snmp\n2、 安装mrtg mrtg根据不同的版本存放的位置不同,一般存放在/usr/ports/net/net-snmp下面,这里介 …"