<?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>QLJ's Blog &#187; mysql</title>
	<atom:link href="http://qlj.sh.cn/tag/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://qlj.sh.cn</link>
	<description>搜集网络信息,风云磅实验</description>
	<lastBuildDate>Thu, 26 Jan 2012 21:20:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>php邮件发送类推荐 PHPMailer:smtp法</title>
		<link>http://qlj.sh.cn/php/20110526/phpmailler/</link>
		<comments>http://qlj.sh.cn/php/20110526/phpmailler/#comments</comments>
		<pubDate>Wed, 25 May 2011 19:48:11 +0000</pubDate>
		<dc:creator>qlj</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://qlj.sh.cn/?p=1118</guid>
		<description><![CDATA[这里说明下 我用的是SMTP 其他方法的请继续 GOOGLE
刚拿到的时候 测试了下发信 无异常 支持HTML
但是SMTP 发送的过程中 需要先于SMTP 服务器建立连接 然后发信
这个过程可能需要1-3秒 可能会导致网页响应较长时间
所以呢. 我们建立一个表用于存放发送的邮件队列
每次发送邮件是将 邮件内容加入表中
然后 用CRON 每分钟检查下表 若存在 则 队列发送
目前在起哄网上使用中.用于发送EMAIL认证邮件

&#160;
--
-- 表的结构 `qlj_sendmail`
--
&#160;
CREATE TABLE IF NOT EXISTS `qlj_sendmail` &#40;
  `id` int&#40;11&#41; NOT NULL AUTO_INCREMENT,
  `email` varchar&#40;50&#41; DEFAULT NULL,
  `subject` varchar&#40;120&#41; DEFAULT NULL,
  `body` text,
  `error` tinyint&#40;1&#41; NOT NULL DEFAULT '0',
  `dateline` [...]]]></description>
			<content:encoded><![CDATA[<p>这里说明下 我用的是SMTP 其他方法的请继续 GOOGLE<br />
刚拿到的时候 测试了下发信 无异常 支持HTML<br />
但是SMTP 发送的过程中 需要先于SMTP 服务器建立连接 然后发信<br />
这个过程可能需要1-3秒 可能会导致网页响应较长时间<br />
所以呢. 我们建立一个表用于存放发送的邮件队列<br />
每次发送邮件是将 邮件内容加入表中<br />
然后 用CRON 每分钟检查下表 若存在 则 队列发送<br />
目前在<a href="http://www.qihoon.com/" title="起哄网">起哄网</a>上使用中.用于发送EMAIL认证邮件</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;">&nbsp;
<span style="color: #808080; font-style: italic;">--</span>
<span style="color: #808080; font-style: italic;">-- 表的结构 `qlj_sendmail`</span>
<span style="color: #808080; font-style: italic;">--</span>
&nbsp;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`qlj_sendmail`</span> <span style="color: #66cc66;">&#40;</span>
  <span style="color: #ff0000;">`id`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">,</span>
  <span style="color: #ff0000;">`email`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">50</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">,</span>
  <span style="color: #ff0000;">`subject`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">120</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">,</span>
  <span style="color: #ff0000;">`body`</span> text<span style="color: #66cc66;">,</span>
  <span style="color: #ff0000;">`error`</span> tinyint<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> <span style="color: #ff0000;">'0'</span><span style="color: #66cc66;">,</span>
  <span style="color: #ff0000;">`dateline`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">,</span>
  <span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span>  <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`id`</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM  <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>utf8 <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">1</span> ;</pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">#!/usr/local/php/bin/php -q
<span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #b1b100;">include_once</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'mysql.class.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">include_once</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'class.phpmailer.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span>                <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> PHPMailer<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$db</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> DB<span style="color: #339933;">;</span>
<span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">connect</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">IsSMTP</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
	<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Host</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">//SMTP服务器</span>
	<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Username</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;no-reply@qihoon.com&quot;</span><span style="color: #339933;">;</span>  
	<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Password</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>    
	<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">FromName</span> <span style="color: #339933;">=</span>  <span style="color: #0000ff;">&quot;起哄网信使&quot;</span><span style="color: #339933;">;</span>   
	<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">SMTPAuth</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>          
	<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">From</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Username</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">CharSet</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;utf8&quot;</span><span style="color: #339933;">;</span>           
	<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Encoding</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;base64&quot;</span><span style="color: #339933;">;</span> 
	<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">AddAddress</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sendto_email</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
<span style="color: #000088;">$result</span><span style="color: #339933;">=</span><span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT id,email,subject,body FROM `qlj_sendmail` where error='0' LIMIT 0 , 30&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">num_rows</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$result</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #990000;">exit</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$row</span> <span style="color: #339933;">=</span><span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">fetch_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$result</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">AltBody</span> <span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;text/html&quot;</span><span style="color: #339933;">;</span> 
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Subject</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'subject'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">MsgHTML</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'body'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">AddAddress</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;email&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;full_name&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Send</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;">//$errorid[]=array(id=&gt;$row['id'],error=&gt;$mail-&gt;ErrorInfo);//本来想记录出错信息的.但是表是INT 不浪费字段了.</span>
	  <span style="color: #000088;">$errid</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
     <span style="color: #000088;">$okid</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ClearAddresses</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$okid</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&gt;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$sok</span><span style="color: #339933;">=</span><span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">','</span><span style="color: #339933;">,</span><span style="color: #000088;">$okid</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;delete from `qlj_sendmail` where id in(<span style="color: #006699; font-weight: bold;">$sok</span>) ;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$errid</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&gt;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$serr</span><span style="color: #339933;">=</span><span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">','</span><span style="color: #339933;">,</span><span style="color: #000088;">$errid</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;update `qlj_sendmail` set error='1' where id in(<span style="color: #006699; font-weight: bold;">$serr</span>) ;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>最后在  CRONTAB中 加入  每分钟的计划任务<br />
*/1 * * * * /usr/local/php/bin/php /home/yingouqlj/send_mail.php</p>
<p>参考官方实例.</p>
]]></content:encoded>
			<wfw:commentRss>http://qlj.sh.cn/php/20110526/phpmailler/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>php延时更新点击数[文件缓存]</title>
		<link>http://qlj.sh.cn/php/20110309/php_lazyinsert_num/</link>
		<comments>http://qlj.sh.cn/php/20110309/php_lazyinsert_num/#comments</comments>
		<pubDate>Tue, 08 Mar 2011 16:56:05 +0000</pubDate>
		<dc:creator>qlj</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[memcache]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[thinkphp]]></category>

		<guid isPermaLink="false">http://qlj.sh.cn/?p=1108</guid>
		<description><![CDATA[想法来源
用户积分增加
列入 用户访问空间时增加1分
用户首次登陆增加10分
那么每次操作都要insert一次
这显然很浪费
如果可以缓存一次性写入那么就可以降低MYSQL的压力了
像上面的情况我只要一次性增加11分即可
在THINKPHP中找到了方法
下面代码转载自THINKPHP(advmodel.class.php)

setLazyInc&#40;$field,$condition='',$step=1,$lazyTime=0&#41; &#123; //缓存累加
        if&#40;empty&#40;$condition&#41; &#38;&#38; isset&#40;$this-&#62;options&#91;'where'&#93;&#41;&#41;
            $condition   =  $this-&#62;options&#91;'where'&#93;;
        if&#40;empty&#40;$condition&#41;&#41; &#123; // 没有条件不做任何更新
            return false;
 [...]]]></description>
			<content:encoded><![CDATA[<p>想法来源</p>
<p>用户积分增加</p>
<p>列入 用户访问空间时增加1分</p>
<p>用户首次登陆增加10分</p>
<p>那么每次操作都要insert一次</p>
<p>这显然很浪费</p>
<p>如果可以缓存一次性写入那么就可以降低MYSQL的压力了</p>
<p>像上面的情况我只要一次性增加11分即可</p>
<p>在THINKPHP中找到了方法</p>
<p>下面代码转载自<a href="http://qlj.sh.cn/tag/thinkphp/">THINKPHP</a>(advmodel.class.php)</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">setLazyInc<span style="color: #009900;">&#40;</span><span style="color: #000088;">$field</span><span style="color: #339933;">,</span><span style="color: #000088;">$condition</span><span style="color: #339933;">=</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #000088;">$step</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span><span style="color: #000088;">$lazyTime</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">//缓存累加</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$condition</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'where'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
            <span style="color: #000088;">$condition</span>   <span style="color: #339933;">=</span>  <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'where'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$condition</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">// 没有条件不做任何更新</span>
            <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$lazyTime</span><span style="color: #339933;">&gt;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #666666; font-style: italic;">// 延迟写入</span>
            <span style="color: #000088;">$guid</span> <span style="color: #339933;">=</span>  <span style="color: #990000;">md5</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">name</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'_'</span><span style="color: #339933;">.</span><span style="color: #000088;">$field</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'_'</span><span style="color: #339933;">.</span><span style="color: #990000;">serialize</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$condition</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000088;">$step</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">lazyWrite</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$guid</span><span style="color: #339933;">,</span><span style="color: #000088;">$step</span><span style="color: #339933;">,</span><span style="color: #000088;">$lazyTime</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">false</span> <span style="color: #339933;">===</span> <span style="color: #000088;">$step</span> <span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// 等待下次写入</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #b1b100;">return</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setField</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$field</span><span style="color: #339933;">,</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'exp'</span><span style="color: #339933;">,</span><span style="color: #000088;">$field</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'+'</span><span style="color: #339933;">.</span><span style="color: #000088;">$step</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #000088;">$condition</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> lazyWrite<span style="color: #009900;">&#40;</span><span style="color: #000088;">$guid</span><span style="color: #339933;">,</span><span style="color: #000088;">$step</span><span style="color: #339933;">,</span><span style="color: #000088;">$lazyTime</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>   
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">false</span> <span style="color: #339933;">!==</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$value</span> <span style="color: #339933;">=</span> F<span style="color: #009900;">&#40;</span><span style="color: #000088;">$guid</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">// 存在缓存写入数据</span>
            <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&gt;</span>F<span style="color: #009900;">&#40;</span><span style="color: #000088;">$guid</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'_time'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #000088;">$lazyTime</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #666666; font-style: italic;">// 延时更新时间到了，删除缓存数据 并实际写入数据库</span>
                F<span style="color: #009900;">&#40;</span><span style="color: #000088;">$guid</span><span style="color: #339933;">,</span><span style="color: #009900; font-weight: bold;">NULL</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                F<span style="color: #009900;">&#40;</span><span style="color: #000088;">$guid</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'_time'</span><span style="color: #339933;">,</span><span style="color: #009900; font-weight: bold;">NULL</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #b1b100;">return</span> <span style="color: #000088;">$value</span><span style="color: #339933;">+</span><span style="color: #000088;">$step</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
                <span style="color: #666666; font-style: italic;">// 追加数据到缓存</span>
                F<span style="color: #009900;">&#40;</span><span style="color: #000088;">$guid</span><span style="color: #339933;">,</span><span style="color: #000088;">$value</span><span style="color: #339933;">+</span><span style="color: #000088;">$step</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">// 没有缓存数据</span>
            F<span style="color: #009900;">&#40;</span><span style="color: #000088;">$guid</span><span style="color: #339933;">,</span><span style="color: #000088;">$step</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #666666; font-style: italic;">// 计时开始</span>
            F<span style="color: #009900;">&#40;</span><span style="color: #000088;">$guid</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'_time'</span><span style="color: #339933;">,</span><span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span></pre></div></div>

<p>上面有个 FUNCTION F 在FACTIONS.PHP</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">// 快速文件数据读取和保存 针对简单类型数据 字符串、数组
function F($name,$value='',$path=DATA_PATH) { //修改$path为自己的缓存路径
    static $_cache = array();
    $filename   =   $path.$name.'.php';
    if('' !== $value) {
        if(is_null($value)) {
            // 删除缓存
            return unlink($filename);
        }else{
            // 缓存数据
            $dir   =  dirname($filename);
            // 目录不存在则创建
            if(!is_dir($dir))  mkdir($dir);
            return file_put_contents($filename,&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span>\nreturn <span style="color: #0000ff;">&quot;.var_export(<span style="color: #006699; font-weight: bold;">$value</span>,true).&quot;</span><span style="color: #339933;">;</span>\n<span style="color: #000000; font-weight: bold;">?&gt;</span>&quot;);
        }
    }</pre></div></div>

<p>调用方法</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">setLazyDec<span style="color: #009900;">&#40;</span><span style="color: #000088;">$field</span><span style="color: #339933;">,</span><span style="color: #000088;">$condition</span><span style="color: #339933;">=</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #000088;">$step</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span><span style="color: #000088;">$lazyTime</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> 
<span style="color: #666666; font-style: italic;">//根据需要 自己修改吧我加入了table 等多个</span>
<span style="color: #000000; font-weight: bold;">function</span> lazyaddint<span style="color: #009900;">&#40;</span><span style="color: #000088;">$table</span><span style="color: #339933;">,</span><span style="color: #000088;">$field</span><span style="color: #339933;">,</span><span style="color: #000088;">$condition</span><span style="color: #339933;">=</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #000088;">$num</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span><span style="color: #000088;">$ltime</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
<span style="color: #666666; font-style: italic;">//调用方法 更具实际需要修改吧</span>
lazyaddint<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'表明'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'字段名'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;WHERE条件&quot;</span><span style="color: #339933;">,</span>增加数量<span style="color: #339933;">,</span>缓存时间<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>此方法 会在缓存目录中创建2个临时文件</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">//07e8c1b06dbdc4f282bf7bf9311a1fce_time.php
<span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">1299602761</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
//07e8c1b06dbdc4f282bf7bf9311a1fce.php
<span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">21</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>根据时间超过 设定的时间就写入数据库<br />
此方法已经适用无问题<br />
感觉方法不太好.. 期待MEMCACHED的方式</p>
]]></content:encoded>
			<wfw:commentRss>http://qlj.sh.cn/php/20110309/php_lazyinsert_num/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php+mysql模仿android中短信界面的效果</title>
		<link>http://qlj.sh.cn/php/20100413/phpmysql-android-mms/</link>
		<comments>http://qlj.sh.cn/php/20100413/phpmysql-android-mms/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 20:11:01 +0000</pubDate>
		<dc:creator>qlj</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://qlj.sh.cn/?p=1071</guid>
		<description><![CDATA[十分喜欢android的短信
像 QQ一样。。
缺点是。。 发消息也想QQ一样。。。
一条接一条。。 钱也一条接一条的扣。。
哈哈
现在大部分网站的短信都类似于 GMAIL 一样。或者说。跟论坛主题一样。 。 一个贴。。后面回复。。
改变下模式。。做自己喜欢的效果。。

android短信的效果
对方号码 + 最后一条消息内容（简略） +条数
那变成站内信的效果就是
发信人资料  + 简短消息 +条数+ 最后时间
下面是PHP +MYSQL部分
觉得自己的MYSQL太烂了 希望有人能看到这个贴后优化下查询过程

$query=$db-&#62;query&#40;&#34;select * from qlj_pm where pmid in (SELECT max(pmid) FROM qlj_pm where tuid='{$qljid}' GROUP BY fuid )&#34;&#41;;
while&#40;$res=$db-&#62;fetch_array&#40;$query&#41;&#41;
&#123;
$count=$db-&#62;fetch_array&#40;$db-&#62;query&#40;&#34;select count(pmid) from qlj_pm where (fuid='{$res['fuid']}' and tuid='{$qljid}') or  (fuid='{$qljid}' and tuid='{$res['fuid']}')&#34;&#41;&#41;;
$res&#91;'count'&#93;=$count&#91;'count(pmid)'&#93;;//这个是条数
&#160;
&#125;

]]></description>
			<content:encoded><![CDATA[<p>十分喜欢<a href="http://qlj.sh.cn/tag/android/">android</a>的短信<br />
像 QQ一样。。<br />
缺点是。。 发消息也想QQ一样。。。<br />
一条接一条。。 钱也一条接一条的扣。。<br />
哈哈<br />
现在大部分网站的短信都类似于 GMAIL 一样。或者说。跟论坛主题一样。 。 一个贴。。后面回复。。<br />
改变下模式。。做自己喜欢的效果。。<br />
<span id="more-1071"></span><br />
android短信的效果<br />
对方号码 + 最后一条消息内容（简略） +条数<br />
那变成站内信的效果就是<br />
发信人资料  + 简短消息 +条数+ 最后时间<br />
下面是PHP +MYSQL部分<br />
觉得自己的MYSQL太烂了 希望有人能看到这个贴后优化下查询过程</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$query</span><span style="color: #339933;">=</span><span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;select * from qlj_pm where pmid in (SELECT max(pmid) FROM qlj_pm where tuid='<span style="color: #006699; font-weight: bold;">{$qljid}</span>' GROUP BY fuid )&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$res</span><span style="color: #339933;">=</span><span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">fetch_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$query</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$count</span><span style="color: #339933;">=</span><span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">fetch_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;select count(pmid) from qlj_pm where (fuid='<span style="color: #006699; font-weight: bold;">{$res['fuid']}</span>' and tuid='<span style="color: #006699; font-weight: bold;">{$qljid}</span>') or  (fuid='<span style="color: #006699; font-weight: bold;">{$qljid}</span>' and tuid='<span style="color: #006699; font-weight: bold;">{$res['fuid']}</span>')&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$res</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'count'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #000088;">$count</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'count(pmid)'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//这个是条数</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://qlj.sh.cn/php/20100413/phpmysql-android-mms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MYSQL替换语句</title>
		<link>http://qlj.sh.cn/mysql/20100401/mysql-replace/</link>
		<comments>http://qlj.sh.cn/mysql/20100401/mysql-replace/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 12:23:49 +0000</pubDate>
		<dc:creator>qlj</dc:creator>
				<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://qlj.sh.cn/?p=1063</guid>
		<description><![CDATA[HOHO采来的数据还是需要改改的
比如删除不需要的HTML标签
收集到了批量替换语句

UPDATE 表名 SET
指定字段 = replace&#40;指定字段, ’要替换的字符串’, ’想要的字符串’&#41; 
WHERE 条件;

今天用到的删除空格的

UPDATE `qlj_joke` SET content = replace&#40;content,'&#38;nbsp;',''&#41; ;

]]></description>
			<content:encoded><![CDATA[<p>HOHO采来的数据还是需要改改的<br />
比如删除不需要的HTML标签<br />
收集到了批量替换语句</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">UPDATE</span> 表名 <span style="color: #990099; font-weight: bold;">SET</span>
指定字段 <span style="color: #CC0099;">=</span> <span style="color: #000099;">replace</span><span style="color: #FF00FF;">&#40;</span>指定字段<span style="color: #000033;">,</span> ’要替换的字符串’<span style="color: #000033;">,</span> ’想要的字符串’<span style="color: #FF00FF;">&#41;</span> 
<span style="color: #990099; font-weight: bold;">WHERE</span> 条件<span style="color: #000033;">;</span></pre></div></div>

<p>今天用到的删除空格的</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">UPDATE</span> <span style="color: #008000;">`qlj<span style="color: #008080; font-weight: bold;">_</span>joke`</span> <span style="color: #990099; font-weight: bold;">SET</span> content <span style="color: #CC0099;">=</span> <span style="color: #000099;">replace</span><span style="color: #FF00FF;">&#40;</span>content<span style="color: #000033;">,</span><span style="color: #008000;">'&amp;nbsp;'</span><span style="color: #000033;">,</span><span style="color: #008000;">''</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #000033;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://qlj.sh.cn/mysql/20100401/mysql-replace/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>mysql错误ERROR 1062 (23000) Duplicate entryfor key 2</title>
		<link>http://qlj.sh.cn/mysql/20100105/mysql-error-1062-23000/</link>
		<comments>http://qlj.sh.cn/mysql/20100105/mysql-error-1062-23000/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 10:00:35 +0000</pubDate>
		<dc:creator>qlj</dc:creator>
				<category><![CDATA[mysql]]></category>
		<category><![CDATA[phpmyadmin]]></category>
		<category><![CDATA[UTF-8]]></category>

		<guid isPermaLink="false">http://qlj.sh.cn/?p=973</guid>
		<description><![CDATA[之前服务器数据丢失后决定搬家了
用PHPMYADMIN导出
因为数据库文件比较大
所以直接使用MYSQL命令直接导入

相关请翻阅以前的两片摘录
MYSQL导入导出工具mysqldump详细手册
MySQL导出导入命令
但是结果却不断的出现

yingouqlj@qljlearnhost:/home/jump$ mysql uynetwork &#60;z.sql -u root -p
Enter password:
ERROR 1062 &#40;23000&#41; at line 20449: Duplicate entry '??????' for key 1

费解
上网查阅后有说使用-FORCE 强制导入

mysql uynetwork &#60;a.sql -force -u root -p

然后出现一大段错误
但是还是存在问题
最后发现原来在PHPMYADMIN导出的时候文件编码是UTF-8的
最后使用

mysql uynetwork &#60;p.sql -u root -p --default-character-set=utf8

]]></description>
			<content:encoded><![CDATA[<p>之前服务器数据丢失后决定搬家了<br />
用PHPMYADMIN导出<br />
因为数据库文件比较大<br />
所以直接使用MYSQL命令直接导入<br />
<span id="more-973"></span></p>
<p>相关请翻阅以前的两片摘录<br />
<a title="Permanent Link to MYSQL导入导出工具mysqldump详细手册" rel="bookmark" href="http://qlj.sh.cn/mysql/20090813/mysql-mysqldump/">MYSQL导入导出工具mysqldump详细手册</a></p>
<p><a title="Permanent Link to MySQL导出导入命令" rel="bookmark" href="http://qlj.sh.cn/mysql/20090710/mysql_input_output/">MySQL导出导入命令</a><br />
但是结果却不断的出现</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">yingouqlj@qljlearnhost:/home/jump$ mysql uynetwork <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;z.sql</span> -u root -p</span>
<span style="color: #009900;">Enter password:</span>
<span style="color: #009900;">ERROR 1062 <span style="color: #66cc66;">&#40;</span>23000<span style="color: #66cc66;">&#41;</span> at line 20449: Duplicate entry <span style="color: #ff0000;">'??????'</span> for key 1</span></pre></div></div>

<p>费解<br />
上网查阅后有说使用-FORCE 强制导入</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">mysql uynetwork <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;a.sql</span> -force -u root -p</span></pre></div></div>

<p>然后出现一大段错误<br />
但是还是存在问题<br />
最后发现原来在PHPMYADMIN导出的时候文件编码是UTF-8的<br />
最后使用</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">mysql uynetwork <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;p.sql</span> -u root -p --<span style="color: #000066;">default-character-set</span>=utf8</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://qlj.sh.cn/mysql/20100105/mysql-error-1062-23000/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ubuntu 9.04 APT-GET 安装nginx+php+mysql</title>
		<link>http://qlj.sh.cn/linux/20090815/ubuntu-9-04-apt-get-nginx-mysql-php/</link>
		<comments>http://qlj.sh.cn/linux/20090815/ubuntu-9-04-apt-get-nginx-mysql-php/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 20:39:45 +0000</pubDate>
		<dc:creator>qlj</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://qlj.sh.cn/?p=786</guid>
		<description><![CDATA[前面因为CENTOS LIVE的缘故(UBUNTU你赢了),阴沟已换上了UBUNTU SERVER
传言 源里面已经加入了NGINX

通过APT-GET安装 NGINX
sudo apt-get install nginx
装好后 可以直接用WEB访问了
然后安装MYSQL-SERVER MYSQL-CLIENT
因为在光盘中带了这个包
免去了下载的过程
填加到源里面
apt-cdrom add
安装 sudo apt-get install mysql-server mysql-client
安装PHP
sudo apt-get install php5-cli php5-cgi  php5-mysql
另外还需要安装 LIGHTTPD
apt-get install lighttpd
这个时候 NGINX 已经启动了所以这个起不来 80端口冲突
然后关掉这个服务的自动启动
REDHAT  CENTOS中都有个 NTSYSV 还有 CHKCONFIG
在UBUNTU 中没的
今天装了个sysv-rc-conf
同样是通过APT-GET安装的(这个东西比YUM 还好用)
然后把 LIGHTTPD 关了
修改nginx的配置文件：/etc/nginx/sites-available/default
修改 server_name 192.168.1.88;(我ETH0 的IP 是这个)
修改index的一行修改为：
index index.php index.html index.htm;
去掉下面部分的注释：
location ~ \.php$ {
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
重新启动nginx:
/etc/init.d/nginx stop
/etc/init.d/nginx start
启动fastcgi php:
spawn-fcgi -a 127.0.0.1 -p 9000 [...]]]></description>
			<content:encoded><![CDATA[<p>前面因为CENTOS LIVE的缘故(<a href="http://qlj.sh.cn/linux/20090814/ubuntu-server-cd/">UBUNTU你赢了</a>),阴沟已换上了UBUNTU SERVER<br />
传言 源里面已经加入了NGINX<br />
<span id="more-786"></span></p>
<p>通过APT-GET安装 NGINX</p>
<p>sudo apt-get install nginx</p>
<p>装好后 可以直接用WEB访问了</p>
<p>然后安装MYSQL-SERVER MYSQL-CLIENT</p>
<p>因为在光盘中带了这个包</p>
<p>免去了下载的过程</p>
<p>填加到源里面</p>
<p>apt-cdrom add</p>
<p>安装 sudo apt-get install mysql-server mysql-client</p>
<p>安装PHP</p>
<p>sudo apt-get install php5-cli php5-cgi  php5-mysql</p>
<p>另外还需要安装 LIGHTTPD</p>
<p>apt-get install lighttpd</p>
<p>这个时候 <a href="http://qlj.sh.cn/tag/nginx/">NGINX</a> 已经启动了所以这个起不来 80端口冲突</p>
<p>然后关掉这个服务的自动启动</p>
<p>REDHAT  CENTOS中都有个 NTSYSV 还有 CHKCONFIG</p>
<p>在UBUNTU 中没的</p>
<p>今天装了个sysv-rc-conf</p>
<p>同样是通过APT-GET安装的(这个东西比YUM 还好用)</p>
<p>然后把 LIGHTTPD 关了</p>
<p>修改nginx的配置文件：/etc/nginx/sites-available/default<br />
修改 server_name <strong>192.168.1.88</strong>;(我ETH0 的IP 是这个)<br />
修改index的一行修改为：<br />
index index.php index.html index.htm;</p>
<p>去掉下面部分的注释：</p>
<p>location ~ \.php$ {<br />
fastcgi_pass   127.0.0.1:9000;<br />
fastcgi_index  index.php;<br />
fastcgi_param  SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name;<br />
include /etc/nginx/fastcgi_params;<br />
}<br />
重新启动nginx:</p>
<p>/etc/init.d/nginx stop<br />
/etc/init.d/nginx start<br />
启动fastcgi php:</p>
<p><strong>spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi</strong><br />
为了让php-cgi开机自启动</p>
<p>暂时记录到这里</p>
]]></content:encoded>
			<wfw:commentRss>http://qlj.sh.cn/linux/20090815/ubuntu-9-04-apt-get-nginx-mysql-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MYSQL导入导出工具mysqldump详细手册</title>
		<link>http://qlj.sh.cn/mysql/20090813/mysql-mysqldump/</link>
		<comments>http://qlj.sh.cn/mysql/20090813/mysql-mysqldump/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 07:51:01 +0000</pubDate>
		<dc:creator>qlj</dc:creator>
				<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://qlj.sh.cn/?p=775</guid>
		<description><![CDATA[备份数据需要用的..先收藏
经常需要翻翻的
只是图一个方便

导出要用到MySQL的mysqldump工具，基本用法是：
shell&#62; mysqldump [OPTIONS] database [tables]
如果你不给定任何表，整个数据库将被导出。
通过执行mysqldump &#8211;help，你能得到你mysqldump的版本支持的选项表。
注意，如果你运行mysqldump没有&#8211;quick或&#8211;opt选项，mysqldump将在导出结果前装载整个结果集到内存中，如果你正在导出一个大的数据库，这将可能是一个问题。
mysqldump支持下列选项：
&#8211;add-locks
在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE。(为了使得更快地插入到MySQL)。
&#8211;add-drop-table
在每个create语句之前增加一个drop table。
&#8211;allow-keywords
允许创建是关键词的列名字。这由表名前缀于每个列名做到。
-c, &#8211;complete-insert
使用完整的insert语句(用列名字)。
-C, &#8211;compress
如果客户和服务器均支持压缩，压缩两者间所有的信息。
&#8211;delayed
用INSERT DELAYED命令插入行。
-e, &#8211;extended-insert
使用全新多行INSERT语法。（给出更紧缩并且更快的插入语句）
-#, &#8211;debug[=option_string]
跟踪程序的使用(为了调试)。
&#8211;help
显示一条帮助消息并且退出。
&#8211;fields-terminated-by=&#8230;
　
&#8211;fields-enclosed-by=&#8230;
　
&#8211;fields-optionally-enclosed-by=&#8230;
　
&#8211;fields-escaped-by=&#8230;
　
&#8211;fields-terminated-by=&#8230;
这些选择与-T选择一起使用，并且有相应的LOAD DATA INFILE子句相同的含义。
LOAD DATA INFILE语法。
-F, &#8211;flush-logs
在开始导出前，洗掉在MySQL服务器中的日志文件。
-f, &#8211;force,
即使我们在一个表导出期间得到一个SQL错误，继续。
-h, &#8211;host=..
从命名的主机上的MySQL服务器导出数据。缺省主机是localhost。
-l, &#8211;lock-tables.
为开始导出锁定所有表。
-t, &#8211;no-create-info
不写入表创建信息(CREATE TABLE语句）
-d, &#8211;no-data
不写入表的任何行信息。如果你只想得到一个表的结构的导出，这是很有用的！
&#8211;opt
同&#8211;quick &#8211;add-drop-table &#8211;add-locks &#8211;extended-insert &#8211;lock-tables。
应该给你为读入一个MySQL服务器的尽可能最快的导出。
-pyour_pass, &#8211;password[=your_pass]
与服务器连接时使用的口令。如果你不指定“=your_pass”部分，mysqldump需要来自终端的口令。
-P port_num, &#8211;port=port_num
与一台主机连接时使用的TCP/IP端口号。（这用于连接到localhost以外的主机，因为它使用 Unix套接字。）
-q, &#8211;quick
不缓冲查询，直接导出至stdout；使用mysql_use_result()做它。
-S /path/to/socket, &#8211;socket=/path/to/socket
与localhost连接时（它是缺省主机)使用的套接字文件。
-T, &#8211;tab=path-to-some-directory
对于每个给定的表，创建一个table_name.sql文件，它包含SQL CREATE 命令，和一个table_name.txt文件，它包含数据。 注意：这只有在mysqldump运行在mysqld守护进程运行的同一台机器上的时候才工作。.txt文件的格式根据&#8211;fields-xxx和&#8211;lines&#8211;xxx选项来定。
-u user_name, &#8211;user=user_name
与服务器连接时，MySQL使用的用户名。缺省值是你的Unix登录名。
-O var=option, &#8211;set-variable var=option设置一个变量的值。可能的变量被列在下面。
-v, &#8211;verbose
冗长模式。打印出程序所做的更多的信息。
-V, &#8211;version
打印版本信息并且退出。
-w, &#8211;where=&#8217;where-condition&#8217;
只导出被选择了的记录；注意引号是强制的！
&#8220;&#8211;where=user=&#8217;jimf&#8217;&#8221; &#8220;-wuserid&#62;1&#8243; &#8220;-wuserid&#60;1&#8243; 最常见的mysqldump使用可能制作整个数据库的一个备份： mysqldump &#8211;opt database &#62; [...]]]></description>
			<content:encoded><![CDATA[<p>备份数据需要用的..先收藏<br />
经常需要翻翻的</p>
<p>只是图一个方便</p>
<p><span id="more-775"></span><br />
导出要用到MySQL的mysqldump工具，基本用法是：</p>
<p>shell&gt; mysqldump [OPTIONS] database [tables]</p>
<p>如果你不给定任何表，整个数据库将被导出。</p>
<p>通过执行mysqldump &#8211;help，你能得到你mysqldump的版本支持的选项表。</p>
<p>注意，如果你运行<a href="http://qlj.sh.cn/mysql/20090813/mysql-mysqldump/ ">mysqldump</a>没有&#8211;quick或&#8211;opt选项，mysqldump将在导出结果前装载整个结果集到内存中，如果你正在导出一个大的数据库，这将可能是一个问题。</p>
<p>mysqldump支持下列选项：</p>
<p>&#8211;add-locks<br />
在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE。(为了使得更快地插入到MySQL)。<br />
&#8211;add-drop-table<br />
在每个create语句之前增加一个drop table。<br />
&#8211;allow-keywords<br />
允许创建是关键词的列名字。这由表名前缀于每个列名做到。<br />
-c, &#8211;complete-insert<br />
使用完整的insert语句(用列名字)。<br />
-C, &#8211;compress<br />
如果客户和服务器均支持压缩，压缩两者间所有的信息。<br />
&#8211;delayed<br />
用INSERT DELAYED命令插入行。<br />
-e, &#8211;extended-insert<br />
使用全新多行INSERT语法。（给出更紧缩并且更快的插入语句）<br />
-#, &#8211;debug[=option_string]<br />
跟踪程序的使用(为了调试)。<br />
&#8211;help<br />
显示一条帮助消息并且退出。<br />
&#8211;fields-terminated-by=&#8230;<br />
　<br />
&#8211;fields-enclosed-by=&#8230;<br />
　<br />
&#8211;fields-optionally-enclosed-by=&#8230;<br />
　<br />
&#8211;fields-escaped-by=&#8230;<br />
　<br />
&#8211;fields-terminated-by=&#8230;<br />
这些选择与-T选择一起使用，并且有相应的LOAD DATA INFILE子句相同的含义。<br />
LOAD DATA INFILE语法。<br />
-F, &#8211;flush-logs<br />
在开始导出前，洗掉在MySQL服务器中的日志文件。<br />
-f, &#8211;force,<br />
即使我们在一个表导出期间得到一个SQL错误，继续。<br />
-h, &#8211;host=..<br />
从命名的主机上的MySQL服务器导出数据。缺省主机是localhost。<br />
-l, &#8211;lock-tables.<br />
为开始导出锁定所有表。<br />
-t, &#8211;no-create-info<br />
不写入表创建信息(CREATE TABLE语句）<br />
-d, &#8211;no-data<br />
不写入表的任何行信息。如果你只想得到一个表的结构的导出，这是很有用的！<br />
&#8211;opt<br />
同&#8211;quick &#8211;add-drop-table &#8211;add-locks &#8211;extended-insert &#8211;lock-tables。<br />
应该给你为读入一个MySQL服务器的尽可能最快的导出。<br />
-pyour_pass, &#8211;password[=your_pass]<br />
与服务器连接时使用的口令。如果你不指定“=your_pass”部分，mysqldump需要来自终端的口令。<br />
-P port_num, &#8211;port=port_num<br />
与一台主机连接时使用的TCP/IP端口号。（这用于连接到localhost以外的主机，因为它使用 Unix套接字。）<br />
-q, &#8211;quick<br />
不缓冲查询，直接导出至stdout；使用mysql_use_result()做它。<br />
-S /path/to/socket, &#8211;socket=/path/to/socket<br />
与localhost连接时（它是缺省主机)使用的套接字文件。<br />
-T, &#8211;tab=path-to-some-directory<br />
对于每个给定的表，创建一个table_name.sql文件，它包含SQL CREATE 命令，和一个table_name.txt文件，它包含数据。 注意：这只有在mysqldump运行在mysqld守护进程运行的同一台机器上的时候才工作。.txt文件的格式根据&#8211;fields-xxx和&#8211;lines&#8211;xxx选项来定。<br />
-u user_name, &#8211;user=user_name<br />
与服务器连接时，MySQL使用的用户名。缺省值是你的Unix登录名。<br />
-O var=option, &#8211;set-variable var=option设置一个变量的值。可能的变量被列在下面。<br />
-v, &#8211;verbose<br />
冗长模式。打印出程序所做的更多的信息。<br />
-V, &#8211;version<br />
打印版本信息并且退出。<br />
-w, &#8211;where=&#8217;where-condition&#8217;<br />
只导出被选择了的记录；注意引号是强制的！<br />
&#8220;&#8211;where=user=&#8217;jimf&#8217;&#8221; &#8220;-wuserid&gt;1&#8243; &#8220;-wuserid&lt;1&#8243; 最常见的mysqldump使用可能制作整个数据库的一个备份： mysqldump &#8211;opt database &gt; backup-file.sql</p>
<p>但是它对用来自于一个数据库的信息充实另外一个MySQL数据库也是有用的：</p>
<p>mysqldump &#8211;opt database | mysql &#8211;host=remote-host -C database</p>
<p>由于mysqldump导出的是完整的SQL语句，所以用mysql客户程序很容易就能把数据导入了：</p>
<p>shell&gt; mysqladmin create target_db_name<br />
shell&gt; mysql target_db_name &lt; backup-file.sql 就是 shell&gt; mysql 库名 &lt; 文件名</p>
]]></content:encoded>
			<wfw:commentRss>http://qlj.sh.cn/mysql/20090813/mysql-mysqldump/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL导出导入命令</title>
		<link>http://qlj.sh.cn/mysql/20090710/mysql_input_output/</link>
		<comments>http://qlj.sh.cn/mysql/20090710/mysql_input_output/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 02:21:18 +0000</pubDate>
		<dc:creator>qlj</dc:creator>
				<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://qlj.sh.cn/?p=751</guid>
		<description><![CDATA[1.导出整个数据库
mysqldump -u 用户名 -p 数据库名 &#62; 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc &#62; wcnc.sql
2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名&#62; 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc users&#62; wcnc_users.sql
3.导出一个数据库结构
mysqldump -u wcnc -p -d &#8211;add-drop-table smgp_apps_wcnc &#62;d:wcnc_db.sql
-d 没有数据 &#8211;add-drop-table 在每个create语句之前增加一个drop table
4.导入数据库
常用source 命令
进入mysql数据库控制台，
如mysql -u root -p
mysql&#62;use 数据库
然后使用source命令，后面参数为脚本文件(如这里用到的.sql)
mysql&#62;source d:wcnc_db.sql
]]></description>
			<content:encoded><![CDATA[<p>1.导出整个数据库</p>
<p>mysqldump -u 用户名 -p 数据库名 &gt; 导出的文件名</p>
<p>mysqldump -u wcnc -p smgp_apps_wcnc &gt; wcnc.sql</p>
<p>2.导出一个表</p>
<p>mysqldump -u 用户名 -p 数据库名 表名&gt; 导出的文件名</p>
<p>mysqldump -u wcnc -p smgp_apps_wcnc users&gt; wcnc_users.sql</p>
<p>3.导出一个数据库结构</p>
<p>mysqldump -u wcnc -p -d &#8211;add-drop-table smgp_apps_wcnc &gt;d:wcnc_db.sql</p>
<p>-d 没有数据 &#8211;add-drop-table 在每个create语句之前增加一个drop table</p>
<p>4.导入数据库</p>
<p>常用source 命令</p>
<p>进入<a title="mysql" href="http://qlj.sh.cn/category/mysql/">mysql</a>数据库控制台，</p>
<p>如mysql -u root -p</p>
<p>mysql&gt;use 数据库</p>
<p>然后使用source命令，后面参数为脚本文件(如这里用到的.sql)</p>
<p>mysql&gt;source d:wcnc_db.sql</p>
]]></content:encoded>
			<wfw:commentRss>http://qlj.sh.cn/mysql/20090710/mysql_input_output/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysql出错代码收集</title>
		<link>http://qlj.sh.cn/mysql/20080204/mysql-err/</link>
		<comments>http://qlj.sh.cn/mysql/20080204/mysql-err/#comments</comments>
		<pubDate>Mon, 04 Feb 2008 10:56:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://qlj.sh.cn/mysql/20080204/mysql-err/</guid>
		<description><![CDATA[ mysql错误代码收集

1005：创建表失败
1006：创建数据库失败
1007：数据库已存在，创建数据库失败
1008：数据库不存在，删除数据库失败
1009：不能删除数据库文件导致删除数据库失败
1010：不能删除数据目录导致删除数据库失败
1011：删除数据库文件失败
1012：不能读取系统表中的记录
1020：记录已被其他用户修改
1021：硬盘剩余空间不足，请加大硬盘可用空间
1022：关键字重复，更改记录失败
1023：关闭时发生错误
1024：读文件错误
1025：更改名字时发生错误
1026：写文件错误
1032：记录不存在
1036：数据表是只读的，不能对它进行修改
1037：系统内存不足，请重启数据库或重启服务器
1038：用于排序的内存不足，请增大排序缓冲区
1040：已到达数据库的最大连接数，请加大数据库可用连接数
1041：系统内存不足
1042：无效的主机名
1043：无效连接
1044：当前用户没有访问数据库的权限
1045：不能连接数据库，用户名或密码错误
1048：字段不能为空
1049：数据库不存在
1050：数据表已存在
1051：数据表不存在
1054：字段不存在
1065：无效的SQL语句，SQL语句为空
1081：不能建立Socket连接
1114：数据表已满，不能容纳任何记录
1116：打开的数据表太多
1129：数据库出现异常，请重启数据库
1130：连接数据库失败，没有连接数据库的权限
1133：数据库用户不存在
1141：当前用户无权访问数据库
1142：当前用户无权访问数据表
1143：当前用户无权访问数据表中的字段
1146：数据表不存在
1147：未定义用户对数据表的访问权限
1149：SQL语句语法错误
1158：网络错误，出现读错误，请检查网络连接状况
1159：网络错误，读超时，请检查网络连接状况
1160：网络错误，出现写错误，请检查网络连接状况
1161：网络错误，写超时，请检查网络连接状况
1062：字段值重复，入库失败
1169：字段值重复，更新记录失败
1177：打开数据表失败
1180：提交事务失败
1181：回滚事务失败
1203：当前用户和数据库建立的连接已到达数据库的最大连接数，请增大可用的数据库连接数或重启数据库
1205：加锁超时
1211：当前用户没有创建用户的权限
1216：外键约束检查失败，更新子表记录失败
1217：外键约束检查失败，删除或修改主表记录失败
1226：当前用户使用的资源已超过所允许的资源，请重启数据库或重启服务器
1227：权限不足，您无权进行此操作
1235：MySQL版本过低，不具有本功能
]]></description>
			<content:encoded><![CDATA[<p> mysql错误代码收集</p>
<p><span id="more-147"></span></p>
<pre>1005：创建表失败
1006：创建数据库失败
1007：数据库已存在，创建数据库失败
1008：数据库不存在，删除数据库失败
1009：不能删除数据库文件导致删除数据库失败
1010：不能删除数据目录导致删除数据库失败
1011：删除数据库文件失败
1012：不能读取系统表中的记录
1020：记录已被其他用户修改
1021：硬盘剩余空间不足，请加大硬盘可用空间
1022：关键字重复，更改记录失败
1023：关闭时发生错误
1024：读文件错误
1025：更改名字时发生错误
1026：写文件错误
1032：记录不存在
1036：数据表是只读的，不能对它进行修改
1037：系统内存不足，请重启数据库或重启服务器
1038：用于排序的内存不足，请增大排序缓冲区
1040：已到达数据库的最大连接数，请加大数据库可用连接数
1041：系统内存不足
1042：无效的主机名
1043：无效连接
1044：当前用户没有访问数据库的权限
1045：不能连接数据库，用户名或密码错误
1048：字段不能为空
1049：数据库不存在
1050：数据表已存在
1051：数据表不存在
1054：字段不存在
1065：无效的SQL语句，SQL语句为空
1081：不能建立Socket连接
1114：数据表已满，不能容纳任何记录
1116：打开的数据表太多
1129：数据库出现异常，请重启数据库
1130：连接数据库失败，没有连接数据库的权限
1133：数据库用户不存在
1141：当前用户无权访问数据库
1142：当前用户无权访问数据表
1143：当前用户无权访问数据表中的字段
1146：数据表不存在
1147：未定义用户对数据表的访问权限
1149：SQL语句语法错误
1158：网络错误，出现读错误，请检查网络连接状况
1159：网络错误，读超时，请检查网络连接状况
1160：网络错误，出现写错误，请检查网络连接状况
1161：网络错误，写超时，请检查网络连接状况
1062：字段值重复，入库失败
1169：字段值重复，更新记录失败
1177：打开数据表失败
1180：提交事务失败
1181：回滚事务失败
1203：当前用户和数据库建立的连接已到达数据库的最大连接数，请增大可用的数据库连接数或重启数据库
1205：加锁超时
1211：当前用户没有创建用户的权限
1216：外键约束检查失败，更新子表记录失败
1217：外键约束检查失败，删除或修改主表记录失败
1226：当前用户使用的资源已超过所允许的资源，请重启数据库或重启服务器
1227：权限不足，您无权进行此操作
1235：MySQL版本过低，不具有本功能</pre>
]]></content:encoded>
			<wfw:commentRss>http://qlj.sh.cn/mysql/20080204/mysql-err/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

