<?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>Solo Estoy &#187; mysql</title>
	<atom:link href="http://www.opslife.com/tag/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.opslife.com</link>
	<description>人生不过是一场旷日持久却又无法rollback的operation而已</description>
	<lastBuildDate>Mon, 16 Jan 2012 01:34:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Debian Lenny安装nginx+PHP+MySQL傻瓜手记</title>
		<link>http://www.opslife.com/install-nginx-php-mysql-on-debian-lenny/</link>
		<comments>http://www.opslife.com/install-nginx-php-mysql-on-debian-lenny/#comments</comments>
		<pubDate>Mon, 28 Dec 2009 08:05:06 +0000</pubDate>
		<dc:creator>dawnh</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[VPS]]></category>

		<guid isPermaLink="false">http://opslife.com/install-nginx-php-mysql-on-debian-lenny/</guid>
		<description><![CDATA[新搞了个VPS，打算把Blog以及全套行头迁移过来。 以前的那套图省事，用了CentOS5 Kloxo AllinOne BOX。基本上依靠这个CP搞定了全套，主要是人懒不想折腾而已。这次换了个新的VPS提供商，心血来潮想折腾Debian。所以把过程记录下来，避免以后不折腾了却忘记自己当初怎么搭。 总体思路还是采取懒汉办法，有官方源的从官方源安装，没官方源找第三方社区源，再没有的话自己做deb，无论如何，避免从源代码直接编译。 首先把最简单的MySQL装上，用官方源，一句话搞定： apt-get install mysql-server MySQL配置文件稍后再搞，对于小Blog来说MySQL的优化意义不大。 其次是nginx，说实话这东西不熟，不过貌似最近挺流行，Debian Lenny也将其收进官方源了，那就简单apt之 apt-get install nginx 简单netstat看一下发现80已经在监听了，访问http://&#60;IP&#62;发现出现欢迎页“Welcome to nginx!”，接下来就是怎么让PHP在nginx上跑起来。 很没技术含量不是，很不幸后面的也没啥技术含量。一破Blog日IP不过300折腾个什么劲啊，不就是一个玩儿么。 PHP稍微麻烦点，因为Nginx没有像Apache那样的SAPI调用PHP的方式，而是使用FastCGI来调。这里就存在一个对PHP的FastCGI进程如何管理的问题。官方源的php5-cgi本身没有进程管理机制。一个比较好的选择是用spawn-fcgi(源自lighttpd的小东东)来起PHP进程，结果查了一下spawn-fcgi到现在还在sid呆着。还有一个选择是使用php-fpm来做FastCGI进程管理，这东西的灵活性比spawn-fcgi还要高不少，但代价是要往PHP源代码里打Patch才能用，也就意味着&#8211;要重新编译整个PHP。 简单权衡了一下，我觉得我还是想用php-fpm，但是又想偷懒不编译源代码，于是就求助于第三方二进制源了。随便搜了一下发现还真有正合适的&#8211; http://www.dotdeb.org/，这个社区致力于维护Debian下的LAMP类软件的非官方二进制包，恰好它们近期重做了PHP，使用了PHP5.3.1版本，并集成入了Suhosin安全补丁。最让人舒服的是吧php-fpm做成了一个php5-fpm的安装包，并给其加了SysV类的启动脚本，这样PHP的FastCGI方式即可以有自己单独的conf文件，又有单独的init.d控制脚本，可谓完美。 无废话说干就干。 修改/etc/apt/source.list，加入dotdeb的源设置： deb http://php53.dotdeb.org stable all deb-src http://php53.dotdeb.org stable all 然后apt之： apt-get update apt-get install php5-cgi php5-fpm 这样PHP就算完事了，简单验证一下，运行如下命令，观察phpinfo()输出是否正常： php-cgi –i 再保险点看一下PHP的FastCGI进程有没有跑起来，ps aux&#124;grep php，应该能看到有进程为”/usr/bin/php5-fpm &#8211;fpm-config /etc/php5/fpm/php5-fpm.conf”在跑。 剩下的事就是搞定nginx的配置文件把站点建好，并让其能调用后台的PHP。这个dotdeb社区源做的php5-fpm好心到都提供了一个nginx的example配置文件，放在/etc/php5/fpm/nginx-site-conf.sample，改改拿来用就好了。 我是将其复制到/etc/nginx/sites-enabled/opslife.com.conf，然后简单修改几个参数，改好的配置文件是这样： # # nginx-site-conf.sample: # Php <a href='http://www.opslife.com/install-nginx-php-mysql-on-debian-lenny/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>新搞了个VPS，打算把Blog以及全套行头迁移过来。</p>
<p>以前的那套图省事，用了CentOS5 Kloxo AllinOne BOX。基本上依靠这个CP搞定了全套，主要是人懒不想折腾而已。这次换了个新的VPS提供商，心血来潮想折腾Debian。所以把过程记录下来，避免以后不折腾了却忘记自己当初怎么搭。</p>
<p>总体思路还是采取懒汉办法，有官方源的从官方源安装，没官方源找第三方社区源，再没有的话自己做deb，无论如何，避免从源代码直接编译。</p>
<p>首先把最简单的MySQL装上，用官方源，一句话搞定：</p>
<blockquote><p>apt-get install mysql-server</p>
</blockquote>
<p>MySQL配置文件稍后再搞，对于小Blog来说MySQL的优化意义不大。</p>
<p>其次是nginx，说实话这东西不熟，不过貌似最近挺流行，Debian Lenny也将其收进官方源了，那就简单apt之</p>
<blockquote><p>apt-get install nginx</p>
</blockquote>
<p>简单netstat看一下发现80已经在监听了，访问<a href="http://&lt;IP">http://&lt;IP</a>&gt;发现出现欢迎页“Welcome to nginx!”，接下来就是怎么让PHP在nginx上跑起来。</p>
<p>很没技术含量不是，很不幸后面的也没啥技术含量。一破Blog日IP不过300折腾个什么劲啊，不就是一个玩儿么。</p>
<p>PHP稍微麻烦点，因为Nginx没有像Apache那样的SAPI调用PHP的方式，而是使用FastCGI来调。这里就存在一个对PHP的FastCGI进程如何管理的问题。官方源的php5-cgi本身没有进程管理机制。一个比较好的选择是用spawn-fcgi(源自lighttpd的小东东)来起PHP进程，结果查了一下spawn-fcgi到现在还在sid呆着。还有一个选择是使用php-fpm来做FastCGI进程管理，这东西的灵活性比spawn-fcgi还要高不少，但代价是要往PHP源代码里打Patch才能用，也就意味着&#8211;要重新编译整个PHP。</p>
<p>简单权衡了一下，我觉得我还是想用php-fpm，但是又想偷懒不编译源代码，于是就求助于第三方二进制源了。随便搜了一下发现还真有正合适的&#8211; <a title="http://www.dotdeb.org/" href="http://www.dotdeb.org/">http://www.dotdeb.org/</a>，这个社区致力于维护Debian下的LAMP类软件的非官方二进制包，恰好它们近期重做了PHP，使用了PHP5.3.1版本，并集成入了<a href="http://www.suhosin.org/">Suhosin</a>安全补丁。最让人舒服的是吧php-fpm做成了一个php5-fpm的安装包，并给其加了SysV类的启动脚本，这样PHP的FastCGI方式即可以有自己单独的conf文件，又有单独的init.d控制脚本，可谓完美。</p>
<p>无废话说干就干。</p>
<p>修改/etc/apt/source.list，加入dotdeb的源设置：</p>
<blockquote><p>deb <a href="http://php53.dotdeb.org">http://php53.dotdeb.org</a> stable all      <br />deb-src <a href="http://php53.dotdeb.org">http://php53.dotdeb.org</a> stable all</p>
</blockquote>
<p>然后apt之：</p>
<blockquote><p>apt-get update     <br />apt-get install php5-cgi php5-fpm</p>
</blockquote>
<p>这样PHP就算完事了，简单验证一下，运行如下命令，观察phpinfo()输出是否正常：</p>
<blockquote><p>php-cgi –i</p>
</blockquote>
<p>再保险点看一下PHP的FastCGI进程有没有跑起来，ps aux|grep php，应该能看到有进程为”/usr/bin/php5-fpm &#8211;fpm-config /etc/php5/fpm/php5-fpm.conf”在跑。</p>
<p>剩下的事就是搞定nginx的配置文件把站点建好，并让其能调用后台的PHP。这个dotdeb社区源做的php5-fpm好心到都提供了一个nginx的example配置文件，放在/etc/php5/fpm/nginx-site-conf.sample，改改拿来用就好了。</p>
<p>我是将其复制到/etc/nginx/sites-enabled/opslife.com.conf，然后简单修改几个参数，改好的配置文件是这样：</p>
<blockquote><p>#     <br /># nginx-site-conf.sample:      <br /># Php Site configuration for nginx webserver      <br />#      <br /># 1. set server root /path/to/your/website;      <br /># 2. Rename this file. Copy it to /etc/nginx/sites-available, /etc/nginx/sites-enabled      <br />#&#160;&#160;&#160; or otherwise ensure that this file is included by the nginx.conf      <br /># 3. Restart nginx webserver, and php-fpm service.      <br /># </p>
<p>server { </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; root&#160; /home/dawnh/opslife.com; </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; server_name&#160;&#160;&#160;&#160; opslife.com www.opslife.com d9.opslife.com;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; listen&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 80; </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; access_log&#160; /var/log/nginx/opslife.com.access.log; </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; location / {     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; index&#160; index.html index.htm index.php;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; } </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; #error_page&#160; 404&#160; /404.html; </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; # redirect server error pages to the static page /50x.html     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; #      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; error_page&#160;&#160; 500 502 503 504&#160; /50x.html;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; location = /50x.html {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; root&#160;&#160; /var/www/nginx-default;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; } </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; # pass the *.php scripts to php-fpm listening on tcp port 9000     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; #      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; location ~ \.php$ { </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; fastcgi_pass&#160;&#160; 127.0.0.1:9000;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; fastcgi_index&#160; index.php; </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; include fastcgi_params;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; fastcgi_param SERVER_NAME $http_host;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; fastcgi_ignore_client_abort on;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }</p>
<p>}</p>
</blockquote>
<p>这样站点配置就算是完成了，/etc/init.d/nginx restart重启后，新站点应该就会跑起来了，使用域名opslife.com、<a href="http://www.opslife.com">www.opslife.com</a>、 d9.opslife.com都应该访问到新建立的站点。</p>
<p>最后再验证一下，扔一个info.php放到/home/dawnh/opslife.com，内容就一句：</p>
<blockquote><p>&lt;?php phpinfo();?&gt;</p>
</blockquote>
<p>由于主域名还没指过来，先用子域名访问测试，直接访问<a href="http://d9.opslife.com/info.php">http://d9.opslife.com/info.php</a>，看到返回正确的phpinfo信息。到此最后一步也算顺利完成。</p>
<p>&#160;</p>
<p>剩下就是把wordpress的东西从老的VPS迁移过来了，依旧是没什么技术含量。有空再记录。</p>
<ul class="related_post"><li>2009/03/15 -- <a href="http://www.opslife.com/nginx-php-fastcgi-mysql-under-linux-vps/" title="手记:VPS上安装Nginx+PHP+FastCGI+MySQL">手记:VPS上安装Nginx+PHP+FastCGI+MySQL</a> (3)</li><li>2009/05/12 -- <a href="http://www.opslife.com/different-way-of-blogging/" title="独立Blog的几种玩法">独立Blog的几种玩法</a> (5)</li><li>2008/10/30 -- <a href="http://www.opslife.com/blog%e8%bf%81%e7%a7%bb%e5%88%b0vps/" title="Blog迁移到VPS">Blog迁移到VPS</a> (8)</li><li>2008/10/17 -- <a href="http://www.opslife.com/buying-new-swvps/" title="新玩具&#8211;VPS入手">新玩具&#8211;VPS入手</a> (6)</li><li>2007/10/10 -- <a href="http://www.opslife.com/sep-personal-summary/" title="近期小结">近期小结</a> (2)</li><li>2009/04/25 -- <a href="http://www.opslife.com/why-use-standalone-blog/" title="为什么需要独立Blog">为什么需要独立Blog</a> (15)</li><li>2009/02/26 -- <a href="http://www.opslife.com/my-blog-revolution/" title="革命啦，每年都来一回！">革命啦，每年都来一回！</a> (4)</li><li>2008/12/22 -- <a href="http://www.opslife.com/blog-speed-optimize/" title="Blog访问速度优化">Blog访问速度优化</a> (2)</li><li>2008/11/25 -- <a href="http://www.opslife.com/use-cacti-to-monitor-load-average/" title="抽空弄了个Cacti来画一下性能图表">抽空弄了个Cacti来画一下性能图表</a> (0)</li><li>2008/06/03 -- <a href="http://www.opslife.com/windows-live-write-new-technical-preview/" title="Windows Live Write new Technical Preview">Windows Live Write new Technical Preview</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.opslife.com/install-nginx-php-mysql-on-debian-lenny/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>手记:VPS上安装Nginx+PHP+FastCGI+MySQL</title>
		<link>http://www.opslife.com/nginx-php-fastcgi-mysql-under-linux-vps/</link>
		<comments>http://www.opslife.com/nginx-php-fastcgi-mysql-under-linux-vps/#comments</comments>
		<pubDate>Sun, 15 Mar 2009 12:19:57 +0000</pubDate>
		<dc:creator>dawnh</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[httpd]]></category>
		<category><![CDATA[lighttpd]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[VPS]]></category>

		<guid isPermaLink="false">http://opslife.com/nginx-php-fastcgi-mysql-under-linux-vps/</guid>
		<description><![CDATA[安装这一套的目的是为了看看在VPS这种低内存配置的环境下Nginx跑Wordpress的表现，至于为什么选这么一套搭配的原因就不废话了。 为了避免复杂度就没有使用源代码方式安装，用源代码确实是能安装到最新的版本，但简单看了一下各个Changelog，基本上用发行版自带的二进制包也都没什么问题，还是一切从简吧。 目前这个VPS跑得是Fedora8，因为基本上Host provider就只有这么老的货色了。 首先按照惯例更新一下二进制包管理器数据库： yum update 然后是安装Nginx，PHP，MySQL，能装的先一股脑装上再慢慢配： yum install nginx yum install php yum install mysql mysql-server 还有要处理FastCGI调用这个环节，PHP的二进制包已经包含了FastCGI支持，因此要做的只不过是弄一个FastCGI的进程管理器而已，用脚本写个简单的wrapper就可以了，不过看了一下Nginx的Wiki发现竟然推荐使用Lighttpd附带的spawn-fcgi工具实现，难道两者除了竞争对手还是合作伙伴吗？既然人家这么写咱也就这么用了吧，好在Lighttpd的包也非常小，顺便装了算了 yum install lighttpd-fastcgi 然后是配置工作了，首先在Nginx上把站点跑起来，修改/etc/nginx/conf.d/virtual.conf，让它变成这样： # # A virtual host using mix of IP-, name-, and port-based configuration # #server { #&#160;&#160;&#160; listen&#160;&#160;&#160;&#160;&#160;&#160; 8000; #&#160;&#160;&#160; listen&#160;&#160;&#160;&#160;&#160;&#160; somename:8080; #&#160;&#160;&#160; server_name&#160; somename&#160; alias&#160; another.alias; #&#160;&#160;&#160; location / { #&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href='http://www.opslife.com/nginx-php-fastcgi-mysql-under-linux-vps/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>安装这一套的目的是为了看看在VPS这种低内存配置的环境下Nginx跑Wordpress的表现，至于为什么选这么一套搭配的原因就不废话了。</p>
<p>为了避免复杂度就没有使用源代码方式安装，用源代码确实是能安装到最新的版本，但简单看了一下各个Changelog，基本上用发行版自带的二进制包也都没什么问题，还是一切从简吧。</p>
<p>目前这个VPS跑得是Fedora8，因为基本上Host provider就只有这么老的货色了。</p>
<p>首先按照惯例更新一下二进制包管理器数据库：</p>
<blockquote><p>yum update</p>
</blockquote>
<p>然后是安装Nginx，PHP，MySQL，能装的先一股脑装上再慢慢配：</p>
<blockquote><p>yum install nginx</p>
<p>yum install php</p>
<p>yum install mysql mysql-server</p>
</blockquote>
<p>还有要处理FastCGI调用这个环节，PHP的二进制包已经包含了FastCGI支持，因此要做的只不过是弄一个FastCGI的进程管理器而已，用脚本写个简单的wrapper就可以了，不过看了一下Nginx的Wiki发现竟然推荐使用Lighttpd附带的spawn-fcgi工具实现，难道两者除了竞争对手还是合作伙伴吗？既然人家这么写咱也就这么用了吧，好在Lighttpd的包也非常小，顺便装了算了</p>
<blockquote><p>yum install lighttpd-fastcgi</p>
</blockquote>
<p>然后是配置工作了，首先在Nginx上把站点跑起来，修改/etc/nginx/conf.d/virtual.conf，让它变成这样：</p>
<blockquote><p>#      <br /># A virtual host using mix of IP-, name-, and port-based configuration       <br /># </p>
<p>#server {      <br />#&#160;&#160;&#160; listen&#160;&#160;&#160;&#160;&#160;&#160; 8000;       <br />#&#160;&#160;&#160; listen&#160;&#160;&#160;&#160;&#160;&#160; somename:8080;       <br />#&#160;&#160;&#160; server_name&#160; somename&#160; alias&#160; another.alias; </p>
<p>#&#160;&#160;&#160; location / {      <br />#&#160;&#160;&#160;&#160;&#160;&#160;&#160; root&#160;&#160; html;       <br />#&#160;&#160;&#160;&#160;&#160;&#160;&#160; index&#160; index.html index.htm;       <br />#&#160;&#160;&#160; }       <br />#} </p>
<p>server {      <br />&#160;&#160;&#160; listen&#160;&#160;&#160;&#160;&#160;&#160; 80;       <br />&#160;&#160;&#160; server_name&#160; vps.dawnh.net dawnh.net; </p>
<p>&#160;&#160;&#160; location / {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; root&#160;&#160; /www/dawnh.net;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; index&#160; index.html index.htm index.php;       <br />&#160;&#160;&#160; }       <br />&#160;&#160;&#160; location ~ \.php$ {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; root&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; /www/dawnh.net;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; fastcgi_pass&#160;&#160; 127.0.0.1:9000;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; fastcgi_index&#160; index.php;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; fastcgi_param&#160; SCRIPT_FILENAME&#160; $document_root$fastcgi_script_name;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; include&#160;&#160;&#160;&#160;&#160;&#160;&#160; /etc/nginx/fastcgi_params;       <br />&#160;&#160;&#160; }       <br />}</p>
<p>&#160;</p>
</blockquote>
<p>运行/etc/init.d/nginx restart重起Nginx。</p>
<p>接下来是让PHP的FastCGI进程跑起来，有了spawn-fcgi就简单多了，一行命令即可：</p>
<blockquote><p>/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u nginx -g nginx -f /usr/bin/php-cgi</p>
</blockquote>
<p>没什么问题的话就会看到运行成功的提示。然后就可以把这行丢到自启动脚本里去了。</p>
<p>至此Web Server方面应该是可以跑起来了，写个phpinfo()的测试页丢到/www/dawnh.net/里去，然后通过浏览器访问测试，如果能看到phpinfo页面，说明配置成功。</p>
<ul class="related_post"><li>2009/12/28 -- <a href="http://www.opslife.com/install-nginx-php-mysql-on-debian-lenny/" title="Debian Lenny安装nginx+PHP+MySQL傻瓜手记">Debian Lenny安装nginx+PHP+MySQL傻瓜手记</a> (15)</li><li>2008/10/17 -- <a href="http://www.opslife.com/buying-new-swvps/" title="新玩具&#8211;VPS入手">新玩具&#8211;VPS入手</a> (6)</li><li>2007/10/10 -- <a href="http://www.opslife.com/sep-personal-summary/" title="近期小结">近期小结</a> (2)</li><li>2009/05/12 -- <a href="http://www.opslife.com/different-way-of-blogging/" title="独立Blog的几种玩法">独立Blog的几种玩法</a> (5)</li><li>2008/11/25 -- <a href="http://www.opslife.com/use-cacti-to-monitor-load-average/" title="抽空弄了个Cacti来画一下性能图表">抽空弄了个Cacti来画一下性能图表</a> (0)</li><li>2008/10/30 -- <a href="http://www.opslife.com/blog%e8%bf%81%e7%a7%bb%e5%88%b0vps/" title="Blog迁移到VPS">Blog迁移到VPS</a> (8)</li><li>2007/10/18 -- <a href="http://www.opslife.com/mysql-proxy-learns-r-w-splitting/" title="MySQL Proxy应用:读写分离">MySQL Proxy应用:读写分离</a> (2)</li><li>2007/08/11 -- <a href="http://www.opslife.com/new-software-mysql-proxy/" title="发现新玩艺儿&#8212;-MySQL Proxy">发现新玩艺儿&#8212;-MySQL Proxy</a> (1)</li><li>2007/08/07 -- <a href="http://www.opslife.com/jeffr-comment-about-sd-and-cfs/" title="A comment abount SD, CFS Schedulers,from ULE&#8217;s author">A comment abount SD, CFS Schedulers,from ULE&#8217;s author</a> (15)</li><li>2007/06/21 -- <a href="http://www.opslife.com/ndsl%e4%b8%80%e5%a4%a9%e6%8a%8a%e7%8e%a9%e6%89%8b%e8%ae%b0/" title="NDSL一天把玩手记">NDSL一天把玩手记</a> (3)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.opslife.com/nginx-php-fastcgi-mysql-under-linux-vps/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>MySQL Proxy应用:读写分离</title>
		<link>http://www.opslife.com/mysql-proxy-learns-r-w-splitting/</link>
		<comments>http://www.opslife.com/mysql-proxy-learns-r-w-splitting/#comments</comments>
		<pubDate>Thu, 18 Oct 2007 08:09:09 +0000</pubDate>
		<dc:creator>dawnh</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[proxy]]></category>

		<guid isPermaLink="false">http://dawnh.net/networking/260/mysql-proxy-learns-r-w-splitting/</guid>
		<description><![CDATA[前一阵子看到了MySQL Proxy这个东西出世，就推断将会从这个玩艺发展出很多架构方面翻新的花样，还没来得及研究，这就有人有研究成果了。 如下图： 通过MySQL Proxy实现一个连接池，并在其中分辩客户端连接为读或写操作，将不同操作导向到不同的后端数据库服务器，来实现性能的提升。 具体实现方法和步骤参考原文： http://jan.kneschke.de/2007/8/1/mysql-proxy-learns-r-w-splitting 2007/08/11 -- 发现新玩艺儿&#8212;-MySQL Proxy (1)2009/12/28 -- Debian Lenny安装nginx+PHP+MySQL傻瓜手记 (15)2009/03/15 -- 手记:VPS上安装Nginx+PHP+FastCGI+MySQL (3)2007/10/31 -- 再论Vista/Longhorn的声音问题 (0)2007/10/30 -- ZFS under FreeBSD performace (0)]]></description>
			<content:encoded><![CDATA[<p>前一阵子看到了MySQL Proxy这个东西出世，就推断将会从这个玩艺发展出很多架构方面翻新的花样，还没来得及研究，这就有人有研究成果了。</p>
<p><span style="background-color: #bbbbbb">如下图：</span></p>
<p><img width="523" src="http://jan.kneschke.de/projects/mysql/mysql-proxy-types-trx-splitting.png" alt="Mysql proxy r/w split" height="250" /></p>
<p>通过MySQL Proxy实现一个连接池，并在其中分辩客户端连接为读或写操作，将不同操作导向到不同的后端数据库服务器，来实现性能的提升。</p>
<p>具体实现方法和步骤参考原文：</p>
<p><a href="http://jan.kneschke.de/2007/8/1/mysql-proxy-learns-r-w-splitting">http://jan.kneschke.de/2007/8/1/mysql-proxy-learns-r-w-splitting</a></p>
<ul class="related_post"><li>2007/08/11 -- <a href="http://www.opslife.com/new-software-mysql-proxy/" title="发现新玩艺儿&#8212;-MySQL Proxy">发现新玩艺儿&#8212;-MySQL Proxy</a> (1)</li><li>2009/12/28 -- <a href="http://www.opslife.com/install-nginx-php-mysql-on-debian-lenny/" title="Debian Lenny安装nginx+PHP+MySQL傻瓜手记">Debian Lenny安装nginx+PHP+MySQL傻瓜手记</a> (15)</li><li>2009/03/15 -- <a href="http://www.opslife.com/nginx-php-fastcgi-mysql-under-linux-vps/" title="手记:VPS上安装Nginx+PHP+FastCGI+MySQL">手记:VPS上安装Nginx+PHP+FastCGI+MySQL</a> (3)</li><li>2007/10/31 -- <a href="http://www.opslife.com/vista-sound-subsystem-issue-again/" title="再论Vista/Longhorn的声音问题">再论Vista/Longhorn的声音问题</a> (0)</li><li>2007/10/30 -- <a href="http://www.opslife.com/zfs-under-freebsd-performace/" title="ZFS under FreeBSD performace">ZFS under FreeBSD performace</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.opslife.com/mysql-proxy-learns-r-w-splitting/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>发现新玩艺儿&#8212;-MySQL Proxy</title>
		<link>http://www.opslife.com/new-software-mysql-proxy/</link>
		<comments>http://www.opslife.com/new-software-mysql-proxy/#comments</comments>
		<pubDate>Sat, 11 Aug 2007 14:43:06 +0000</pubDate>
		<dc:creator>dawnh</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[proxy]]></category>

		<guid isPermaLink="false">http://dawnh.net/software/241/new-software-mysql-proxy/</guid>
		<description><![CDATA[今天看到了这么一个新项目&#8211;MySQL Proxy，貌似最近比较热门。简单来说就是一个从MySQL Client到Server的一个代理。可能有人认为MySQL这种连接方式不应该会用到代理，因为一般来说都喜欢把MySQL Server放到后端，用内网圈起来，这样一方面保证安全，另一方面用Local  Ethernet来避免不稳定因素较多的Internet连接，因此基本没有代理这个角色出现的机会。然而，假如这个代理不仅仅是一个代理，而是一个能“懂得”连接双方传送内容，并有可能会对双方内容加以控制甚至干涉的一个角色呢？还有没有人觉得他没用？联想一下Squid之于HTTP Client和HTTP Server所能起到的作用，是不是能想到更多了呢？ 是的，MySQL Proxy就是这么一个玩艺儿。代理仅仅是其最不值一提的功能，让人激动的功能都是建立在代理这个前提之上，能实现的更好玩的东西，例如以下： Query Interception Query Filtering Query Rewriting Macro Expansion 可能对于没接触过这个东西的人，这几个概念还不是十分直观，那么这样，在脑子里描绘这样一幅情景： 1，原本为Cilent-Server直连这种拓扑，现在引入MySQL Proxy，变成Client-Proxy-Server。 2，原本为了实现高容载能力，对于Server采取了多台并存，Master/Slave甚至是Master/Master等方式的复制集群，配置管理都比较复杂。而引入了Proxy以后，中间存在了这样一个Store-Forward的proxy环节。 3，在这个环节，我们可以通过一种脚本语言来控制这个proxy的行为，例如对于Client进来的查询依照某种条件过滤，甚至依照某种条件改写，再导向后端的Server。 4，凭借自己实现的filtering或rewriting，我们可以实现很多目的，例如Failover，例如Load balance。或者更无聊些我们可以对Client进来的带有弱智语法错误的SQL语句进行修正。 有了这个东西，几乎是想到什么就能完成什么，这可是大大得扩展了MySQL应用的多样性，可以用它来实现一些高端商业数据库的复杂的企业化功能。相信喜欢MySQL的架构设计师们一定会喜欢这个玩艺儿。 这里有篇Getting Start，是很好的入门教材，对于这套软件，定要保持关注。 2007/10/18 -- MySQL Proxy应用:读写分离 (2)2009/12/28 -- Debian Lenny安装nginx+PHP+MySQL傻瓜手记 (15)2009/03/15 -- 手记:VPS上安装Nginx+PHP+FastCGI+MySQL (3)]]></description>
			<content:encoded><![CDATA[<p>今天看到了这么一个新项目&#8211;<a href="http://forge.mysql.com/wiki/MySQL_Proxy">MySQL Proxy</a>，貌似最近比较热门。简单来说就是一个从MySQL Client到Server的一个代理。可能有人认为MySQL这种连接方式不应该会用到代理，因为一般来说都喜欢把MySQL Server放到后端，用内网圈起来，这样一方面保证安全，另一方面用Local  Ethernet来避免不稳定因素较多的Internet连接，因此基本没有代理这个角色出现的机会。然而，假如这个代理不仅仅是一个代理，而是一个能“懂得”连接双方传送内容，并有可能会对双方内容加以控制甚至干涉的一个角色呢？还有没有人觉得他没用？联想一下<a href="http://www.squid-cache.org/">Squid</a>之于HTTP Client和HTTP Server所能起到的作用，是不是能想到更多了呢？</p>
<p>是的，MySQL Proxy就是这么一个玩艺儿。代理仅仅是其最不值一提的功能，让人激动的功能都是建立在代理这个前提之上，能实现的更好玩的东西，例如以下：</p>
<p>Query Interception</p>
<p>Query Filtering</p>
<p>Query Rewriting</p>
<p>Macro Expansion</p>
<p>可能对于没接触过这个东西的人，这几个概念还不是十分直观，那么这样，在脑子里描绘这样一幅情景：</p>
<p>1，原本为Cilent-Server直连这种拓扑，现在引入MySQL Proxy，变成Client-Proxy-Server。</p>
<p>2，原本为了实现高容载能力，对于Server采取了多台并存，Master/Slave甚至是Master/Master等方式的复制集群，配置管理都比较复杂。而引入了Proxy以后，中间存在了这样一个Store-Forward的proxy环节。</p>
<p>3，在这个环节，我们可以通过一种脚本语言来控制这个proxy的行为，例如对于Client进来的查询依照某种条件过滤，甚至依照某种条件改写，再导向后端的Server。</p>
<p>4，凭借自己实现的filtering或rewriting，我们可以实现很多目的，例如Failover，例如Load balance。或者更无聊些我们可以对Client进来的带有弱智语法错误的SQL语句进行修正。</p>
<p>有了这个东西，几乎是想到什么就能完成什么，这可是大大得扩展了MySQL应用的多样性，可以用它来实现一些高端商业数据库的复杂的企业化功能。相信喜欢MySQL的架构设计师们一定会喜欢这个玩艺儿。</p>
<p>这里有篇<a href="http://www.oreillynet.com/pub/a/databases/2007/07/12/getting-started-with-mysql-proxy.html?page=1">Getting Start</a>，是很好的入门教材，对于这套软件，定要保持关注。</p>
<ul class="related_post"><li>2007/10/18 -- <a href="http://www.opslife.com/mysql-proxy-learns-r-w-splitting/" title="MySQL Proxy应用:读写分离">MySQL Proxy应用:读写分离</a> (2)</li><li>2009/12/28 -- <a href="http://www.opslife.com/install-nginx-php-mysql-on-debian-lenny/" title="Debian Lenny安装nginx+PHP+MySQL傻瓜手记">Debian Lenny安装nginx+PHP+MySQL傻瓜手记</a> (15)</li><li>2009/03/15 -- <a href="http://www.opslife.com/nginx-php-fastcgi-mysql-under-linux-vps/" title="手记:VPS上安装Nginx+PHP+FastCGI+MySQL">手记:VPS上安装Nginx+PHP+FastCGI+MySQL</a> (3)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.opslife.com/new-software-mysql-proxy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

