解决Centos 5.2关机电源不能关闭问题

修改/boot/grub/grub.conf
kernel /boot/vmlinuz-2.6.21-1.3194.fc7 ro root=LABEL=/ rhgb quiet
加入apm=on apm=power-off
即变成
kernel /boot/vmlinuz-2.6.21-1.3194.fc7 ro root=LABEL=/ apm=on apm=power-off rhgb quiet
即可。。

 

我直接使用:halt -p来关机

国内巨快的Centos yum源

arbor找到的很快的国内yum 源:

CentOS USTC mirror

http://centos.ustc.edu.cn/centos/

安装后请按照以下步骤修改CenOS-Base.repo,以后就可以方便的用yum安装软件了.

cd /etc/yum.repos.d
mv CentOS-Base.repo  CentOS-Base.repo.save
wget http://centos.ustc.edu.cn/CentOS-Base.repo

修改以上文件后, 如需要安装gcc, 直接yum install gcc就可以了

还有一个:
http://www.shlug.org/

查看linux系统位数方法(32?64?)

1.直接看看有没有/lib64目目录的方法。64位的系统会有/lib64和/lib两个目录,32位只有/lib一个。

2.getconf LONG_BIT

(32位的系统中int类型和long类型一般都是4字节,64位的系统中int类型还是4字节的,但是long已变成了8字节inux系统中可 用”getconf WORD_BIT”和”getconf LONG_BIT”获得word和long的位数。64位系统中应该分别得到32和64。)

linux修改时间和日期的方法

修改linux的时间可以使用date指令

修改日期:
时间设定成2009年5月10日的命令如下:
#date -s 05/10/2009

修改时间:
将系统时间设定成上午10点18分0秒的命令如下。
#date -s 10:18:00

修改时区:
找到相应的时区文件 /usr/share/zoneinfo/Asia/Shanghai替换当前的/etc/localtime。
修改/etc/sysconfig/clock文件的内容为:
ZONE=”Asia/Shanghai”
UTC=false
ARC=false

同步bios时间:
同步BIOS时钟,强制把系统时间写入CMOS,命令如下:
#clock -w

date命令的功能是显示和设置系统日期和时间。
输入date 查看目前系统时间。

修改时间需要 date -功能字符 修改内容

命令中各选项的含义分别为:
-d datestr, –date datestr 显示由datestr描述的日期
-s datestr, –set datestr 设置datestr 描述的日期
-u, –universal 显示或设置通用时间

时间域
%H 小时(00..23)
%I 小时(01..12)
%k 小时(0..23)
%l 小时(1..12)
%M 分(00..59)
%p 显示出AM或PM
%r 时间(hh:mm:ss AM或PM),12小时
%s 从1970年1月1日00:00:00到目前经历的秒数
%S 秒(00..59)
%T 时间(24小时制)(hh:mm:ss)
%X 显示时间的格式(%H:%M:%S)
%Z 时区 日期域
%a 星期几的简称( Sun..Sat)
%A 星期几的全称( Sunday..Saturday)
%b 月的简称(Jan..Dec)
%B 月的全称(January..December)
%c 日期和时间( Mon Nov 8 14:12:46 CST 1999)
%d 一个月的第几天(01..31)
%D 日期(mm/dd/yy)
%h 和%b选项相同
%j 一年的第几天(001..366)
%m 月(01..12)
%w 一个星期的第几天(0代表星期天)
%W 一年的第几个星期(00..53,星期一为第一天)
%x 显示日期的格式(mm/dd/yy)
%y 年的最后两个数字( 1999则是99)
%Y 年(例如:1970,1996等)

需要特别说明的是,只有超级用户才能用date命令设置时间,一般用户只能用date命令显示时间。

例1:用指定的格式显示时间。
$ date ‘+This date now is =>%x ,time is now =>%X ,thank you !’
This date now is =>11/12/99 ,time is now =>17:53:01,thank you !
例2:用预定的格式显示当前的时间。
# date
Fri Nov 26 15:20:18 CST 1999
例3:设置时间为下午14点36分。
# date -s 14:36:00
Fri Nov 26 14:15:00 CST 1999
例4:设置时间为1999年11月28号。
# date -s 991128
Sun Nov 28 00:00:00 CST 1999

