<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>LinuxSense &#187; web构架</title>
	<atom:link href="http://www.linuxsense.org/archives/category/web%e6%9e%84%e6%9e%b6/feed" rel="self" type="application/rss+xml" />
	<link>http://www.linuxsense.org</link>
	<description>分享Linux技术的点点滴滴</description>
	<lastBuildDate>Sat, 01 Aug 2009 05:23:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
		<item>
		<title>简单了解下MySQL的各种存储引擎</title>
		<link>http://www.linuxsense.org/archives/9214.html</link>
		<comments>http://www.linuxsense.org/archives/9214.html#comments</comments>
		<pubDate>Thu, 05 Mar 2009 00:57:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[web构架]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[存储引擎]]></category>

		<guid isPermaLink="false">http://www.linuxsense.org/?p=9214</guid>
		<description><![CDATA[MySQL有多种存储引擎，每种存储引擎有各自的优缺点，同学们可以择优选择使用： MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。 MySQL支持数个存储引擎作为对不同表的类型的处理器。MySQL存储引擎包括处理事务安全表的引擎和处理非事务安全表的引擎： · MyISAM管理非事务表。它提供高速存储和检索，以及全文搜索能力。MyISAM在所有MySQL配置里被支持，它是默认的存储引擎，除非你配置MySQL默认使用另外一个引擎。 · MEMORY存储引擎提供“内存中”表。MERGE存储引擎允许集合将被处理同样的MyISAM表作为一个单独的表。就像MyISAM一样，MEMORY和MERGE存储引擎处理非事务表，这两个引擎也都被默认包含在MySQL中。 注释：MEMORY存储引擎正式地被确定为HEAP引擎。 · InnoDB和BDB存储引擎提供事务安全表。BDB被包含在为支持它的操作系统发布的MySQL-Max二进制分发版里。InnoDB也默认被包括在所 有MySQL 5.1二进制分发版里，你可以按照喜好通过配置MySQL来允许或禁止任一引擎。 · EXAMPLE存储引擎是一个“存根”引擎，它不做什么。你可以用这个引擎创建表，但没有数据被存储于其中或从其中检索。这个引擎的目的是服务，在 MySQL源代码中的一个例子，它演示说明如何开始编写新存储引擎。同样，它的主要兴趣是对开发者。 · NDB Cluster是被MySQL Cluster用来实现分割到多台计算机上的表的存储引擎。它在MySQL-Max 5.1二进制分发版里提供。这个存储引擎当前只被Linux, Solaris, 和Mac OS X 支持。在未来的MySQL分发版中，我们想要添加其它平台对这个引擎的支持，包括Windows。 · ARCHIVE存储引擎被用来无索引地，非常小地覆盖存储的大量数据。 · CSV存储引擎把数据以逗号分隔的格式存储在文本文件中。 · BLACKHOLE存储引擎接受但不存储数据，并且检索总是返回一个空集。 · FEDERATED存储引擎把数据存在远程数据库中。在MySQL 5.1中，它只和MySQL一起工作，使用MySQL C Client API。在未来的分发版中，我们想要让它使用其它驱动器或客户端连接方法连接到另外的数据源。 当你创建一个新表的时候，你可以通过添加一个ENGINE 或TYPE 选项到CREATE TABLE语句来告诉MySQL你要创建什么类型的表： CREATE TABLE t (i INT) ENGINE = INNODB; CREATE TABLE t (i INT) TYPE [...]]]></description>
			<content:encoded><![CDATA[<p>MySQL有多种存储引擎，每种存储引擎有各自的优缺点，同学们可以择优选择使用：</p>
<p>MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。</p>
<p>MySQL支持数个存储引擎作为对不同表的类型的处理器。MySQL存储引擎包括处理事务安全表的引擎和处理非事务安全表的引擎：</p>
<p>· MyISAM管理非事务表。它提供高速存储和检索，以及全文搜索能力。MyISAM在所有MySQL配置里被支持，它是默认的存储引擎，除非你配置MySQL默认使用另外一个引擎。</p>
<p>· MEMORY存储引擎提供“内存中”表。MERGE存储引擎允许集合将被处理同样的MyISAM表作为一个单独的表。就像MyISAM一样，MEMORY和MERGE存储引擎处理非事务表，这两个引擎也都被默认包含在MySQL中。</p>
<p>注释：MEMORY存储引擎正式地被确定为HEAP引擎。</p>
<p>· InnoDB和BDB存储引擎提供事务安全表。BDB被包含在为支持它的操作系统发布的MySQL-Max二进制分发版里。InnoDB也默认被包括在所 有MySQL 5.1二进制分发版里，你可以按照喜好通过配置MySQL来允许或禁止任一引擎。</p>
<p><span id="more-9214"></span><br />
· EXAMPLE存储引擎是一个“存根”引擎，它不做什么。你可以用这个引擎创建表，但没有数据被存储于其中或从其中检索。这个引擎的目的是服务，在 MySQL源代码中的一个例子，它演示说明如何开始编写新存储引擎。同样，它的主要兴趣是对开发者。</p>
<p>· NDB Cluster是被MySQL Cluster用来实现分割到多台计算机上的表的存储引擎。它在MySQL-Max 5.1二进制分发版里提供。这个存储引擎当前只被Linux, Solaris, 和Mac OS X 支持。在未来的MySQL分发版中，我们想要添加其它平台对这个引擎的支持，包括Windows。</p>
<p>· ARCHIVE存储引擎被用来无索引地，非常小地覆盖存储的大量数据。</p>
<p>· CSV存储引擎把数据以逗号分隔的格式存储在文本文件中。</p>
<p>· BLACKHOLE存储引擎接受但不存储数据，并且检索总是返回一个空集。</p>
<p>· FEDERATED存储引擎把数据存在远程数据库中。在MySQL 5.1中，它只和MySQL一起工作，使用MySQL C Client API。在未来的分发版中，我们想要让它使用其它驱动器或客户端连接方法连接到另外的数据源。</p>
<p>当你创建一个新表的时候，你可以通过添加一个ENGINE 或TYPE 选项到CREATE TABLE语句来告诉MySQL你要创建什么类型的表：</p>
<p>CREATE TABLE t (i INT) ENGINE = INNODB;</p>
<p>CREATE TABLE t (i INT) TYPE = MEMORY;</p>
<p>虽然TYPE仍然在MySQL 5.1中被支持，现在ENGINE是首选的术语。</p>
<p>如何选择最适合你的存储引擎呢？</p>
<p>下述存储引擎是最常用的：</p>
<p>· MyISAM：默认的MySQL插件式存储引擎，它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。注意，通过更改STORAGE_ENGINE配置变量，能够方便地更改MySQL服务器的默认存储引擎。</p>
<p>· InnoDB：用于事务处理应用程序，具有众多特性，包括ACID事务支持。</p>
<p>· BDB：可替代InnoDB的事务引擎，支持COMMIT、ROLLBACK和其他事务特性。</p>
<p>· Memory：将所有数据保存在RAM中，在需要快速查找引用和其他类似数据的环境下，可提供极快的访问。</p>
<p>· Merge：允许MySQL DBA或开发人员将一系列等同的MyISAM表以逻辑方式组合在一起，并作为1个对象引用它们。对于诸如数据仓储等VLDB环境十分适合。</p>
<p>· Archive：为大量很少引用的历史、归档、或安全审计信息的存储和检索提供了完美的解决方案。</p>
<p>· Federated：能够将多个分离的MySQL服务器链接起来，从多个物理服务器创建一个逻辑数据库。十分适合于分布式环境或数据集市环境。</p>
<p>· Cluster/NDB：MySQL的簇式数据库引擎，尤其适合于具有高性能查找要求的应用程序，这类查找需求还要求具有最高的正常工作时间和可用性。</p>
<p>· Other：其他存储引擎包括CSV（引用由逗号隔开的用作数据库表的文件），Blackhole（用于临时禁止对数据库的应用程序输入），以及Example引擎（可为快速创建定制的插件式存储引擎提供帮助）。</p>
<p>请记住，对于整个服务器或方案，你并不一定要使用相同的存储引擎，你可以为方案中的每个表使用不同的存储引擎，这点很重要。<br />
<span style="font-size:10px;"><br />
mysql&gt; show engines;<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</span><span style="font-size:9px;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</span><span style="font-size:9px;">&#8212;&#8212;</span><span style="font-size:9px;">&#8212;</span><span style="font-size:9px;">&#8212;</span><span style="font-size:9px;">&#8212;</span><span style="font-size:9px;">&#8212;&#8212;</span><span style="font-size:9px;">&#8212;&#8212;&#8211;+<br />
| Engine                    | Support    | Comment </span><span style="font-size:9px;"> </span><span style="font-size:9px;"> </span><span style="font-size:9px;"> |<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</span><span style="font-size:9px;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</span><span style="font-size:9px;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+<br />
| MyISAM                | DEFAULT | Default engine as of MySQL 3.23 with great performance              |<br />
| MEMORY             | YES              | Hash based, stored in memory, useful for temporary tables       |<br />
| InnoDB                  | YES              | Supports transactions, row-level locking, and foreign keys         |<br />
| BerkeleyDB         | NO                | Supports transactions and page-level locking                                    |<br />
| BLACKHOLE        | NO                | /dev/null storage engine (anything you write to it disappears) |<br />
| EXAMPLE             | NO                | Example storage engine                                                                                |<br />
| ARCHIVE             | NO               | Archive storage engine                                                                                  |<br />
| CSV                         | NO               | CSV storage engine                                                                                          |<br />
| ndbcluster           | NO               | Clustered, fault-tolerant, memory-based tables                                |<br />
| FEDERATED        | NO                | Federated MySQL storage engine                                                             |<br />
| MRG_MYISAM  | YES             | Collection of identical MyISAM tables                                                   |<br />
| ISAM                      | NO               | Obsolete storage engine                                                                                |<br />
+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+<br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxsense.org/archives/9214.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>vsftp 服务器虚拟用户配置(without mysql)</title>
		<link>http://www.linuxsense.org/archives/417.html</link>
		<comments>http://www.linuxsense.org/archives/417.html#comments</comments>
		<pubDate>Fri, 21 Nov 2008 01:29:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[web构架]]></category>
		<category><![CDATA[vsftp]]></category>

		<guid isPermaLink="false">http://www.linuxsense.org/?p=417</guid>
		<description><![CDATA[直接进入正题, 我比较习惯用vsftp, 设置相对简单些吧. 原文地址：http://www.hao32.com/webserver/279.html 系统环境是: CentOS 5.2 x86_64 FTP服务端:vsftpd 本文简单说明服务器虚拟用户配置情况 不编译安装了, 用最简洁的方式, 直接: # 通过yum直接在线装vsftpd(rpm版本) yum -y install vsftpd # 创建系统用户的列表, 一行一个 touch /etc/vsftpd/vsftpd.chroot_list # 创建vsftp的日志文件 touch /var/log/vsftpd.log # 创建虚拟用户的配置文件路径目录 mkdir /etc/vsftpd/user_config # 创建vsftp的系统用户 (假设站点目录在/www/wwwroot/ftpd) useradd ftpd -d /www/wwwroot/ftpd -s /sbin/nologin   # 把vsftp的系统用户写入vsftpd.chroot_list echo &#8216;ftpd&#8217; &#62;&#62; /etc/vsftpd/vsftpd.chroot_list # 准备工作, 创建passwd.txt, 单行为用户名, 双行为密码 touch /etc/vsftpd/passwd.txt [...]]]></description>
			<content:encoded><![CDATA[<p>直接进入正题, 我比较习惯用vsftp, 设置相对简单些吧.<br />
原文地址：<a href="http://www.hao32.com/webserver/279.html">http://www.hao32.com/webserver/279.html</a><br />
系统环境是: CentOS 5.2 x86_64<br />
FTP服务端:vsftpd 本文简单说明服务器虚拟用户配置情况<br />
不编译安装了, 用最简洁的方式, 直接:<br />
# 通过yum直接在线装vsftpd(rpm版本)<br />
yum -y install vsftpd</p>
<p><span id="more-417"></span><br />
# 创建系统用户的列表, 一行一个<br />
touch /etc/vsftpd/vsftpd.chroot_list<br />
# 创建vsftp的日志文件<br />
touch /var/log/vsftpd.log<br />
# 创建虚拟用户的配置文件路径目录<br />
mkdir /etc/vsftpd/user_config<br />
# 创建vsftp的系统用户 (假设站点目录在/www/wwwroot/ftpd)<br />
useradd ftpd -d /www/wwwroot/ftpd -s /sbin/nologin<br />
 <br />
# 把vsftp的系统用户写入vsftpd.chroot_list<br />
echo &#8216;ftpd&#8217; &gt;&gt; /etc/vsftpd/vsftpd.chroot_list<br />
# 准备工作, 创建passwd.txt, 单行为用户名, 双行为密码<br />
touch /etc/vsftpd/passwd.txt<br />
内容例如:</p>
<blockquote><p>ftp1<br />
123456<br />
ftp2<br />
456789</p></blockquote>
<p># 创建虚拟用户密码认证的数据库文件<br />
db_load -T -t hash -f passwd.txt /etc/vsftpd/user_passwd.db<br />
# 如果提示找不到db_load, 则安装下列包, 如果正常则跳过本步骤<br />
yum -y install db4 db4-tcl db4-utils<br />
# 直接编辑认证文件<br />
vi /etc/pam.d/vsftpd<br />
# 清空里面的内容或者都注释掉(最前面加#), 添加下面两行</p>
<blockquote><p>auth       required     pam_userdb.so db=/etc/vsftpd/user_passwd<br />
account    required     pam_userdb.so db=/etc/vsftpd/user_passwd</p></blockquote>
<p># 编辑vsftp的配置文件<br />
vi /etc/vsftpd/vsftpd.conf<br />
# 添加如下内容 (不一一说明)</p>
<blockquote><p>listen=YES<br />
background=YES<br />
anonymous_enable=NO<br />
local_enable=YES<br />
write_enable=YES<br />
local_umask=022<br />
anon_upload_enable=NO<br />
anon_mkdir_write_enable=NO<br />
dirmessage_enable=YES<br />
xferlog_enable=YES<br />
connect_from_port_20=YES<br />
chown_uploads=NO<br />
xferlog_file=/var/log/vsftpd.log   # 日志文件路径, 前面有说到<br />
xferlog_std_format=YES<br />
async_abor_enable=YES<br />
ascii_upload_enable=YES<br />
ascii_download_enable=YES<br />
ftpd_banner=Welcome to hao32 FTP servers   # 登陆后欢迎语, 可以自定义<br />
pam_service_name=vsftpd   # 认证文件名, 在位置/etc/pam.d/vsftpd<br />
chroot_local_user=NO<br />
chroot_list_enable=YES<br />
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list   # vsftp系统用户列表, 前面有说到<br />
guest_enable=YES   # 允许虚拟用户<br />
guest_username=ftpd   # vsftp的系统用户, 前面有说到<br />
user_config_dir=/etc/vsftpd/user_config   # vsftp的虚拟用户的配置文件目录, 前面有说到</p></blockquote>
<p># 为每个虚拟用户创建配置文件<br />
vi /etc/vsftpd/user_config/ftp1<br />
# 添加如下内容</p>
<blockquote><p>local_root=/www/wwwroot/ftpd/ftp1<br />
write_enable=YES<br />
anon_world_readable_only=NO<br />
anon_upload_enable=YES<br />
anon_mkdir_write_enable=YES<br />
anon_other_write_enable=YES</p></blockquote>
<p># 同样的方法建立ftp2, 如果用户多的话, 写入/etc/vsftpd/passwd.txt来生成密码认证的数据库文件, 前面有说到<br />
# 启动vsftp服务器<br />
service vsftpd start<br />
# 验证登陆<br />
主机名: 您服务器的ip地址<br />
用户:ftp1/123456<br />
用户:ftp2/456789<br />
# 一般没有意外就会一切okay, 有意外请在<a href="http://www.hao32.com/">本站</a>留言!<br />
# 说明: /www/wwwroot/ftpd目录的所有文件用户属组都是ftpd, 使用虚拟用户上传的文件用户属组也都是ftpd<br />
# 目的就是为了处理多用户安全的情况, 一个虚拟用户无法跳到同组其他用户下<br />
# good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxsense.org/archives/417.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>解决checking for gnutls support in libcurl&#8230; no的问题</title>
		<link>http://www.linuxsense.org/archives/415.html</link>
		<comments>http://www.linuxsense.org/archives/415.html#comments</comments>
		<pubDate>Sat, 15 Nov 2008 08:06:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[web构架]]></category>

		<guid isPermaLink="false">http://www.linuxsense.org/?p=415</guid>
		<description><![CDATA[64位的系统给php添加curl的时候,cd /usr/local/src/php-5.2.6/ext/curl//usr/local/php-fcgi/bin/phpize./configure &#8211;with-php-config=/usr/local/php-fcgi/bin/php-config居然出现一下错误!checking for gnutls support in libcurl&#8230; nochecking for curl_easy_perform in -lcurl&#8230; noconfigure: error: There is something wrong. Please check config.log for more information. 我赶紧检查有没有装curl的develrpm -qa &#124;grep curl全都有!查了半天资料, 还是找到结果了, 只要以下包都安装了, 就可以完美通过!curl-devel-7.15.5-2.el5e2fsprogs-devel-1.39-15.el5krb5-devel-1.6.1-25.el5libidn-devel-0.6.5-1.1openssl-devel-0.9.8b-10.el5至于每个包的作用, 自己去查吧! 呵呵]]></description>
			<content:encoded><![CDATA[<p><P>64位的系统给php添加curl的时候,<BR>cd /usr/local/src/php-5.2.6/ext/curl/<BR>/usr/local/php-fcgi/bin/phpize<BR>./configure &#8211;with-php-config=/usr/local/php-fcgi/bin/php-config<BR>居然出现一下错误!<BR>checking for gnutls support in libcurl&#8230; no<BR>checking for curl_easy_perform in -lcurl&#8230; no<BR>configure: error: There is something wrong. Please check config.log for more information.</P><br />
<P>我赶紧检查有没有装curl的devel<BR>rpm -qa |grep curl<BR><SPAN id=more-264></SPAN><BR>全都有!<BR>查了半天资料, 还是找到结果了, 只要以下包都安装了, 就可以完美通过!<BR>curl-devel-7.15.5-2.el5<BR>e2fsprogs-devel-1.39-15.el5<BR>krb5-devel-1.6.1-25.el5<BR>libidn-devel-0.6.5-1.1<BR>openssl-devel-0.9.8b-10.el5<BR>至于每个包的作用, 自己去查吧! 呵呵</P></p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxsense.org/archives/415.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>解决/usr/bin/ld: cannot find -lmysqlclient错误</title>
		<link>http://www.linuxsense.org/archives/410.html</link>
		<comments>http://www.linuxsense.org/archives/410.html#comments</comments>
		<pubDate>Tue, 28 Oct 2008 06:35:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[web构架]]></category>
		<category><![CDATA[lmysqlclient]]></category>

		<guid isPermaLink="false">http://www.linuxsense.org/?p=410</guid>
		<description><![CDATA[类似/usr/bin/ld: cannot find -xxxx的错误有很多, 首先我们可以最简单的判断一下: 这类情况一般是由于缺乏某某库文件, 又或者可能是由于已存在的库问题版本不对造成的 一般都是解决的办法就是安装缺乏的devel包就可以解决, 当然还有其他的未知因素, 我们看一个实例: 我在一台装centos5.2 x86_64的系统上配置php环境, 提示这个错误 &#8220;/usr/bin/ld: cannot find -lmysqlclient&#8221; 于是我安装了 #&#160; yum -y install mysql-devel 结果提示依旧, 我根据提示查看config.log &#160;&#160;&#160; /usr/bin/ld: skipping incompatible /usr/local/mysql/lib/libmysqlclient.so when searching for -lmysqlclient&#160;&#160;&#160; /usr/bin/ld: skipping incompatible /usr/local/mysql/lib/libmysqlclient.a when searching for -lmysqlclient&#160;&#160;&#160; /usr/bin/ld: cannot find -lmysqlclient 她还是去找/usr/local/mysql/lib/libmysqlclient.so, 我来把这个错的换成对了, 刚才装了mysql-devel, 那么在/usr/lib64下就多了一个mysql的目录 # cd /usr/local/mysql# mv lib [...]]]></description>
			<content:encoded><![CDATA[<p>类似/usr/bin/ld: cannot find -xxxx的错误有很多, 首先我们可以最简单的判断一下:</p>
<p>这类情况一般是由于缺乏某某库文件, 又或者可能是由于已存在的库问题版本不对造成的</p>
<p>一般都是解决的办法就是安装缺乏的devel包就可以解决, 当然还有其他的未知因素, 我们看一个实例:</p>
<p>我在一台装centos5.2 x86_64的系统上配置php环境, 提示这个错误</p>
<p>&#8220;/usr/bin/ld: cannot find -lmysqlclient&#8221;</p>
<p>于是我安装了</p>
<p>#&nbsp; yum -y install mysql-devel</p>
<p>结果提示依旧, 我根据提示查看config.log</p>
<p>&nbsp;&nbsp;&nbsp; /usr/bin/ld: skipping incompatible /usr/local/mysql/lib/libmysqlclient.so when searching for -lmysqlclient<br />&nbsp;&nbsp;&nbsp; /usr/bin/ld: skipping incompatible /usr/local/mysql/lib/libmysqlclient.a when searching for -lmysqlclient<br />&nbsp;&nbsp;&nbsp; /usr/bin/ld: cannot find -lmysqlclient</p>
<p>她还是去找/usr/local/mysql/lib/libmysqlclient.so, 我来把这个错的换成对了, 刚才装了mysql-devel, 那么在/usr/lib64下就多了一个mysql的目录</p>
<p># cd /usr/local/mysql<br /># mv lib lib.bak<br /># ln -s /usr/lib64/mysql /usr/local/mysql/lib (给他做个软链接)</p>
<p>然后再次编译安装php, 一切正常!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxsense.org/archives/410.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysqladmin: 用于管理MySQL服务器的客户端</title>
		<link>http://www.linuxsense.org/archives/408.html</link>
		<comments>http://www.linuxsense.org/archives/408.html#comments</comments>
		<pubDate>Sat, 18 Oct 2008 10:28:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux教程]]></category>
		<category><![CDATA[web构架]]></category>

		<guid isPermaLink="false">http://www.linuxsense.org/?p=408</guid>
		<description><![CDATA[目前mysql可以说是大行其道, 而mysqladmin作为管理MySQL服务器的客户端, 使用他来管理mysql, 以及观测mysql的状态, 显得尤为有用, 本文就详述mysqladmin的使用方法 mysqladmin：用于管理MySQL服务器的客户端 mysqladmin是一个执行管理操作的客户程序。可以用它来检查服务器的配置和当前的状态，创建并删除数据库等等。 这样调用mysqladmin：shell&#62; mysqladmin [options] command [command-options] [command [command-options]] &#8230; mysqladmin支持下面的命令： ·&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; create db_name 创建一个名为db_name的新数据库。 ·&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; debug 告诉服务器向错误日志写入调试信息。 ·&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; drop db_name 删除名为db_nam的数据库和所有表。 ·&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; extended-status 显示服务器状态变量及其值。 ·&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; flush-hosts 刷新主机缓存中的所有信息。 ·&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; flush-logs 刷新所有日志。 ·&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; flush-privileges 重载授权表(类似reload)。 ·&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; flush-status 清除状态变量。 ·&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; flush-tables 刷新所有表。 ·&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; flush-threads 刷新线程缓存。 ·&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; kill id,id,&#8230; 杀掉服务器线程。 ·&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; old-password [...]]]></description>
			<content:encoded><![CDATA[<p><P>目前mysql可以说是大行其道, 而mysqladmin作为管理MySQL服务器的客户端, 使用他来管理mysql, 以及观测mysql的状态, 显得尤为有用, 本文就详述mysqladmin的使用方法</P><br />
<P>mysqladmin：用于管理MySQL服务器的客户端</P><br />
<P><STRONG><SPAN>mysqladmin</SPAN></STRONG>是一个执行管理操作的客户程序。可以用它来检查服务器的配置和当前的状态，创建并删除数据库等等。</P><br />
<P>这样调用<STRONG><SPAN>mysqladmin</SPAN></STRONG>：</P><PRE><SPAN>shell&gt; </SPAN><SPAN><B><SPAN>mysqladmin [<I>options</I>] <I>command</I> [<I>command-options</I>] [<I>command</I> [<I>command-options</I>]] &#8230;</SPAN></B></SPAN></PRE><br />
<P><STRONG><SPAN>mysqladmin</SPAN></STRONG>支持下面的命令：</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>create <I>db_name</I></SPAN></P><br />
<P>创建一个名为<SPAN><I><SPAN>db_name</SPAN></I></SPAN>的新数据库。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>debug</SPAN></P><br />
<P>告诉服务器向错误日志写入调试信息。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>drop <I>db_name</I></SPAN></P><br />
<P>删除名为<SPAN><I><SPAN>db_nam</SPAN></I></SPAN>的数据库和所有表。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>extended-status</SPAN></P><br />
<P>显示服务器状态变量及其值。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>flush-hosts</SPAN></P><br />
<P>刷新主机缓存中的所有信息。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>flush-logs</SPAN></P><br />
<P>刷新所有日志。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>flush-privileges</SPAN></P><br />
<P>重载授权表<SPAN>(</SPAN>类似<SPAN>reload</SPAN><SPAN>)</SPAN>。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>flush-status</SPAN></P><br />
<P>清除状态变量。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>flush-tables</SPAN></P><br />
<P>刷新所有表。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>flush-threads</SPAN></P><br />
<P>刷新线程缓存。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>kill id,id,&#8230;</SPAN></P><br />
<P>杀掉服务器线程。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>old-password <I>new-password</I></SPAN></P><br />
<P>类似<SPAN>password</SPAN>但使用旧的<SPAN>(pre-4.1)</SPAN>密码哈希格式保存 密码。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>password <I>new-password</I></SPAN></P><br />
<P>设置一个新密码。将用<STRONG><SPAN>mysqladmin</SPAN></STRONG>连接服务器使用的 账户的密码更改为<SPAN>new-password</SPAN>。</P><br />
<P>如果<SPAN><I><SPAN>new-password</SPAN></I></SPAN>包含空格或其它命令解释符的特殊字符，需要用引号将它引起来。在<SPAN>Windows</SPAN>中，一定要使用双引号而不要用单引号；单引号不会从 密码中剥离出来，而是解释为密码的一部分。例如：</P><br />
<P><SPAN>shell&gt; mysqladmin password &#8220;my new password&#8221;</SPAN></P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>ping</SPAN></P><br />
<P>检查服务器是否仍活动。如果服务器在运行<STRONG><SPAN>mysqladmin</SPAN></STRONG>返回状态<SPAN>0</SPAN>，如果不运行返回<SPAN>1</SPAN>。即使出现错误例如<SPAN>Access denied</SPAN>也为<SPAN>0</SPAN>，因为这说明服务器在运行但拒绝了连接，与服务器不在运行不同。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>processlist</SPAN></P><br />
<P>显示活动服务器线程的列表。类似<SPAN>SHOW PROCESSLIST</SPAN>语句的输出。如果给出了<SPAN>&#8211;verbose</SPAN>选项，输出类似<SPAN>SHOW FULL PROCESSLIST</SPAN>。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>reload</SPAN></P><br />
<P>重载授权表。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>refresh</SPAN></P><br />
<P>刷新所有表并关闭和打开日志文件。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>shutdown</SPAN></P><br />
<P>停止服务器。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>start-slave</SPAN></P><br />
<P>开始从服务器上的复制。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>status</SPAN></P><br />
<P>显示短服务器状态消息。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>stop-slave</SPAN></P><br />
<P>停止从服务器上的复制。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>variables</SPAN></P><br />
<P>显示服务器系统变量及其值。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>version</SPAN></P><br />
<P>显示服务器的版本信息。</P><br />
<P>所有命令可以简化为任何唯一的前缀。例如：</P><PRE><SPAN>shell&gt; </SPAN><SPAN><B><SPAN>mysqladmin proc stat</SPAN></B></SPAN></PRE><PRE><SPAN>+&#8212;-+&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8211;+&#8212;-+&#8212;&#8212;&#8212;+&#8212;&#8212;+&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+</SPAN></PRE><PRE><SPAN>| Id | User&nbsp; | Host&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | db | Command | Time | State | Info&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|</SPAN></PRE><PRE><SPAN>+&#8212;-+&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8211;+&#8212;-+&#8212;&#8212;&#8212;+&#8212;&#8212;+&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+</SPAN></PRE><PRE><SPAN>| 51 | monty | localhost |&nbsp;&nbsp;&nbsp; | Query&nbsp;&nbsp; | 0&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | show processlist |</SPAN></PRE><PRE><SPAN>+&#8212;-+&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8211;+&#8212;-+&#8212;&#8212;&#8212;+&#8212;&#8212;+&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+</SPAN></PRE><PRE><SPAN>Uptime: 1473624 &nbsp;Threads: 1&nbsp; Questions: 39487&nbsp; </SPAN></PRE><PRE><SPAN>Slow queries: 0&nbsp; Opens: 541&nbsp; Flush tables: 1&nbsp; </SPAN></PRE><PRE><SPAN>Open tables: 19&nbsp; Queries per second avg: 0.0268</SPAN></PRE><PRE><SPAN>&nbsp;</SPAN></PRE><br />
<P><STRONG><SPAN>mysqladmin status</SPAN></STRONG>命令的结果显示下面的值：</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>Uptime</SPAN></P><br />
<P><SPAN>MySQL</SPAN>服务器已经运行的秒数。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>Threads</SPAN></P><br />
<P>活动线程<SPAN>(</SPAN>客户<SPAN>)</SPAN>的数目。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>Questions</SPAN></P><br />
<P>服务器启动以来客户的问题<SPAN>(</SPAN>查询<SPAN>)</SPAN>数目。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>Slow queries</SPAN></P><br />
<P>执行时间超过<SPAN>long_query_time</SPAN>秒的查询的数量。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>Opens</SPAN></P><br />
<P>服务器已经打开的数据库表的数量。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>Flush tables</SPAN></P><br />
<P>服务器已经执行的<SPAN>flush &#8230;</SPAN>、<SPAN>refresh</SPAN>和<SPAN>reload</SPAN>命令的数量。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>Open tables</SPAN></P><br />
<P>目前打开的表的数量。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>Memory in use</SPAN></P><br />
<P><STRONG><SPAN>mysqld</SPAN></STRONG>代码直接分配的内存数量。只有用<SPAN>&#8211;with&#8211;debug=full</SPAN>编译了<SPAN>MySQL</SPAN>该值才显示。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>Maximum memory used</SPAN></P><br />
<P><STRONG><SPAN>mysqld</SPAN></STRONG>代码直接分配的最大内存数量。只有用<SPAN>&#8211;with&#8211;debug=full</SPAN>编译了<SPAN>MySQL</SPAN>该值才显示。</P><br />
<P>如果当使用<SPAN>Unix</SPAN>套接字文件连接本地服务器时执行<STRONG><SPAN>mysqladmin shutdown</SPAN></STRONG>，<STRONG><SPAN>mysqladmin</SPAN></STRONG>将等待直到服务器的进程<SPAN>ID</SPAN>文件被删除，以确保服务器正确停止。</P><br />
<P><STRONG><SPAN>mysqladmin</SPAN></STRONG>支持下面的选项：</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>&#8212;help</SPAN>，<SPAN><SPAN>-</SPAN><SPAN>？</SPAN></SPAN></P><br />
<P>显示帮助消息并退出。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>&#8211;character-sets-dir=<I>path</I></SPAN></P><br />
<P>字符集的安装目录。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>&#8211;compress</SPAN>，<SPAN>-C</SPAN></P><br />
<P>压缩客户和服务器之间发送的所有信息（如果二者均支持压缩）。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>&#8211;count=<I>num</I></SPAN>，<SPAN>-c <I>num</I></SPAN></P><br />
<P>迭代数目。该选项只有结合<SPAN>&#8211;sleep</SPAN><SPAN> (</SPAN><SPAN>-i</SPAN><SPAN>)</SPAN>才能工作。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>&#8212;debug[=<I>debug_options</I>]</SPAN>，<SPAN>-# [<I>debug_options</I>]</SPAN></P><br />
<P>写调试日志。<SPAN><I><SPAN>debug_options</SPAN></I></SPAN>字符串通常为<SPAN>&#8216;d:t:o,<I>file_name</I>&#8216;</SPAN>。 默认为<SPAN>&#8216;d:t:o,/tmp/mysqladmin.trace&#8217;</SPAN>。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>&#8211;default-character-set=<I>charset</I></SPAN></P><br />
<P>使用<SPAN><I><SPAN>charset</SPAN></I></SPAN><SPAN>as</SPAN>作为默认字符集。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>&#8211;force</SPAN>，<SPAN>-f</SPAN></P><br />
<P>不再为<SPAN>drop database</SPAN>命令进行确认。对于多个命令，即使出现错误也继续。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>&#8211;host=<I>host_name</I></SPAN>，<SPAN>-h <I>host_name</I></SPAN></P><br />
<P>连接给定主机上的<SPAN>MySQL</SPAN>服务器。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>&#8211;password[=<I>password</I>]</SPAN>，<SPAN>-p[<I>password</I>]</SPAN></P><br />
<P>连接服务器使用的密码。如果使用短选项形式<SPAN>(</SPAN><SPAN>-p</SPAN><SPAN>)</SPAN>，该选项和 密码之间<EM><SPAN>不能</SPAN></EM>有空格。如果你在命令行中在<SPAN>&#8211;password</SPAN>或<SPAN>-p</SPAN>选项后面省略 密码值，将提示你输入密码。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>&#8211;port=<I>port_num</I></SPAN>，<SPAN>-P<I> port_num</I></SPAN></P><br />
<P>用于连接的<SPAN>TCP/IP</SPAN>端口号。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>&#8211;protocol={TCP | SOCKET | PIPE | MEMORY}</SPAN></P><br />
<P>使用的连接协议。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>&#8211;relative</SPAN>，<SPAN>-r</SPAN></P><br />
<P>当带<SPAN>-I</SPAN>使用时显示当前和前面值的差别。目前，该选项只用于<SPAN>extended-status</SPAN>命令。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>&#8211;silent</SPAN>，<SPAN>-s</SPAN></P><br />
<P>如果不能建立与服务器的连接则以沉默方式退出。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>&#8211;sleep=<I>delay</I></SPAN>，<SPAN>-i <I>delay</I></SPAN></P><br />
<P>每睡眠<SPAN><I><SPAN>delay</SPAN></I></SPAN>秒后执行一次命令。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>&#8211;socket=<I>path</I></SPAN>，<SPAN>-S <I>path</I></SPAN></P><br />
<P>用于连接的套接字文件。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>&#8211;user=<I>user_name</I></SPAN>，<SPAN>-u <I>user_name</I></SPAN></P><br />
<P>当连接服务器时使用的<SPAN>MySQL</SPAN>用户名。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>&#8211;verbose</SPAN>，<SPAN>-v</SPAN></P><br />
<P>冗长模式。打印出程序操作的详细信息。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>&#8211;version</SPAN>，<SPAN>-V</SPAN></P><br />
<P>显示版本信息并退出。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>&#8211;vertical</SPAN>，<SPAN>-E</SPAN></P><br />
<P>垂直打印输出。类似于<SPAN>&#8211;relative</SPAN>，但垂直打印输出。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>&#8211;wait[=<I>count</I>]</SPAN>，<SPAN>-w[<I>count</I>]</SPAN></P><br />
<P>如果连接不能建立，等待并重试而不是放弃。如果给出一个选项值，则指示重试的次数。默认是一次。</P><br />
<P>也可以使用<SPAN>&#8211;<I>var_name</I>=<I>value</I></SPAN>选项设置下面的变量：</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>connect_timeout</SPAN></P><br />
<P>连接超时之前的最大秒数。默认值为<SPAN>43200(12</SPAN>小时<SPAN>)</SPAN>。</P><br />
<P><SPAN>·<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN>shutdown_timeout</SPAN></P><br />
<P>等候关闭的最大秒数。默认值为<SPAN>3600(1</SPAN>小时<SPAN>)</SPAN>。</P><br />
<P>也可以使用<SPAN>&#8211;set-variable=<I>var_name</I>=<I>value</I></SPAN>或<SPAN>-O <I>var_name</I>=<I>value</I></SPAN>语法来设置变量。然而，现在不赞成该语法，并且不再使用。</P></p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxsense.org/archives/408.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>my.cnf优化</title>
		<link>http://www.linuxsense.org/archives/395.html</link>
		<comments>http://www.linuxsense.org/archives/395.html#comments</comments>
		<pubDate>Mon, 06 Oct 2008 09:06:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[web构架]]></category>

		<guid isPermaLink="false">http://www.linuxsense.org/?p=395</guid>
		<description><![CDATA[转载一篇比较通用的mysql配置优化的文章原文地址：http://blog.chinaunix.net/u1/51067/showart_1149584.html 做freeradius认证,折腾mysql,简单记录下————————————–对于单台运行的WEB服务器,建议加上:skip-lockingskip-name-resolveskip-networking在PHP链接数据库时使用”LOCALHOST”.这样MySQL 客户端库将覆盖之并尝试连接到本地套接字.(我们可以从PHP.INI中代码:; Default socket name for local MySQL connects.If empty, uses the built-in; MySQL defaults.mysql.default_socket = /tmp/mysql.sock 看出 默认情况下 UNIX 将访问/tmp/mysql.sock) &#160;&#160;&#160; * 以下是部分选项解释: my.cnf默认是不存在的.你可以在/usr/local/share/mysql/下看到: # my-huge.cnf# my-innodb-heavy-4G.cnf# my-large.cnf# my-medium.cnf# my-small.cnf等文件.将其中合适你机器配置的文件拷贝到/etc/my.cnf或mysql data目录/my.cnf(/var/db/mysql)下或~/.my.cnf.文件内都有详细的说明比如我是在freebsd下用ports装的,copy其中一个文件到 /usr/local/etc&#160; 这个目录下即可————————————–[mysqld]port = 3306serverid = 1socket = /tmp/mysql.sockskip-locking# 避免MySQL的外部锁定，减少出错几率增强稳定性。skip-name-resolve禁止MySQL对外部连接进行DNS解析，使用这一选项可以消除MySQL进行DNS解析的时间。但需要注意，如果开启该选项，则所有远程主机连接授权都要使用IP地址方式，否则MySQL将无法正常处理连接请求！back_log = 384指定MySQL可能的连接数量。当MySQL主线程在很短的时间内接收到非常多的连接请求，该参数生效，主线程花费很短的时间检查连接并且启动一个新线程。back_log参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中。 如果系统在一个短时间内有很多连接，则需要增大该参数的值，该参数值指定到来的TCP/IP连接的侦听队列的大小。不同的操作系统在这个队列大小上有它自 己的限制。试图设定back_log高于你的操作系统的限制将是无效的。默认值为50。对于Linux系统推荐设置为小于512的整数。key_buffer_size = 256M# key_buffer_size指定用于索引的缓冲区大小，增加它可得到更好的索引处理性能。对于内存在4GB左右的服务器该参数可设置为256M或384M。注意：该参数值设置的过大反而会是服务器整体效率降低！max_allowed_packet = 4Mthread_stack = 256Ktable_cache = 128Ksort_buffer_size [...]]]></description>
			<content:encoded><![CDATA[<p>转载一篇比较通用的mysql配置优化的文章<br />原文地址：http://blog.chinaunix.net/u1/51067/showart_1149584.html</p>
<p>做freeradius认证,折腾mysql,简单记录下<br />————————————–<br />对于单台运行的WEB服务器,建议加上:<br />skip-locking<br />skip-name-resolve<br />skip-networking<br />在PHP链接数据库时使用”LOCALHOST”.这样MySQL 客户端库将覆盖之并尝试连接到本地套接字.(<br />我们可以从PHP.INI中<br />代码:<br />; Default socket name for local MySQL connects.If empty, uses the built-in<br />; MySQL defaults.<br />mysql.default_socket = /tmp/mysql.sock</p>
<p>看出 默认情况下 UNIX 将访问/tmp/mysql.sock)</p>
<p>&nbsp;&nbsp;&nbsp; * 以下是部分选项解释:</p>
<p>my.cnf默认是不存在的.你可以在/usr/local/share/mysql/下看到:</p>
<p># my-huge.cnf<br /># my-innodb-heavy-4G.cnf<br /># my-large.cnf<br /># my-medium.cnf<br /># my-small.cnf<br />等文件.将其中合适你机器配置的文件拷贝到/etc/my.cnf或mysql data目录/my.cnf(/var/db/mysql)下或~/.my.cnf.文件内都有详细的说明<br />比如我是在freebsd下用ports装的,copy其中一个文件到 /usr/local/etc&nbsp; 这个目录下即可<br />————————————–<br />[mysqld]<br />port = 3306<br />serverid = 1<br />socket = /tmp/mysql.sock<br />skip-locking<br /># 避免MySQL的外部锁定，减少出错几率增强稳定性。<br />skip-name-resolve<br />禁止MySQL对外部连接进行DNS解析，使用这一选项可以消除MySQL进行DNS解析的时间。但需要注意，如果开启该选项，则所有远程主机连接授权都要使用IP地址方式，否则MySQL将无法正常处理连接请求！<br />back_log = 384<br />指定MySQL可能的连接数量。当MySQL主线程在很短的时间内接收到非常多的连接请求，该参数生效，主线程花费很短的时间检查连接并且启动一个新线程。<br />back_log参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中。 如果系统在一个短时间内有很多连接，则需要增大该参数的值，该参数值指定到来的TCP/IP连接的侦听队列的大小。不同的操作系统在这个队列大小上有它自 己的限制。<br />试图设定back_log高于你的操作系统的限制将是无效的。默认值为50。对于Linux系统推荐设置为小于512的整数。<br />key_buffer_size = 256M<br /># key_buffer_size指定用于索引的缓冲区大小，增加它可得到更好的索引处理性能。<br />对于内存在4GB左右的服务器该参数可设置为256M或384M。<br />注意：该参数值设置的过大反而会是服务器整体效率降低！<br />max_allowed_packet = 4M<br />thread_stack = 256K<br />table_cache = 128K<br />sort_buffer_size = 6M<br />查询排序时所能使用的缓冲区大小。注意：该参数对应的分配内存是每连接独占！如果有100个连接，那么实际分配的总共排序缓冲区大小为100 × 6 ＝ 600MB。所以，对于内存在4GB左右的服务器推荐设置为6-8M。<br />read_buffer_size = 4M<br />读查询操作所能使用的缓冲区大小。和sort_buffer_size一样，该参数对应的分配内存也是每连接独享！<br />join_buffer_size = 8M<br />联合查询操作所能使用的缓冲区大小，和sort_buffer_size一样，该参数对应的分配内存也是每连接独享！<br />myisam_sort_buffer_size = 64M<br />table_cache = 512<br />thread_cache_size = 64<br />query_cache_size = 64M<br />指定MySQL查询缓冲区的大小。可以通过在MySQL控制台执行以下命令观察：<br />代码:<br /># &gt; SHOW VARIABLES LIKE &#8216;%query_cache%&#8217;;<br /># &gt; SHOW STATUS LIKE &#8216;Qcache%&#8217;;</p>
<p>如果Qcache_lowmem_prunes的值非常大，则表明经常出现缓冲不够的情况；<br />如果Qcache_hits的值非常大，则表明查询缓冲使用非常频繁，如果该值较小反而会影响效率，那么可以考虑不用查询缓冲；Qcache_free_blocks，如果该值非常大，则表明缓冲区中碎片很多。<br />tmp_table_size = 256M<br />max_connections = 768<br />指定MySQL允许的最大连接进程数。如果在访问论坛时经常出现Too Many Connections的错误提 示，则需要增大该参数值。<br />max_connect_errors = 10000000<br />wait_timeout = 10<br />指定一个请求的最大连接时间，对于4GB左右内存的服务器可以设置为5-10。<br />thread_concurrency = 8<br />该参数取值为服务器逻辑CPU数量×2，在本例中，服务器有2颗物理CPU，而每颗物理CPU又支持H.T超线程，所以实际取值为4 × 2 ＝ 8<br />skip-networking<br />开启该选项可以彻底关闭MySQL的TCP/IP连接方式，如果WEB服务器是以远程连接的方式访问MySQL数据库服务器则不要开启该选项！否则将无法正常连接！<br />———————–<br />update:<br />记录两个,今天在cu上看到有两个人问起bsd下mysq的安装问题,make install 后无法启动mysql,如下:<br />1.在mysql的log里看到如下的错误:<br />[ERROR] Fatal error: Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist<br />解决办法如下:<br />#/usr/local/bin/mysql_install_db2.在log里发现如下:<br />/usr/local/libexec/mysqld: Can’t find file: ‘./mysql/host.frm’<br />出现这个问题是执行 mysql_install_db后权限的问题,解决办法如下:<br /># chown -R mysql:mysql /var/db/mysql/之后就可以用&nbsp; mysqld_safe 来启动了,不过首先记得给root加密码</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxsense.org/archives/395.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>http状态码一览表</title>
		<link>http://www.linuxsense.org/archives/390.html</link>
		<comments>http://www.linuxsense.org/archives/390.html#comments</comments>
		<pubDate>Thu, 25 Sep 2008 08:18:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[web构架]]></category>

		<guid isPermaLink="false">http://www.linuxsense.org/?p=390</guid>
		<description><![CDATA[http状态码一览表参考，中英对照 &#160;&#160;&#160; 1**：请求收到，继续处理&#160; &#160; 2**：操作成功收到，分析、接受&#160; &#160; 3**：完成此请求必须进一步处理&#160; &#160; 4**：请求包含一个错误语法或不能完成&#160; &#160; 5**：服务器执行一个完全有效请求失败&#160; &#160; 100——客户必须继续发出请求&#160; &#160; 101——客户要求服务器根据请求转换HTTP协议版本&#160; &#160; 200——交易成功&#160; &#160; 201——提示知道新文件的URL&#160; &#160; 202——接受和处理、但处理未完成&#160; &#160; 203——返回信息不确定或不完整&#160; &#160; 204——请求收到，但返回信息为空&#160; &#160; 205——服务器完成了请求，用户代理必须复位当前已经浏览过的文件&#160; &#160; 206——服务器已经完成了部分用户的GET请求&#160; &#160; 300——请求的资源可在多处得到&#160; &#160; 301——删除请求数据&#160; &#160; 302——在其他地址发现了请求数据&#160; &#160; 303——建议客户访问其他URL或访问方式&#160; &#160; 304——客户端已经执行了GET，但文件未变化&#160; &#160; 305——请求的资源必须从服务器指定的地址得到&#160; &#160; 306——前一版本HTTP中使用的代码，现行版本中不再使用&#160; &#160; 307——申明请求的资源临时性删除&#160; &#160; 400——错误请求，如语法错误&#160; &#160; 401——请求授权失败&#160; &#160; 402——保留有效ChargeTo头响应&#160; &#160; 403——请求不允许&#160; &#160; 404——没有发现文件、查询或URl&#160; [...]]]></description>
			<content:encoded><![CDATA[<p><H2>http状态码一览表参考，中英对照</H2><br />
<DIV class=t_msgfont id=postmessage_840>&nbsp;&nbsp;&nbsp; 1**：请求收到，继续处理<BR>&nbsp; &nbsp; 2**：操作成功收到，分析、接受<BR>&nbsp; &nbsp; 3**：完成此请求必须进一步处理<BR>&nbsp; &nbsp; 4**：请求包含一个错误<SPAN class=t_tag onclick=tagshow(event) href="tag.php?name=%D3%EF%B7%A8">语法</SPAN>或不能完成<BR>&nbsp; &nbsp; 5**：服务器执行一个完全有效请求失败<BR><BR>&nbsp; &nbsp; 100——客户必须继续发出请求<BR>&nbsp; &nbsp; 101——客户要求服务器根据请求转换HTTP协议版本<BR><BR>&nbsp; &nbsp; 200——交易成功<BR>&nbsp; &nbsp; 201——提示知道新<SPAN class=t_tag onclick=tagshow(event) href="tag.php?name=%CE%C4%BC%FE">文件</SPAN>的URL<BR>&nbsp; &nbsp; 202——接受和处理、但处理未完成<BR>&nbsp; &nbsp; 203——返回信息不确定或不完整<BR>&nbsp; &nbsp; 204——请求收到，但返回信息为空<BR>&nbsp; &nbsp; 205——服务器完成了请求，用户代理必须复位当前已经浏览过的文件<BR>&nbsp; &nbsp; 206——服务器已经完成了部分用户的GET请求<BR><BR>&nbsp; &nbsp; 300——请求的资源可在多处得到<BR>&nbsp; &nbsp; 301——删除请求数据<BR>&nbsp; &nbsp; 302——在其他地址发现了请求数据<BR>&nbsp; &nbsp; 303——建议客户访问其他URL或访问方式<BR>&nbsp; &nbsp; 304——客户端已经执行了GET，但文件未变化<BR>&nbsp; &nbsp; 305——请求的资源必须从服务器指定的地址得到<BR>&nbsp; &nbsp; 306——前一版本HTTP中<SPAN class=t_tag onclick=tagshow(event) href="tag.php?name=%CA%B9%D3%C3">使用</SPAN>的代码，现行版本中不再使用<BR>&nbsp; &nbsp; 307——申明请求的资源临时性删除<BR><BR>&nbsp; &nbsp; 400——错误请求，如语法错误<BR>&nbsp; &nbsp; 401——请求授权失败<BR>&nbsp; &nbsp; 402——保留有效ChargeTo头响应<BR>&nbsp; &nbsp; 403——请求不允许<BR>&nbsp; &nbsp; 404——没有发现文件、查询或URl<BR>&nbsp; &nbsp; 405——用户在Request-Line字段定义的方法不允许<BR>&nbsp; &nbsp; 406——根据用户发送的Accept拖，请求资源不可访问<BR>&nbsp; &nbsp; 407——类似401，用户必须首先在代理服务器上得到授权<BR>&nbsp; &nbsp; 408——客户端没有在用户指定的饿时间内完成请求<BR>&nbsp; &nbsp; 409——对当前资源<SPAN class=t_tag onclick=tagshow(event) href="tag.php?name=%D7%B4%CC%AC">状态</SPAN>，请求不能完成<BR>&nbsp; &nbsp; 410——服务器上不再有此资源且无进一步的参考地址<BR>&nbsp; &nbsp; 411——服务器拒绝用户定义的Content-Length属性请求<BR>&nbsp; &nbsp; 412——一个或多个请求头字段在当前请求中错误<BR>&nbsp; &nbsp; 413——请求的资源大于服务器允许的大小<BR>&nbsp; &nbsp; 414——请求的资源URL长于服务器允许的长度<BR>&nbsp; &nbsp; 415——请求资源不支持请求项目格式<BR>&nbsp; &nbsp; 416——请求中包含Range请求头字段，在当前请求资源范围内没有range指示值，请求<BR>&nbsp; &nbsp; 也不包含If-Range请求头字段<BR>&nbsp; &nbsp; 417——服务器不满足请求Expect头字段指定的期望值，如果是代理服务器，可能是下<BR>&nbsp; &nbsp; 一级服务器不能满足请求<BR><BR>&nbsp; &nbsp; 500——服务器产生内部错误<BR>&nbsp; &nbsp; 501——服务器不支持请求的函数<BR>&nbsp; &nbsp; 502——服务器暂时不可用，有时是为了防止发生<SPAN class=t_tag onclick=tagshow(event) href="tag.php?name=%CF%B5%CD%B3">系统</SPAN>过载<BR>&nbsp; &nbsp; 503——服务器过载或暂停维修<BR>&nbsp; &nbsp; 504——关口过载，服务器使用另一个关口或服务来响应用户，等待时间设定值较长<BR>&nbsp; &nbsp; 505——服务器不支持或拒绝支请求头中指定的HTTP版本<BR><BR>&nbsp; &nbsp; ==========================================================<BR><BR>&nbsp; &nbsp; 英文版：<BR><BR>&nbsp; &nbsp; 100：Continue<BR>&nbsp; &nbsp; 101：Switching Protocols<BR>&nbsp; &nbsp; 102：Processing<BR><BR>&nbsp; &nbsp; 200：OK<BR>&nbsp; &nbsp; 201：Created<BR>&nbsp; &nbsp; 202：Accepted<BR>&nbsp; &nbsp; 203：Non-Authoriative Information<BR>&nbsp; &nbsp; 204：No Content<BR>&nbsp; &nbsp; 205：Reset Content<BR>&nbsp; &nbsp; 206：Partial Content<BR>&nbsp; &nbsp; 207：Multi-Status<BR><BR>&nbsp; &nbsp; 300：Multiple Choices<BR>&nbsp; &nbsp; 301：Moved Permanently<BR>&nbsp; &nbsp; 302：Found<BR>&nbsp; &nbsp; 303：See Other<BR>&nbsp; &nbsp; 304：Not Modified<BR>&nbsp; &nbsp; 305：Use Proxy<BR>&nbsp; &nbsp; 306：(Unu<SPAN class=t_tag onclick=tagshow(event) href="tag.php?name=sed">sed</SPAN>)<BR>&nbsp; &nbsp; 307：Temporary Redirect<BR><BR>&nbsp; &nbsp; 400：Bad Request<BR>&nbsp; &nbsp; 401：Unauthorized<BR>&nbsp; &nbsp; 402：Payment Granted<BR>&nbsp; &nbsp; 403：Forbidden<BR>&nbsp; &nbsp; 404：File Not Found<BR>&nbsp; &nbsp; 405：Method Not Allowed<BR>&nbsp; &nbsp; 406：Not Acceptable<BR>&nbsp; &nbsp; 407：Proxy Authentication Required<BR>&nbsp; &nbsp; 408：Request Time-out<BR>&nbsp; &nbsp; 409：Conflict<BR>&nbsp; &nbsp; 410：Gone<BR>&nbsp; &nbsp; 411：Length Required<BR>&nbsp; &nbsp; 412：Precondition Failed<BR>&nbsp; &nbsp; 413：Request Entity Too Large<BR>&nbsp; &nbsp; 414：Request-URI Too Large<BR>&nbsp; &nbsp; 415：Unsupported Media Type<BR>&nbsp; &nbsp; 416：Requested range not satisfiable<BR>&nbsp; &nbsp; 417：Expectation Failed<BR>&nbsp; &nbsp; 422：Unprocessable Entity<BR>&nbsp; &nbsp; 423：Locked<BR>&nbsp; &nbsp; 424：Failed Dependency<BR><BR>&nbsp; &nbsp; 500：Internal Server Error<BR>&nbsp; &nbsp; 501：Not Implemented<BR>&nbsp; &nbsp; 502：Bad Gateway<BR>&nbsp; &nbsp; 503：Service Unavailable<BR>&nbsp; &nbsp; 504：Gateway Timeout<BR>&nbsp; &nbsp; 505：HTTP Version Not Supported<BR>&nbsp; &nbsp; 507：Insufficient Storage</DIV></p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxsense.org/archives/390.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>sysbench 的安装和做性能测试</title>
		<link>http://www.linuxsense.org/archives/377.html</link>
		<comments>http://www.linuxsense.org/archives/377.html#comments</comments>
		<pubDate>Fri, 12 Sep 2008 08:12:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[web构架]]></category>
		<category><![CDATA[sysbench]]></category>

		<guid isPermaLink="false">http://www.linuxsense.org/?p=377</guid>
		<description><![CDATA[本文系转载 原文作者：叶金荣 原文地址：http://imysql.cn/node/312 sysbench是一个模块化的、跨平台、多线程基准测试工具，主要用于评估测试各种不同系统参数下的数据库负载情况。关于这个项目的详细介绍请看：http://sysbench.sourceforge.net。 它主要包括以下几种方式的测试： 1、cpu性能 2、磁盘io性能 3、调度程序性能 4、内存分配及传输速度 5、POSIX线程性能 6、数据库性能(OLTP基准测试) 目前sysbench主要支持 MySQL,pgsql,oracle 这3种数据库。 一、安装 首先，在 http://sourceforge.net/projects/sysbench 下载源码包。 接下来，按照以下步骤安装： tar zxf sysbench-0.4.8.tar.gz cd sysbench-0.4.8 ./configure &#38;&#38; make &#38;&#38; make install strip /usr/local/bin/sysbench 以上方法适用于 MySQL 安装在标准默认目录下的情况，如果 MySQL 并不是安装在标准目录下的话，那么就需要自己指定 MySQL 的路径了。比如我的 MySQL 喜欢自己安装在 /usr/local/mysql 下，则按照以下方法编译： /configure &#8211;with-mysql-includes=/usr/local/mysql/include &#8211;with-mysql-libs=/usr/local/mysql/lib &#38;&#38; make &#38;&#38; make install 当然了，用上面的参数编译的话，就要确保你的 MySQL lib目录下有对应的 so [...]]]></description>
			<content:encoded><![CDATA[<p>本文系转载<br />
原文作者：叶金荣<br />
原文地址：<a href="http://imysql.cn/node/312">http://imysql.cn/node/312</a><br />
sysbench是一个模块化的、跨平台、多线程基准测试工具，主要用于评估测试各种不同系统参数下的数据库负载情况。关于这个项目的详细介绍请看：<a href="http://sysbench.sourceforge.net">http://sysbench.sourceforge.net</a>。<br />
它主要包括以下几种方式的测试：<br />
1、cpu性能<br />
2、磁盘io性能<br />
3、调度程序性能<br />
4、内存分配及传输速度<br />
5、POSIX线程性能<br />
6、数据库性能(OLTP基准测试)<br />
目前sysbench主要支持 MySQL,pgsql,oracle 这3种数据库。<br />
一、安装<br />
首先，在 <a href="http://sourceforge.net/projects/sysbench">http://sourceforge.net/projects/sysbench</a> 下载源码包。<br />
接下来，按照以下步骤安装：<br />
tar zxf sysbench-0.4.8.tar.gz<br />
cd sysbench-0.4.8<br />
./configure &amp;&amp; make &amp;&amp; make install<br />
strip /usr/local/bin/sysbench<br />
以上方法适用于 MySQL 安装在标准默认目录下的情况，如果 MySQL 并不是安装在标准目录下的话，那么就需要自己指定 MySQL 的路径了。比如我的 MySQL 喜欢自己安装在 /usr/local/mysql 下，则按照以下方法编译：<br />
/configure &#8211;with-mysql-includes=/usr/local/mysql/include &#8211;with-mysql-libs=/usr/local/mysql/lib &amp;&amp; make &amp;&amp; make install<br />
当然了，用上面的参数编译的话，就要确保你的 MySQL lib目录下有对应的 so 文件，如果没有，可以自己下载 devel 或者 share 包来安装。<br />
另外，如果想要让 sysbench 支持 pgsql/oracle 的话，就需要在编译的时候加上参数<br />
&#8211;with-pgsql<br />
或者<br />
&#8211;with-oracle<br />
这2个参数默认是关闭的，只有 MySQL 是默认支持的。<br />
二、开始测试<br />
编译成功之后，就要开始测试各种性能了，测试的方法官网网站上也提到一些，但涉及到 OLTP 测试的部分却不够准确。在这里我大致提一下：<br />
1、cpu性能测试<br />
sysbench &#8211;test=cpu &#8211;cpu-max-prime=20000 run<br />
cpu测试主要是进行素数的加法运算，在上面的例子中，指定了最大的素数为 20000，自己可以根据机器cpu的性能来适当调整数值。<br />
2、线程测试<br />
sysbench &#8211;test=threads &#8211;num-threads=64 &#8211;thread-yields=100 &#8211;thread-locks=2 run<br />
3、磁盘IO性能测试<br />
sysbench &#8211;test=fileio &#8211;num-threads=16 &#8211;file-total-size=3G &#8211;file-test-mode=rndrw prepare<br />
sysbench &#8211;test=fileio &#8211;num-threads=16 &#8211;file-total-size=3G &#8211;file-test-mode=rndrw run<br />
sysbench &#8211;test=fileio &#8211;num-threads=16 &#8211;file-total-size=3G &#8211;file-test-mode=rndrw cleanup<br />
上述参数指定了最大创建16个线程，创建的文件总大小为3G，文件读写模式为随机读。<br />
4、内存测试<br />
sysbench &#8211;test=memory &#8211;memory-block-size=8k &#8211;memory-total-size=4G run<br />
上述参数指定了本次测试整个过程是在内存中传输 4G 的数据量，每个 block 大小为 8K。<br />
5、OLTP测试<br />
sysbench &#8211;test=oltp &#8211;mysql-table-engine=myisam &#8211;oltp-table-size=1000000 \<br />
&#8211;mysql-socket=/tmp/mysql.sock &#8211;mysql-user=test &#8211;mysql-host=localhost \<br />
&#8211;mysql-password=test prepare<br />
上述参数指定了本次测试的表存储引擎类型为 myisam，这里需要注意的是，官方网站上的参数有一处有误，即 &#8211;mysql-table-engine，官方网站上写的是 &#8211;mysql-table-type，这个应该是没有及时更新导致的。另外，指定了表最大记录数为 1000000，其他参数就很好理解了，主要是指定登录方式。测试 OLTP 时，可以自己先创建数据库 sbtest，或者自己用参数 &#8211;mysql-db 来指定其他数据库。&#8211;mysql-table-engine 还可以指定为 innodb 等 MySQL 支持的表存储引擎类型。<br />
好了，主要的就是这些了，想要了解更多信息就访问 sysbench 项目的主页吧。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxsense.org/archives/377.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>解决 vsftpd 日志时间问题</title>
		<link>http://www.linuxsense.org/archives/335.html</link>
		<comments>http://www.linuxsense.org/archives/335.html#comments</comments>
		<pubDate>Fri, 29 Aug 2008 03:17:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[web构架]]></category>
		<category><![CDATA[vsftp]]></category>

		<guid isPermaLink="false">http://www.linuxsense.org/?p=335</guid>
		<description><![CDATA[最近发现 vsftpd 的日志记录 vsftpd.log 里显示的文件修改时间与实际的系统时间不一致，一般都差了8个小时。搜索了一下，因为默认情况下， vsftpd 使用的是 GMT 标准时间，而不是 Local Time 。修改也很简单： # 修改vsftpd 的配置文件 vsftpd.conf # 不一定是这个路径 vi /etc/vsftpd/vsftpd.conf 在配置文件里加入一行： use_localtime=YES 保存之后重启 vsftpd 即可。 如果是用 xinetd 的方式来启动，要注意把配置文件中的listen参数值改为NO，否则 vsftpd 重启之后问题依旧。]]></description>
			<content:encoded><![CDATA[<p>最近发现 vsftpd 的日志记录 vsftpd.log 里显示的文件修改时间与实际的系统时间不一致，一般都差了8个小时。搜索了一下，因为默认情况下， vsftpd 使用的是 GMT 标准时间，而不是 Local Time 。修改也很简单：<br />
# 修改vsftpd 的配置文件 vsftpd.conf<br />
# 不一定是这个路径<br />
vi /etc/vsftpd/vsftpd.conf<br />
在配置文件里加入一行：<br />
use_localtime=YES<br />
保存之后重启 vsftpd 即可。<br />
如果是用 xinetd 的方式来启动，要注意把配置文件中的listen参数值改为NO，否则 vsftpd 重启之后问题依旧。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxsense.org/archives/335.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>High Performance PHP &#8211; Installing eAccelerator on FreeBSD</title>
		<link>http://www.linuxsense.org/archives/304.html</link>
		<comments>http://www.linuxsense.org/archives/304.html#comments</comments>
		<pubDate>Sun, 17 Aug 2008 03:07:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[web构架]]></category>

		<guid isPermaLink="false">http://www.linuxsense.org/?p=304</guid>
		<description><![CDATA[eAccelerator is a PHP caching system, which caches frequently used portions of PHP files to RAM to increase performance. This is especially great on high traffic websites such as forums. Performance gains of up to 1000% have been seen with eAccelerator. The following tutorial is how to install eAccelerator on FreeBSD using ports. Using ports, [...]]]></description>
			<content:encoded><![CDATA[<p><P class=textArialSpacing>eAccelerator is a PHP caching system, which caches frequently used portions of PHP files to RAM to increase performance. This is especially great on high traffic websites such as forums. Performance gains of up to 1000% have been seen with eAccelerator. The following tutorial is how to install eAccelerator on FreeBSD using ports.</P><br />
<P class=textArialSpacing>Using ports, compile and install:</P><br />
<P class=textCodeBlueCourier><FONT color=#000066>cd /usr/ports/www/eaccelerator</FONT></P><br />
<P class=textCodeBlueCourier><FONT color=#000066>make</FONT></P><br />
<P class=textCodeBlueCourier><FONT color=#000066>make install</FONT></P><br />
<P><BR><SPAN class=textArialSpacing>Make modifications to php.ini:</SPAN></P><br />
<P class=textArialSpacing>If you are using Zend:</P><br />
<P><SPAN class=textCodeBlueCourier><FONT color=#000066>vi /usr/local/Zend/etc/php.ini</FONT> </SPAN><SPAN class=textArialSpacing>(this is the default location)</SPAN></P><br />
<P class=textArialSpacing>Add the following:</P><br />
<P class=textCodeBlueCourier><FONT color=#000066>zend_extension=&#8221;/usr/local/lib/php/20020429/eaccelerator.so&#8221;<BR>eaccelerator.shm_size=&#8221;32&#8243;<BR>eaccelerator.cache_dir=&#8221;/tmp/eaccelerator&#8221;<BR>eaccelerator.enable=&#8221;1&#8243;<BR>eaccelerator.optimizer=&#8221;1&#8243;<BR>eaccelerator.check_mtime=&#8221;1&#8243;<BR>eaccelerator.debug=&#8221;0&#8243;<BR>eaccelerator.filter=&#8221;"<BR>eaccelerator.shm_max=&#8221;0&#8243;<BR>eaccelerator.shm_ttl=&#8221;0&#8243;<BR>eaccelerator.shm_prune_period=&#8221;0&#8243;<BR>eaccelerator.shm_only=&#8221;0&#8243;<BR>eaccelerator.compress=&#8221;1&#8243;</FONT></P><br />
<P class=textArialSpacing>Comment out the following lines:</P><br />
<P class=textCodeBlueCourier><FONT color=#000066>zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-2.5.7<BR>zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-2.5.7</FONT></P><br />
<P class=textArialSpacing>If you are not using Zend optimiser the add the following to your php.ini:</P><br />
<P class=textCodeBlueCourier><FONT color=#000066>extension=&#8221;eaccelerator.so&#8221;<BR>eaccelerator.shm_size=&#8221;16&#8243;<BR>eaccelerator.cache_dir=&#8221;/tmp/eaccelerator&#8221;<BR>eaccelerator.enable=&#8221;1&#8243;<BR>eaccelerator.optimizer=&#8221;1&#8243;<BR>eaccelerator.check_mtime=&#8221;1&#8243;<BR>eaccelerator.debug=&#8221;0&#8243;<BR>eaccelerator.filter=&#8221;"<BR>eaccelerator.shm_max=&#8221;0&#8243;<BR>eaccelerator.shm_ttl=&#8221;0&#8243;<BR>eaccelerator.shm_prune_period=&#8221;0&#8243;<BR>eaccelerator.shm_only=&#8221;0&#8243;<BR>eaccelerator.compress=&#8221;1&#8243;<BR>eaccelerator.compress_level=&#8221;9&#8243; </FONT></P><br />
<P class=textArialSpacing>Create the caching directory:</P><br />
<P class=textCodeBlueCourier><FONT color=#000066>mkdir /tmp/eaccelerator<BR>chmod 0777 /tmp/eaccelerator</FONT> </P><br />
<P class=textArialSpacing>You can check if eAccelerator is working by copying the following file into your htdocs folder:</P><br />
<P class=textCodeBlueCourier><FONT color=#000066>/usr/ports/www/eaccelerator/work/eaccelerator/eaccelerator.php</FONT></P></p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxsense.org/archives/304.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

