作者: admin

  • /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录

    yum install glibc glibc.i686

    原因是在64位系统下运行了32位的程序

    加上对应的包就好

     

  • SQLServer 2008安装提示需要重启计算机,但是重启还是不通过解决方案

    SQLServer 2008安装提示需要重启计算机,但是重启还是不通过解决方案

    有的人可能在SQL 2008安装时提示需要重启计算机,但是重启电脑后还是检测不通过。

    处理方法:

    在 开始-程序-运行中(或者直接windows+R件同时),输入regedit回车,在注册表中找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager中找到PendingFileRenameOperations删除,就搞定

    如果第一次提示重启,可以重启电脑厚再执行安装,也可以直接删注册表解决,如果重启还没用,那就需要大家动手删除注册表中的一个键值。

    为什么要删注册表呢?因为你的电脑上可能有安装挂起的任务会写入注册表,如果有安装挂机的任务,数据库就不能正确安装,只要删除了这个注册表的值就可以了。

    怎么删除?

    按照上面的方法。 开始-程序-运行中(或者直接windows+R件同时),输入regedit回车,在注册表中找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager中找到PendingFileRenameOperations删除,就搞定

  • IIS7无法显示页面,因为发生内部服务器错误。错误代码0x800700c1

    模块 IsapiModule 通知 ExecuteRequestHandler 处理程序 AboMapperCustom-532187 错误代码 0x800700c1
    经查找,找到解决方法,原来是应用程序池的问题:
    1、进入IIS中的应用程序池
    2、选中网站使用的应用程序池名称,然后点击“高级设置”,
    3、启用32位应用程序池即可!

    X64 下需要把midas.dll和dbexpint.dll 放到Windows\system 目录下

  • Bugzilla发送邮件

    本人的BUGZILLA版本是3.6的。
    关于bugzilla的发送邮件问题,在网上查了很多,有的用sendmail..等第三方邮件发送,有的在email.ini里面修改代码,这些方法我都试过,都行不通。然后我看官网的说明,BUGZILLA里自带的有SMTP,只要SMTP能够通过认证就可以了,所以第三方,以及代码什么都不用修改,只要设置params里面的参数就可以了!
    在..\data\params设置如下参数:
    maintainer :                  swaiwai@163.com
    mail_delivery_method :         SMTP
    mailfrom :                     swaiwai@163.com
    sendmailnow:                   on
    smtpserver :                   smtp.163.com
    smtp_username:                 swaiwai@163.com
    smtp_password :                **********
    注意:maintainer、mailfrom必须相同!smtp_username邮箱必须是存在的真实的邮箱,smtp_password必须是你真实邮箱的真实密码(要与你所登陆邮箱时的密码相同)!
    由与邮件问题在网上一直未看到解决方法,所以我就把我的方法给大家共享一下!(若转就注明原创!)哈哈!本人就是这样设置的,邮件已经发送成功!如果还有不能连接等问题,只能说明你的邮箱和密码有问题!

    disable_plaintext_auth = no
    ssl = no

    No success on command[/usr/bin/perl Makefile.PL  LIB=”/var/www/html/bugzilla/lib” INSTALLMAN1DIR=”/var/www/html/bugzilla/lib/man/man1″ INSTALLMAN3DIR=”/var/www/html/bugzilla/lib/man/man3″ INSTALLBIN=”/var/www/html/bugzilla/lib/bin” INSTALLSCRIPT=”/var/www/html/bugzilla/lib/bin” INSTALLDIRS=perl]
    PHRED/mod_perl-2.0.8.tar.gz
    /usr/bin/perl Makefile.PL  LIB=”/var/www/html/bugzilla/lib” INSTALLMAN1DIR=”/var/www/html/bugzilla/lib/man/man1″ INSTALLMAN3DIR=”/var/www/html/bugzilla/lib/man/man3″ INSTALLBIN=”/var/www/html/bugzilla/lib/bin” INSTALLSCRIPT=”/var/www/html/bugzilla/lib/bin” INSTALLDIRS=perl — NOT OK
    Skipping test because of notest pragma
    Running make install
    Make had some problems, won’t install
    Could not read metadata file. Falling back to other methods to determine prerequisites

  • CentOS 6.x安装第三方软件库epel

    rpm -q epel-release
    package epel-release is not installed
    如果没有安装,则install:
    rpm -ivh
    x64
    http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
    x86
    http://mirrors.ustc.edu.cn/fedora/epel/6/i386/epel-release-6-8.noarch.rpm

    rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

    yum install yum-priorities

    cd /etc/yum.repos.d/
    ls |grep epel
    epel.repo
    epel-testing.rep

  • cpuminer

    cpu挖矿, 优化版cpuminer

    cpu挖矿, 请下载优化版的cpuminer Binaries for Windows:
    http://sourceforge.net/projects/cpuminer/files/pooler-cpuminer-2.3.2-win32.zip (32-bit)
    http://sourceforge.net/projects/cpuminer/files/pooler-cpuminer-2.3.2-win64.zip  (64-bit)
    Binaries for Linux:
    http://sourceforge.net/projects/cpuminer/files/pooler-cpuminer-2.3.2-linux-x86.tar.gz (x86)
    http://sourceforge.net/projects/cpuminer/files/pooler-cpuminer-2.3.2-linux-x86_64.tar.gz (x86-64)
    Installing dependencies for building on Debian, Ubuntu and other APT-based distros:
    $ sudo apt-get install build-essential libcurl4-openssl-dev
    Installing dependencies for building on Fedora, RHEL, CentOS and other yum-based distros:
    $ sudo yum install gcc make curl-devel
    Installing dependencies for building on OpenSUSE and other ZYpp-based distros:
    $ sudo zypper in gcc make libcurl-devel
    Recipe for building on Linux:
    $ wget http://sourceforge.net/projects/cpuminer/files/pooler-cpuminer-2.3.2.tar.gz
    $ tar xzf pooler-cpuminer-*.tar.gz
    $ cd cpuminer-*
    $ ./configure CFLAGS="-O3"
    $ make
    Basic usage examples
    $  ./minerd --url=stratum+tcp://stratum.waltc.net:3333 --userpass=LeorFUe6YBzDWerYdBRcYxquE9b8YhpTUe.ltb-server14:12345678
    $  ./minerd --url=stratum+tcp://myminingpool.com:3333 --userpass=my.worker:password
    For more information:
    $ ./minerd --help
    Just redirect the standard error stream to file: minerd [OPTIONS] 2> myfile

  • postgresql备份

    全库备份
    pg_dumpall -U postgres | gzip > xxx.sql.gz
    单个库备份
    pg_dump -d xxx -U postgres | gzip > xxx.sql.gz

    错误:
    pg_dump: Error message from server: ERROR:  character 0xc2a0 of encoding “UTF8” has no equivalent in “GBK”
    设置 正确的字符集

    #!/bin/bash
    export PGCLIENTENCODING=UTF8
    d=`date +%d`
    /usr/bin/pg_dumpall -U postgres | gzip > /mnt/pgdbbackup/pgbak/pgdball$d.bak.gz

    PostgreSQL备份与恢复示例
    一、简介
    Postgresql的备份分为三种:
    l SQL转储
    l 文件系统级别备份(冷备份)
    l 在线热备份(归档)
    以下通过实例来讲解PostgreSQL的三种备份。
    二、 SQL转储
    (一)pg_dump
    1,创建数据库
    createdb pg
    2,连入数据库pg
    psql pg
    3,创建测试表,插入数据
    pg=# create table pg_test(a int);
    pg=# insert into pg_test(a) values(1);
    pg=# insert into pg_test(a) values(2);
    4,查看数据
    pg=# select * from tb;
    a

    1
    2
    (2 rows)
    5,备份
    pg_dump pg > /usr/local/pgsql/backup/pg.dmp
    6,删除数据库pg
    dropdb pg
    7,创建新数据库(恢复之前需创建数据库)
    createdb pg
    8,恢复数据
    psql pb < /usr/local/pgsql/backup/pg.dmp
    9,查看数据是否回复
    pg=# select * from tb;
    a

    1
    2
    (2 rows)
    至此,数据已成功恢复!
    注:pg_dump可以对针对单表或者多表进行备份
    如:pg_dump databasename –t tablename1 –t tablename2 >filename
    (二)pg_dumpall
    pg_dump只能备份单个数据库,而且恢复的时候需要创建空数据库。pg_dumpall可以备份所有数据库,并且备份角色、表空间。
    1,创建数据库
    createdb pg1
    createdb pg2
    2, pg1中创建表并插入数据
    psql pg1
    pg=# create table tb1(a int)
    pg=# insert into tb1(a) values(1);
    3, pg2中创建表并插入数据
    psql pg2
    pg=# create table tb2(a int)
    pg=# insert into tb2(a) values(2);
    4,备份数据库
    pg_dumpall > /usr/local/pgsql/backup/pg_all.dmp
    5,删除数据库
    dropdb pg1
    dropdb pg2
    6,恢复数据库
    psql –f /usr/local/pgsql/backup/pg_all.dmp postgres
    可以指定任何数据库名,如果恢复到一个空的集群中,通常使用postgres数据库
    7,查看数据库pg1是否恢复
    psql pg1
    pg=# select * from tb1;
    a

    1
    (1 rows)
    8,查看数据库pg2是否恢复
    psql pg2
    pg=# select * from tb2;
    a

    2
    (1 rows)
    至此,数据已成功恢复!
    (三)备份压缩与分割
    压缩与分割的原理都是利用Linux的管线(PIPE)命令,不再进行试验。
    1)压缩
    l 备份:
    pg_dump dbname | gzip > filename.gz
    l 恢复
    gunzip -c filename.gz | psql dbname
    2)分割
    l 备份:
    pg_dump dbname | split -b1m- filename
    l 恢复
    cat filename* | psql dbname
    三、文件系统级别备份(冷备份)
    文件系统级别的备份是冷备份,需要停止数据库。
    1,停止数据库
    pg_ctl –D /usr/local/pgsql/data stop
    2,备份数据库
    tar –jcv –f /usr/local/pgsql/backup/filesystem.tar.bz2 /usr/local/pgsql/data/
    3,删除/usr/local/pgsql/data/目录

    rm –r /usr/local/pgsql/data/
    4,解压备份文件到原目录
    tar –jxv –f /usr/local/pgsql/backup/filesystem.tar.bz2 –C /
    5,启动数据库
    pg_ctl –D /usr/local/pgsql/data start
    6,查看数据库pg1是否恢复
    psql pg1
    pg=# select * from tb1;
    a

    1
    (1 rows)
    7,查看数据库pg2是否恢复
    psql pg2
    pg=# select * from tb2;
    a

    2
    (1 rows)
    至此,数据已成功恢复!
    四、在线热备份(归档)
    (一)备份
    1,配置归档模式
    配置归档需要编辑postgresql.conf文件,默认为与/usr/local/pgsql/data/目录下
    vim /usr/local/pgsql/data/postgesql.conf
    archive_mode = on
    archive_command = ‘cp %p /usr/local/pgsql/backup/archived_log/%f’
    注:%p要被归档的日志文件的路径,%f是要被归档的日志文件的文件名
    2,启动数据库
    pg_ctl –D /usr/local/pgsql/data start
    3,创建数据库arch
    createdb arch
    4,创建表并插入记录
    psql arch
    arch=# create table tb(a int);
    arch=# insert into tb(a) values(1);
    5,创建备份
    arch=# select pg_start_backup(‘baseline’);
    6,备份整个data目录
    tar –jcv –f /usr/local/pgsql/backup/baseline.tar.bz2 /usr/local/pgsql/data/
    7,停止备份
    psql arch
    arch=# select pg_stop_backup();
    8,插入新记录,然后切换日志,重复3次
    arch=# insert into tb(a) values(2);
    arch=# select pg_switch_xlog();
    arch=# insert into tb(a) values(3);
    arch=# select pg_switch_xlog();
    arch=# insert into tb(a) values(4);
    arch=# select pg_switch_xlog();
    9,把/data/pg_xlog/下的WAL日志文件复制到预设的归档目录下,保证产生的WAL日志都已归档。
    (二)恢复
    1,停止数据库
    pg_ctl –D /usr/local/pgsql/data/ stop
    2,删除/data/
    rm –r /usr/local/pgsql/data/
    3,恢复备份
    tar –jxv –f /usr/local/pgsql/backup/baseline.tar.bz2 –C /
    4,清空/data/pg_xlog/目录下所有文件
    rm –r /usr/local/pgsql/data/pg_xlog/
    5,创建/pg_xlog/及其下面的archive_status目录
    mkdir /usr/local/pgsql/data/pg_xlog/
    mkdir /usr/local/pgsql/data/pg_xlog/archive_status
    6,在/data/目录下创建recovery.conf
    vim /usr/local/pgsql/data/recovery.conf
    restore_command = ‘cp /usr/local/pgsql/backup/archived_log/%f “%p”’
    7,启动数据库
    pg_ctl –D /usr/local/pgsql/data/ start
    一切正常的话数据库就会自动应用WAL日志进行恢复
    8,查看数据库arch是否恢复
    psql arch
    arch=# select * from tb;
    a

    1
    2
    3
    4
    (4 rows)
    至此,数据已经成功恢复!

  • Stale file handle mount故障

    ls /mnt/ -l
    ls: cannot access /mnt/mysqldata: Stale file handle
    total 0
    d????????? ? ? ? ? ? mysqldata
    cannot stat `/mnt/mysqldata’: Stale file handle
    df
    df: `/mnt/mysqldata’: Stale file handle

    解决:

    umount -f /mnt/mysqldata
    ls /mnt/ -l
    total 4
    drwxrwxrwx 2 root root 4096 Sep 23 10:20 mysqldata

  • 不重启Linux服务器关闭SeLinux的方法

    不重启Linux服务器关闭SeLinux的方法 – 安全设置

    以下介绍一下SELinux相关的工具 /usr/bin/setenforce 修改SELinux的实时运行模式 setenforce 1 设置SELinux 成为enforcing模式 setenforce 0 设置SELinux 成为permissive模式 如果要彻底禁用SELinux 需要在/etc/sysconfig/selinux中设置参数selinux=0 ,或者在/etc/grub.conf中添加这个参数 /usr/bin/setstatus -v 不想重启服务器,有以下解决办法: 执行命令:setenforce 0 就可以不重启关闭selinux了

  • Apache并发处理模块

     

    查看连接数和当前的连接数,分别是
    netstat -ant | grep $ip:80 | wc -l
    netstat -ant | grep $ip:80 | grep EST | wc -l

    ThreadsPerChild 每个子进程的服务线程数目 默认值25
    StartServers apache启动的时候就开启的子进程数 默认值3
    MinSpareThreads 最小空闲线程数 默认值75
    MaxSpareThreads 最大空闲线程数,apache在运行的时候会让总的空闲线程数保持在MinSpareThreads和MaxSpareThreads之间,这两个参数用默认值就可以了,一般情况下没必要去调整它们 默认值250
    MaxClients 最大客户端并发处理数(最大线程数),MaxClients除以ThreadsPerChild得到的值的就是最大可能达到的子进程数,如果服务器的并发请求数超过了MaxClients,那么apache会报这样的错误:server reached MaxClients setting, consider raising the MaxClients setting 默认值16*25 = 400
    ServerLimit 最大进程数限制,这个参数值必须大于或等于MaxClients除以ThreadsPerChild得到的值。这个参数是硬限制,直接重启apache(apache restart)不会生效,必须先停止apache(apache stop)再启动apache(apache start)才生效 worker模式下默认值是16,prefork模式则是256
    ThreadLimit 每个进程的最大线程数限制,也就是说这个参数决定了ThreadsPerChild的最大值。如果这个参数设得比ThreadsPerChild大很多的话,那么会浪费掉很多共享内存。设置过大还可能会导致apache无法启动或者系统不稳定。这个参数也是硬限制。如果要设置的话,ServerLimit和ThreadLimit必须放在其它设置的前面 默认值64
    MaxRequestsPerChild 单个子进程在其生命周期内处理的总请求数限制,当某个子进程处理过的总请求数到达这个限制后这个进程就会被回收,如果设为0,那么这个进程永远不会过期(这样如果有内存泄露的话就会一直泄露下去……)

    <IfModule prefork.c>
    StartServers 10
    MinSpareServers 10
    MaxSpareServers 15
    ServerLimit 2000
    MaxClients 1500
    MaxRequestsPerChild 10000
    </IfModule>

    ServerLimit 要放在 MaxClients 前面!!!

    另外,調整之後如果以 apachectl graceful 重開 Apache,ServerLimit 的設定並不會生效,log 檔裡會出現以下的錯誤訊息:

    [Wed Aug 11 22:31:41 2009] [warn] WARNING: Attempt to change ServerLimit ignored during restart
    如果以 apachectl restart 重開也沒用,一樣會出現前面提過的錯誤訊息:
    WARNING: MaxClients of 300 exceeds ServerLimit value of 256 servers,
    lowering MaxClients to 256.  To increase, please see the ServerLimit
    directive.
    在前面提過的官網說明中有一段隱晦的說明:

    Any attempts to change this directive during a restart will be ignored, but MaxClients can be modified during a restart.
    因此要使 ServerLimit 生效,必須先停止 Apache: apachectl stop,再開啟 Apache: apachectl start

    Apache中MaxRequestsPerChild参数及配置

    MaxRequestsPerChild这个指令设定一个独立的子进程将能处理的请求数量。
    在处理 “MaxRequestsPerChild”请求之后,子进程将会被父进程终止,这时候子进程占用的内存就会释放,如果再有访问请求,父进程会重新产生子进程进行处理。
    如果 MaxRequestsPerChild缺省设为0(无限)或较大的数字(例如10000以上)可以使每个子进程处理更多的请求,不会因为不断终止、启动子进程降低访问效率,
    但MaxRequestsPerChild设置为0时,如果占用了200~300M内存,即使负载下来时占用的内存也不会减少。内存较大的服务器可以设置为0或较大的数字。内存较小的服务器不妨设置成30、50、100,以防内存溢出