实例:设置时间伟2008年8月8号12:00
# date -s “2008-08-08 12:00:00”

修改完后,记得输入:clock -w
把系统时间写入CMOS

用mysqldump对MySQL数据库进行数据备份与恢复

数据库备份是很重要的。如果定期做好备份,这样就可以在发生系统崩溃时恢复数据到最后一次正常的状态,把损失减小到最少。
以前在FREEBSD系统里面都先把MYSQL停掉,然后直接用tar命令直接把数据库文件打包,下载到本地。如果要恢复数据库,也是直接上传,用tar解压,然后设置下权限就可以用了。

现在在windows下,本来用PHPmyadmin管理数据库是很好,但是本地的服务器,死活连不上数据库,新版的2.11的我都不知道怎么配置,汗死!用MySQL Control Center 等客户端软件也不行,晕死了! 无奈,只好用mysqldump 来备份了!

因为没有好好的准备 ,以为mysqldump 是 MYSQL解析器里面的命令-_-!! 死活运行不起来。
使用了之后,才发现。。原来,MYSQL的备份可以这么美的。哈哈。。(渐远!)

好了,收集了一些mysqldump命令的语法,先学学!

用mysqldump对MySQL数据库进行数据备份与恢复

MySQLl提供了一个mysqldump命令,我们可以用它进行数据备份,下面假设要备份yejihao_agent这个数据库:

#mysqldump -u root -p yejihao_agent > yejihao_agent.sql

按提示输入密码,这就把yejihao_agent数据库所有的表结构和数据备份到yejihao_agent.sql了,因为要总进行备份工作,如果数据量大会占用很大空间,这时可以利用gzip压缩数据,命令如下:

#mysqldump -u root -p yejihao_agent | gzip > yejihao_agent.sql.gz

系统崩溃,重建系统时,可以这样恢复数据:

#mysql -u root -p yejihao_agent < yejihao_agent.sql

从压缩文件直接恢复:

#gzip < yejihao_agent.sql.gz | mysql -u root -p yejihao_agent

/*************************************/
命令解释
/************************************/

导出要用到MySQL的mysqldump工具,基本用法是:

shell> mysqldump [OPTIONS] database [tables]

如果你不给定任何表,整个数据库将被导出。

通过执行mysqldump –help,你能得到你mysqldump的版本支持的选项表。

注意,如果你运行mysqldump没有–quick或–opt选项,mysqldump将在导出结果前装载整个结果集到内存中,如果你正在导出一个大的数据库,这将可能是一个问题。

mysqldump支持下列选项:

–add-locks
在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE。(为了使得更快地插入到MySQL)。
–add-drop-table
在每个create语句之前增加一个drop table。
–allow-keywords
允许创建是关键词的列名字。这由表名前缀于每个列名做到。
-c, –complete-insert
使用完整的insert语句(用列名字)。
-C, –compress
如果客户和服务器均支持压缩,压缩两者间所有的信息。
–delayed
用INSERT DELAYED命令插入行。
-e, –extended-insert
使用全新多行INSERT语法。(给出更紧缩并且更快的插入语句)
-#, –debug[=option_string]
跟踪程序的使用(为了调试)。
–help
显示一条帮助消息并且退出。
–fields-terminated-by=…

–fields-enclosed-by=…

–fields-optionally-enclosed-by=…

–fields-escaped-by=…

–fields-terminated-by=…
这些选择与-T选择一起使用,并且有相应的LOAD DATA INFILE子句相同的含义。
LOAD DATA INFILE语法。
-F, –flush-logs
在开始导出前,洗掉在MySQL服务器中的日志文件。
-f, –force,
即使我们在一个表导出期间得到一个SQL错误,继续。
-h, –host=..
从命名的主机上的MySQL服务器导出数据。缺省主机是localhost。
-l, –lock-tables.
为开始导出锁定所有表。
-t, –no-create-info
不写入表创建信息(CREATE TABLE语句)
-d, –no-data
不写入表的任何行信息。如果你只想得到一个表的结构的导出,这是很有用的!
–opt
同–quick –add-drop-table –add-locks –extended-insert –lock-tables。
应该给你为读入一个MySQL服务器的尽可能最快的导出。
-pyour_pass, –password[=your_pass]
与服务器连接时使用的口令。如果你不指定“=your_pass”部分,mysqldump需要来自终端的口令。
-P port_num, –port=port_num
与一台主机连接时使用的TCP/IP端口号。(这用于连接到localhost以外的主机,因为它使用 Unix套接字。)
-q, –quick
不缓冲查询,直接导出至stdout;使用mysql_use_result()做它。
-S /path/to/socket, –socket=/path/to/socket
与localhost连接时(它是缺省主机)使用的套接字文件。
-T, –tab=path-to-some-directory
对于每个给定的表,创建一个table_name.sql文件,它包含SQL CREATE 命令,和一个table_name.txt文件,它包含数据。 注意:这只有在mysqldump运行在mysqld守护进程运行的同一台机器上的时候才工作。.txt文件的格式根据–fields-xxx和 –lines–xxx选项来定。
-u user_name, –user=user_name
与服务器连接时,MySQL使用的用户名。缺省值是你的Unix登录名。
-O var=option, –set-variable var=option设置一个变量的值。可能的变量被列在下面。
-v, –verbose
冗长模式。打印出程序所做的更多的信息。
-V, –version
打印版本信息并且退出。
-w, –where=’where-condition’
只导出被选择了的记录;注意引号是强制的!
“–where=user=’jimf'” “-wuserid>1” “-wuserid<1”

最常见的mysqldump使用可能制作整个数据库的一个备份:

mysqldump –opt database > backup-file.sql

但是它对用来自于一个数据库的信息充实另外一个MySQL数据库也是有用的:

mysqldump –opt database | mysql –host=remote-host -C database

由于mysqldump导出的是完整的SQL语句,所以用mysql客户程序很容易就能把数据导入了:

shell> mysqladmin create target_db_name
shell> mysql target_db_name < backup-file.sql
就是
shell> mysql 库名 < 文件名

svn同步更新站点

svn对应工程hookds/post-commit里添加:

svn update –username 用户 –password 密码 站点目录

(例如:svn update –username wulibing –password 123456 /data/sites/php-open.org)

如果出现编码的问题,在之前加入:

#根据自己的设置

export LANG=”zh_CN.UTF-8″

修改linux下ssh服务端口办法

其实好简单,就是修改/etc/ssh/sshd_config文件,找到一段
#Port 22
#Protocol 2,1
#ListenAddress 0.0.0.0
#ListenAddress ::


#Port 22
修改为
Port 8001

然后重新启动一下sshd服务
#/etc/rc.d/init.d/sshd restart
就可以了。

客户端设置的时候,端口输入8001。

error while loading shared libraries: libpcre.so.0: cannot open shared object file: No such file or directory

今天帮朋友配置ubuntu,安装配置完成后,启动nginx时,出现错误:error while loading shared libraries: libpcre.so.0: cannot open shared object file: No such file or directory

解决经查询原来很简单:

执行一下:ln -s /usr/local/lib/libpcre.so.0 /usr/lib/libpcre.so.0

哈哈

远程连接mysql速度慢的解决方法

PHP远程连接MYSQL速度慢,有时远程连接到MYSQL用时4-20秒不等,本地连接MYSQL正常,出现这种问题的主要原因是,默认安装的MYSQL开启了DNS的反向解析,在MY.INI(WINDOWS系统下)或MY.CNF(UNIX或LINUX系统下)文件的[mysqld]下加入skip-name-resolve这一句。连接mysql速度慢的解决方法.

2台服务器,一台跑iis+php,一台跑mysql,和以往一样配置好环境,测试页面一切OK

应用的 时候发现php访问mysql速度很慢,这种情况在以前从未发现过,虽然2台服务器并非在同一网段中,但是ping数值基本上都在1,2ms之间,tcp 连接应该不是问题关健,google以后找到答案,在my.ini文件的[mysqld]部分加入:skip-name-resolve,保存文件,重启 mysql,一切OK啦,速度象飞一样了

新版本的mysql配置起来不象以前的那个傻瓜化了,这个问题折腾了我一上午的时间,晚上回来总算是解决了,嘿嘿,又学到一些东西。

Windows 2003下的MySQL 5服务器,本机连接到MySQL服务非常快,局域网内有两台Linux机器,有一台连接很快,另外一台输入密码后要等好几秒钟才能连上。

解决办法:

在MySQL服务器的配置中增加一个如下配置后速度飞快。

[mysqld]
skip-name-resolve

附录:( How MySQL uses DNS )

When a new thread connects to mysqld, mysqld will spawn a new thread to handle the request. This thread will first check if the hostname is in the hostname cache. If not the thread will call gethostbyaddr_r() and gethostbyname_r() to resolve the hostname.

If the operating system doesn’t support the above thread-safe calls, the thread will lock a mutex and call gethostbyaddr() and gethostbyname() instead. Note that in this case no other thread can resolve other hostnames that is not in the hostname cache until the first thread is ready.

You can disable DNS host lookup by starting mysqld with –skip-name-resolve. In this case you can however only use IP names in the MySQL privilege tables.

If you have a very slow DNS and many hosts, you can get more performance by either disabling DNS lookop with –skip-name-resolve or by increasing the HOST_CACHE_SIZE define (default: 128) and recompile mysqld.

You can disable the hostname cache with –skip-host-cache. You can clear the hostname cache with FLUSH HOSTS or mysqladmin flush-hosts.

If you don’t want to allow connections over TCP/IP, you can do this by starting mysqld with –skip-networking.

PHP 远程连接MYSQL速度慢,有时远程连接到MYSQL用时4-20秒不等,本地连接MYSQL正常,出现这种问题的主要原因是,默认安装的MYSQL开启 了DNS的反向解析,在MY.INI(WINDOWS系统下)或MY.CNF(UNIX或LINUX系统下)文件的[mysqld]下加入skip- name-resolve这一句。

MYSQL远程连接速度慢的解决方法
在局域网内连接其他机器的MYSQL,发现速度慢的很,不知道什么原因,总有几秒的延迟.

后来在网上发现解决方法,my.ini里面添加

[mysqld]
skip-name-resolve
skip-grant-tables

这样速度就快了!

skip-name-resolve

选项就能禁用DNS解析,连接速度会快很多。不过,这样的话就不能在MySQL的授权表中使用主机名了而只能用ip格式。

若使用–skip-grant-tables系统将对任何用户的访问不做任何访问控制,但可以用 mysqladmin flush-privileges或mysqladmin reload来开启访问控制;默认情况是show databases语句对所有用户开放,

如果mysql服务器没有开远程帐户,就在my.ini里面加上skip-grant-tables

linux转换分区格式

好久不用windows ,留着FAT32 真是没什么用。为避免中文乱码及azureus-error中提到的那个恶心的错误,我一直计划着把FAT32 转成ext3.

最初,我硬盘里共有三个FAT32 分区。由于都有内容,只能慢慢整理,慢慢转换。由于概念不清,基础知识不扎实等,走了很多弯路。

第一次转换

最初我是想能不能无损数据完成转换的,但没有找到相关资料。就想到了下面的方法:

用fdisk删除一个分区,然后再新建一个分区; 重启(fdisk提示说重启后才生效);

mkfs;

修改/etc/fstab;

mount -a;

可是实践时,出了大麻烦。执行完第一步后,机器已经起不来了,搞了半天才知道,第一步已经改变了分区表,hdaX的X很多都变了。于是用live-CD启动,上网找了一堆资料,终于在RecoveringUbuntuAfterInstalling指导下搞定了。

第二次转换,也就是今天,我刚刚做的。

umount /dev/hdaxx

用fdisk的t命令改变分区格式,改成83();

重启;

用mkfs.ext3 /dev/hdax或mkfs -t ext3 /dev/hda建立新的文件系统;

修改/etc/fstab;

mount -a;

成功了,但却无法往分区上写东西。

重启后就可以写了。

总结

要注意区别分区和文件系统,用fdisk只是为了改变分区格式,用mkfs才是建立我们熟悉的vfat,ext2,ext3等文件系统。第一次做lfs时,我忘了改变分区格式,结果无论如何都启动不了lfs,重做了几遍,还好有备份。