<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="http://feeds.qzone.qq.com/rss.xsl" version="1.0"?>
<rss version="2.0" xmlns:qz="http://qzone.qq.com">
<channel>
<title><![CDATA[ Ｘiao.℡F︷]]></title>
<description><![CDATA[『xiao.F』涳簡]]></description>
<link>http://376409255.qzone.qq.com</link>
<lastBuildDate>Fri, 27 Nov 2009 03:27:10 GMT</lastBuildDate>
<generator>Qzone</generator>
<language>zh-cn</language>
<copyright>Copyright (C), 2005-2008, Tencent Tech. Co., Ltd.</copyright>
<pubDate>Mon, 23 Nov 2009 19:51:45 GMT</pubDate>

<item>
<title><![CDATA[MySQL中SQL优化和架构设计的一些简单想法]]></title>
<link>http://376409255.qzone.qq.com/blog/1259005905</link>
<description><![CDATA[普通MySQL运行，数据量和访问量不大的话，是足够快的，但是当数据量和访问量剧增的时候，那么就会明显发现MySQL很慢，甚至down掉，那么就要考虑优化我们的MySQL了。<br>优化无非是从三个角度入手：<br>第一个是从硬件，增加硬件，增加服务器<br>第二个就是对我们的MySQL服务器进行优化，增加缓存大小，开多端口，读写分开<br>第三个就是我们的应用优化，建立索引，优化SQL查询语句，建立缓存等等<br>我就简单的说说SQL查询语句的优化。因为如果我们Web服务器比数据库服务器多或者性能优良的话，我们完全可以把数据库的压力转嫁到Web服务器上，因为如果单台MySQL，或者 Master/Slave 架构的数据库服务器都负担比较重，那么就可以考虑把MySQL的运算放到Web服务器上去进行。当然了，如果你Web服务器比数据库服务器差，那就把压力放在数据库服务器上吧，呵呵。<br>如果是把MySQL服务器的压力放在Web服务器上，那么很多运算就需要我们的程序去执行，比如Web程序中全部交给PHP脚本去处理数据。单台MySQL服务器，查询、更新、插入、删除都在一台服务器上的话，访问量一大，你会明显发现锁表现象，当对一个表进行更新删除操作的时候，就会拒绝其他操作，这样就会导致锁表，解决这个问题最简单直接的办法就是拿两台MySQL服务器，一台负责查询（select）操作，另外一台负责更改（update/delete/insert），然后进行同步，这样能够避免锁表，如果服务器更多，那么就更好处理了，可以采用分布式数据库架构和数据的散列存储，<a href="http://www.941sun.com/" target="_blank">惊天动地　</a><wbr />下面我们会简单说一下。<br>一、SQL的优化和注意事项<br>现在我们假设我们只有一台MySQL服务器，所有的select/update/insert/delete操作都是在这上面进行的，我们同时有三台Web服务器，通过DNS轮巡来访问，那么我们如何进行我们应用程序和SQL的优化。<br>1. Where条件<br>在查询中，WHERE条件也是一个比较重要的因素，尽量少并且是合理的where条件是很重要的，在写每一个where条件的时候都要仔细考虑，尽量在多个条件的时候，把会提取尽量少数据量的条件放在前面，这样就会减少后一个where条件的查询时间。<br>有时候一些where条件会导致索引无效，当使用了Mysql函数的时候，索引将无效，比如：select * from tbl1 where left(name, 4) = ''hylr''，那么这时候索引无效，还有就是使用LIKE进行搜索匹配的时候，这样的语句索引是无效的：select * from tbl1 where name like ''%xxx%''，但是这样索引是有效的：select * from tbl1 where name like ''xxx%''，所以谨慎的写你的SQL是很重要的。<br>2. 关联查询和子查询<br>数据库一个很重要的特点是关联查询，LEFT JOIN 和全关联，特别是多个表进行关联，因为每个关联表查询的时候，进行扫描的时候都是一个笛卡尔乘积的数量级，扫描数量很大，如果确实是需要进行<a href="http://www.8888tlsf.com/" target="_blank">天龙八部　</a><wbr />关联操作，请给where或者on的条件进行索引。<br>关联操作也是可能交给应用去操作的，看数据量的大小，如果数据量不是非常大，比如10万条以下，那么就可以交给程序去处理（totododo提出笔误，特此修正），程序分别提取左右两个表的数据，然后进行循环的扫描处理，返回结果，这个过程同样非常耗费Web服务器的资源，那么就需要取决于你愿意把压力放在Web服务器上或者数据库服务器上了。<br>子查询是在mysql5中支持的功能，比如：select * from tbl1 where id in(select id from tbl1)，那样效率是非常非常低，要尽量避免使用子查询，要是我，绝对不用<a href="http://www.0888my.com/" target="_blank">真封神　</a><wbr />，呵呵。<br>3.   一些耗费时间和资源的操作<br>SQL语句中一些浪费的操作，比如 DISTINCT、COUNT、GROUP BY、各种MySQL函数。这些操作都是比较耗资源的，我想应用最多的是count字句吧，如果使用count，尽量不要count（*），最好count一个字段，比如count（id），或者count(1)，（据totododo测试效率其实是一样的），同样能够起到统计的作用。如果不是十分必要，尽量不要使用distinct操作，就是提取唯一值，你完全可以把这个操作交给脚本程序去执行提取唯一值，减少MySQL的负担。group by 操作也是，确实需要分组的话，请谨慎的操作，如果是小批量的数据，可以考虑交给脚本程序去做。<br>至于MySQL的函数，估计很多常用，比如有人喜欢把截取字符串也交给MySQL去操作，或者时间转换操作，使用比较多的函数像 SUBSTR(), CONCAT(), DATE_FORMAT(), TO_DAYS(), MAX(), MIN(), MD5() 等等，这些操作完全可以交给脚本程序去做，减轻MySQL的负担。<br>4. 合理的建立索引<br>索引的提升速度的一个非常重要的手段，索引在对一些经常进行select操作，并且值比较唯一的字段是相当有效的，比如主键的id字段，唯一的名字name字段等等。<br>但是索引对于唯一值比较少的字段，比如性别gender字段，寥寥无几的类别字段等，意义不大，因为性别是50%的几率，索引几乎没有意义。对于update/delete/insert非常频繁的表，建立索引要慎重考虑，因为这些频繁的操作同样对于索引的维护工作量也是很大的，最后反而得不偿失，这个需要自己仔细考虑。索引同样不是越多越好，适当的索引会起到很关键的作用，不适当的索引，反而减低效率维护，增加维护<a href="http://www.jzsifu8.com/" target="_blank">机战　</a><wbr />索引的负担。<br>5. 监控sql执行效率<br>在select语句前面使用EXPLAIN字句能够查看当前这个select字句的执行情况，包括使用了什么操作、返回多少几率、对索引的使用情况如何等等，能够有效分析SQL语句的执行效率和合理程度。<br>另外使用MySQL中本身的慢查询日志：slow-log，同样能够记录查询中花费时间比较多的SQL语句，好对相应的语句进行优化和改写。<br>另外在MySQL终端下，使用show processlist命令能够有效的查看当前MySQL在进行的线程，包括线程的状态，是否锁表等等，可以实时的查看SQL执行情况，同时对一些锁表操作进行优化。<br>二、数据库服务器的架构和分布想法<br>对于服务器的架构设计，这个其实是比较重要的，一个合理的设计，能够让应用更好的运行。当然，架构的设计，取决于你的应用和你硬件的实际情况。我就简单的说说几种不同的数据库架构设计方式，权当是一个个人的想法，希望能够有帮助。<br>1. 单台服务器开多进程和端口<br>单台MySQL服务器，如果使用长链接等等都无法解决负载太大，连接太多的问题，不凡考虑采用一台MySQL上使用多个端口开启多个MySQL守护进程的方法来缓解压力。当然，前提是你的应用必须支持多端口，并且你的cpu和内存足够运行多个守护进程。<br>优点 是能够很好的缓解暂时服务器的压力，把不同的操作放在不同的端口，或者把不同的项目模块放在不同的端口去操作，良好的分担单个守护进程的压力。<br>缺点 是数据可能会产生紊乱，同时可能会导致很多未知的莫名<a href="http://www.300fy.com/" target="_blank">风云　</a><wbr />错误。呵呵<br>2. 使用Master/Slave的服务器结构<br>Mysql本身具有同步功能，完全可以利用这个功能。构建 Master/Slave 的主从服务器结构，最少只需要两台MySQL服务器，我们可以把 Master 服务器用户更新操作，包括 update/delete/insert，把Slave服务器用于查询操作，包括 select 操作，然后两机进行同步。<br>优点 是合理的把更新和查询的压力分担，并且能够避免锁表的问题。<br>缺点 是更新部实时，如果网络繁忙，可能会存在延迟的问题，并且任何一台服务器down掉了都很麻烦。<br>3. 使用分布式的散列存储<br>这种结构适合大数据量，并且负载比较大，然后服务器比较充足的情况。分布式存储结构，简单的可以是多台服务器，每台服务器功能是类似的，但是存储的数据不一样，比如做一个用户系统，那么把用户ID在1-10万以内的存储在A服务器，用户ID在10-20万存储在B服务器，20-3-万存储在C服务器，以此类推。如果每个用户访问的服务器不足，可以构建组服务器，就是每组用户拥有多台服务器，比如可以在某用户组建立两台MySQL服务器，一台Master，一台Slave，同样分离他们的更新和查询操作，或者可以设计成双向同步。同时，你的应用程序必须支持跨数据库和跨服务器的操作能力。<br>优点 是服务器的负载合理的被平摊，每台服务器都是负责一部分用户，如果一台服务器down掉了，不会影响其他用户ID的用户正常访问。同时添加节点比较容易，如果又增加了10万用户，那么又可以增加一个节点服务器，升级很方便。<br>缺点 是任何一台数据库服务器down掉或者数据丢失，那么这部分服务器的用户将很郁闷，数据都没了，当然，这个需要良好的备份机制。<br>另外，MySQL5.1已经有中文手册，第七章详细的讲解了MySQL优化的知识，值得学习：<br>说明：以上纯属我个人的一些不成熟的观点和想法，同时部分想法是没有经过试验的，不能保证准确性，所以请读者自己试验考察，也希望这些想法能够有一些帮助。<br>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++<br>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++<br>如果大家有异议，可以在后面补充。我会随时更新<a href="http://www.45jt.com/" target="_blank">惊天动地　</a><wbr />的。<br><br>现在大概列出如下望各位补充)<br>1.数据库的设计<br>尽量把数据库设计的更小的占磁盘空间.<br>1).尽可能使用更小的整数类型.(mediumint就比int更合适).<br>2).尽可能的定义字段为not null,除非这个字段需要null.（<span style="color:#ff12;line-height:1.8em;">这个规则只适合字段为KEY的情形</span><wbr />）<br>3).如果没有用到变长字段的话比如varchar,那就采用固定大小的纪录格式比如char.（CHAR 总是比VARCHR快）<br>4).表的主索引应该尽可能的短.这样的话每条纪录都有名字标志且更高效.<br>5).只创建确实需要的索引。索引有利于检索记录，但是不利于快速保存记录。如果总是要在表的组合字段上做搜索，那么就在这些字段上创建索引。索引的第一部分必须是最常使用的字段.如果总是需要用到很多字段，首先就应该多复制这些字段，使索引更好的压缩。<br><span style="color:#ff12;line-height:1.8em;">（这条只适合MYISAM引擎的表，对于INNODB则在保存记录的时候关系不大，因为INNODB是以事务为基础的，如果想快速保存记录的话，特别是大批量的导入记录的时候</span><wbr />）<br>6).所有数据都得在保存到数据库前进行处理。<br>7).所有字段都得有默认值。<br>8).在某些情况下,把一个频繁扫描的表分成两个速度会快好多。在对动态格式表扫描以取得相关记录时，它可能使用更小的静态格式表的情况下更是如此。 <br>(<span style="color:#ff12;line-height:1.8em;">具体的表现为：MYISAM表的MERGE类型，以及MYISAM和INNODB通用的分区，详情见手册</span><wbr />)<br>9).不会用到外键约束的地方尽量不要使用外键。<br>2.系统的用途<br>1).及时的关闭对MYSQL的连接。<br>2).explain 复杂的SQL语句。（<span style="color:#ff12;line-height:1.8em;">这样能确定你的SELECT 语句怎么优化最佳</span><wbr />）<br>3).如果两个关联表要做比较话，做比较的字段必须类型和长度都一致.（<span style="color:#ff12;line-height:1.8em;">在数据庞大的时候建立INDEX</span><wbr />）<br>4).LIMIT语句尽量要跟order by或者 distinct.这样可以避免做一次full table scan.<br>5).如果想要清空表的所有纪录,建议用truncate table tablename而不是delete from tablename.<br>不过有一个问题，truncate 不会在事务处理中回滚。因为她要调用create table <a href="http://www.youkusf.com/" target="_blank">真封神　</a><wbr /> 语句。<br>（<span style="color:#ff12;line-height:1.8em;">Truncate Table 语句先删除表然后再重建，这个是属于文件级别的，所以自然快N多</span><wbr />）<br><span style="color:#cc3333;line-height:1.8em;">实测例子：</span><wbr /><br><span style="color:#cc3333;line-height:1.8em;">song2为INNODB表。</span><wbr /><br><span style="color:#cc3333;line-height:1.8em;">mysql&gt; select count(1) from song2;</span><wbr /><br><span style="color:#cc3333;line-height:1.8em;">+----------+</span><wbr /><br><span style="color:#cc3333;line-height:1.8em;">| count(1) |</span><wbr /><br><span style="color:#cc3333;line-height:1.8em;">+----------+</span><wbr /><br><span style="color:#cc3333;line-height:1.8em;">|   500000 |</span><wbr /><br><span style="color:#cc3333;line-height:1.8em;">+----------+</span><wbr /><br><span style="color:#cc3333;line-height:1.8em;">1 row in set (0.91 sec)</span><wbr /><br><br><span style="color:#cc3333;line-height:1.8em;">mysql&gt; delete from song2;</span><wbr /><br><span style="color:#cc3333;line-height:1.8em;">Query OK, 500000 rows affected (15.70 sec)</span><wbr /><br><span style="color:#cc3333;line-height:1.8em;">mysql&gt; truncate table song2;</span><wbr /><br><span style="color:#cc3333;line-height:1.8em;">Query OK, 502238 rows affected (0.17 sec)</span><wbr /><br><br>6).能使用STORE PROCEDURE 或者 USER FUNCTION的时候.（<span style="color:#ff12;line-height:1.8em;">ROUTINE总是减少了服务器端的开销</span><wbr />）<br>7).在一条insert语句中采用多重纪录插入<a href="http://www.941sun.cn/" target="_blank">奇迹世界　</a><wbr />格式.而且使用load data infile来导入大量数据，这比单纯的indert快好多.（<span style="color:#ff12;line-height:1.8em;">在MYSQL中具体表现为：INSERT INTO TABLEQ VALUES (),(),...();</span><wbr />）<br>（<span style="color:#ff12;line-height:1.8em;">还有就是在MYISAM表中插入大量记录的时候先禁用到KEYS后面再建立KEYS,具体表现语句：</span><wbr /><br><span style="color:#ff12;line-height:1.8em;">ALTER TABLE TABLE1 DISABLE KEYS;ALTER TABLE TABLE1 ENABLE KEYS;</span><wbr /><br><span style="color:#ff12;line-height:1.8em;">而对于INNNODB 表在插入前先 set autocommit=0;完了后：set autocommit=1;这样效率比较高。</span><wbr />）<br>8).经常OPTIMIZE TABLE 来整理碎片.<br>9).还有就是date 类型的数据如果频繁要做比较的话尽量保存在unsigned int 类型比较快。<br>3.系统的瓶颈<br>1).磁盘搜索.<br>并行搜索,把数据分开存放到多个磁盘中，这样能加快搜索时间.<br>2).磁盘读写(IO)<br>可以从多个媒介中并行的读取数据。<br>3).CPU周期<br>数据存放在主内存中.这样就得增加CPU的个数来处理这些数据。<br>4).内存带宽<br>当CPU要将更多的数据存放到CPU的缓存中来的话,内存的带宽就成了瓶颈.<br><span style="text-decoration:underline;"><wbr />====</span><wbr /> <!--v:3.2--> ]]></description>
<category><![CDATA[个人日记]]></category>
<author><![CDATA[376409255@qq.com( Ｘiao.℡F︷)]]></author>
<comments>http://376409255.qzone.qq.com/blog/1259005905#comment</comments>
<qz:effect>142606848</qz:effect>
<pubDate>Mon, 23 Nov 2009 19:51:45 GMT</pubDate>
<guid>http://376409255.qzone.qq.com/blog/1259005905</guid>
</item>

<item>
<title><![CDATA[FreeBSD 设置网卡IP,网关和DNS等 技巧[来自学无止境的BLOG]]]></title>
<link>http://376409255.qzone.qq.com/blog/1257907356</link>
<description><![CDATA[<span style="font-weight:bold"><wbr />FreeBSD</span><wbr />版本为5.3版,基本配置网卡<span style="font-weight:bold"><wbr />IP</span><wbr />与网关的配置文件是目录/etc下面的rc.conf文件.在配置之前请使用ifconfig -a来查看正确的网卡名,本人的是lnc0, 网络地址是:192.168.1.0/24的网络,<span style="font-weight:bold"><wbr />IP</span><wbr />地址为192.168.1.5,因此在rc.conf文件中添加:ifconfig_lnc0=&quot;inet 192.168.1.5 netmask 255.255.255.0&quot;,然后配置网关.在BSD中网关称为默认路由因此只要在rc.conf中添加一句:<br>defaultrouter=&quot;192.168.1.1&quot;,这就是我的网关了.<br><br>最后添加NDS,NDS的配置也是同样在/etc目录下面的一个配置文件,叫&quot;resolv.conf&quot;的文件,<br>如果在该目录下面没有该文件可以使用touch resolv.conf创建一个新的,然后进入配置该文件.resolv.conf 的记录是： <br>nameserver 要查询的域名服务器的<span style="font-weight:bold"><wbr />IP</span><wbr /> 地址。服务器按照顺序查询。 搜索域名的列表。这通常是由本地的域名决定的。search <br>本地域名。domain ,本人的resolv.conf配置为:<br>nameserver 202.96.128.86<br>nameserver 61.144.56.188<br><br>我只配置了DNS服务器的<span style="font-weight:bold"><wbr />IP</span><wbr />地址就够了重启动后配置将会马上生效,如有不懂请查阅<span style="font-weight:bold"><wbr />FreeBSD</span><wbr />文档<br><br><br><br>freebsd添加自启动的方法<br>比如我要启动mysql， 那么我就需要写一个 mysql.sh的文件，里面包含以下内容： <br><br>#! /bin/sh <br><br>/usr/local/mysql/bin/mysqld_safe &amp; <br><br>然后把mysql.sh 复制到 /usr/local/etc/rc.d 下面，然后： <br><br>chmod 755 /usr/local/etc/rc.d/mysql.sh <br><br>就是设置为该脚本文件属性为755，重启动系统后就能自动启动该服务了！ <br><br>启动其他服务类似。 <br><br>freebsd添加自启动的方法<br><br>当然，除了上面的启动服务方式，还有一种方法。 <br>就是在 /etc/rc.local 里面加上要启动的服务，那么系统下次启动的时候就会自动启动。 <br>如果 /etc/rc.local 文件不存在，那么就建立一个，比如我们要让我们的mysql启动，那么就编辑该文件： <br><br>ee /etc/rc.local <br><br>然后在里面加上一行： <br><br>/usr/local/mysql/bin/mysqld_safe &amp;<br><br><br>FreeBSD默认不允许以root登录ssh<br>解决方法一（推荐做法）：<br><br><br><br>用非<span style="font-weight:bold"><wbr />root</span><wbr />用户登录<br><br>（出于安全性考虑，<span style="font-weight:bold"><wbr />FreeBSD</span><wbr />默认不<span style="font-weight:bold"><wbr />允许</span><wbr />以<span style="font-weight:bold"><wbr />root</span><wbr />登录<span style="font-weight:bold"><wbr />ssh</span><wbr />）<br><br>如果需要<span style="font-weight:bold"><wbr />root</span><wbr />身份，su 一下就切换过去了。<br><br><br>解决方法二（不推荐做法）：<br><br><br><br>vi /etc/<span style="font-weight:bold"><wbr />ssh</span><wbr />/sshd_config<br><br><br><br>PermitRootLogin yes<br><br>Linux 及 <span style="font-weight:bold"><wbr />FreeBSD</span><wbr /> 修改主機名也是同以下指令:<br>hostname <span style="font-weight:bold"><wbr />host</span><wbr />.mydomain.com<br>其中 <span style="font-weight:bold"><wbr />host</span><wbr />.mydomain.com 是新指定的 hostname，但為了系統下次啟動時也能自動使用新 hostname，需要作以下修改:<br><span style="font-weight:bold"><wbr />Linux</span><wbr /><br>開啟 /etc/sysconfig/network (如果是 Debian 便開啟 /etc/hostname)，將 hostname 一行改成新 hostname<br><span style="font-weight:bold"><wbr /><span style="font-weight:bold"><wbr />FreeBSD</span><wbr /></span><wbr /><br>開啟 /etc/rc.conf，將 hostname 一行改成新 hostname<br><br><br>Linux 及 FreeBSD 修改 hostname<br><span style="font-weight:bold"><wbr />December 9, 2007</span><wbr /> · <a href="http://www.real-blog.com/category/linux-bsd-notes/" target="_blank">Linux / BSD 筆記</a><wbr /> ·<br>1 Comment <a href="http://www.real-blog.com/linux-bsd-notes/469#comment" target="_blank"><span style="font-weight:bold"><wbr />&amp;raquo;</span><wbr /></a><wbr /><ol style="list-style-type:decimal"><li style="margin:25px;">sysctl -w kernel.hostname=xxxx<br>把這段寫在/etc/rc.local<br>這指令應該會讓系統名稱改變即時升笑<br>or<br>vi /etc/sysctl.conf<br>kernel.hostname = xxxx<br></li></ol><br>懒虫型的，做个实际例子<br>#ee /etc/rc.conf<br>defaultrouter=&quot;60.8.63.1&quot;<br>ifconfig_bge0=&quot;inet 60.8.63.138 netmask 255.255.255.0&quot;<br>ifconfig_bge1=&quot;inet 10.9.10.138 netmask 255.255.255.0&quot;<br>ifconfig_bge1_alias0=&quot;inet 192.168.0.138 netmask 255.255.255.0&quot;<br><br>然后<br>#sh /etc/netstart<br> <!--v:3.2--> ]]></description>
<category><![CDATA[IT技术文档]]></category>
<author><![CDATA[376409255@qq.com( Ｘiao.℡F︷)]]></author>
<comments>http://376409255.qzone.qq.com/blog/1257907356#comment</comments>
<qz:effect>134218240</qz:effect>
<pubDate>Wed, 11 Nov 2009 02:42:36 GMT</pubDate>
<guid>http://376409255.qzone.qq.com/blog/1257907356</guid>
</item>

<item>
<title><![CDATA[配置Mysql实现远程操作]]></title>
<link>http://376409255.qzone.qq.com/blog/1257231653</link>
<description><![CDATA[<br>刚刚在虚拟机简单使用apt-get命令快速安装mysql数据库<br>问题来了，想在主机上使用root账号远程登陆数据库进行管理总是遇到连接测试不成功<br>起初还以为是root超级用户的缘故，还特地到虚拟机下另外创建新的一个普通用户，测试结果一样~<br>sigh 烦躁哈 后来ping了下虚拟机下的IP的3306端口号 原来连通都没有~。。。。<br>好吧，看来不是人品问题 或主机问题 不是数据库账户问题 估计是虚拟机mysql数据库配置文件问题~<br>回到虚拟机下 使用ip地址尝试登陆mysql都失败 即： mysql -h ip -u username -p password 竟然失败<br>而之前使用 mysql -u username -p password 在虚拟机终端下都很正常的登陆~<br>原来问题出在 my.cnf 数据库配置文件上~ 打开/etc/mysql/my.cnf 配置文件后 才发现<br>原来mysql数据库安装完成后默认host默认是使用localhost 或 127.0.0.1 而且不会自动与本机的ip地址关联一起<br>修改下配置文件并重启下mysql服务就可以搞定啦~<br>$ sudo vim /etc/mysql/my.cnf #打开数据库核心配置文件my.cnf<br>找到以下一行 并修改或注释掉<br>bind-address = 127.0.0.1 –&gt; #bind-address = 127.0.0.1 或 bind-address = 虚拟机IP地址<br>保存退出 并重启mysql数据库<br>$ sudo /etc/init.d/mysql restart #重启mysql数据库服务<br>好啦 你可以测试下在虚拟机下 使用 mysql -h 虚拟机ip地址 -u root -p 命令能否连接上mysql数据库啦~<br>先别高兴太早，在主机或其他机子说不定还没办法成功的远程连接登陆到此数据库呢~<br>原因也很简单 为了安全考虑 基本默认都是限制远程登陆 特殊是对于root超级用户角色<br>现在先在本机上连接登陆到mysql数据库上 然后使用以下命令修改root可以在任何主机远程登陆管理的权限：<br>mysql&gt;grant all privileges on *.* to [email=root@”%]root@”%[/email]” identified by “password” with grant option;<br>mysql&gt;flush privileges;<br>好啦 这样就可以在任何一台机子通过IP地址使用root远程登陆到此mysql数据库进行操作管理啦~（前提：只要本机Mysql数据库服务有启动的话 哈哈）<br>这文章可能有点肤浅 但是之前倒确实没有遇到尝试过这东西 今天无聊玩弄的时候就当作记录下吧? 或许对像自己这样的新手有所帮助<br><br>文章出处：DIY部落(<a href="http://www.diybl.com/course/7_databases/database_other/20090201/154718.html" target="_blank">http://www.diybl.com/course/7_databases/database_other/20090201/154718.html</a><wbr />) <!--v:3.2--> ]]></description>
<category><![CDATA[IT技术文档]]></category>
<author><![CDATA[376409255@qq.com( Ｘiao.℡F︷)]]></author>
<comments>http://376409255.qzone.qq.com/blog/1257231653#comment</comments>
<qz:effect>134218256</qz:effect>
<pubDate>Tue, 03 Nov 2009 07:00:53 GMT</pubDate>
<guid>http://376409255.qzone.qq.com/blog/1257231653</guid>
</item>

<item>
<title><![CDATA[CentOS+Nginx+PHP+Mysql+安全指南全环境搭建笔记（二）]]></title>
<link>http://376409255.qzone.qq.com/blog/1257224656</link>
<description><![CDATA[<br><span style="font-weight:bold"><wbr />- 服务器的安全设置及其他</span><wbr /> <br><span style="font-weight:bold"><wbr />主要内容：<br></span><wbr />[设置Ngnix可提供AVI、MP3等的下载]<br>[设置网站并发数限制]<br>[设置nginx程序限制的1M上传问题]<br>[优化PHP]<br>[优化mysql]<br>[mysql的安全设置]<br>[系统整体安全调整]<br><span style="font-weight:bold"><wbr />[设置Ngnix可提供AVI、MP3等的下载]</span><wbr /><span style="font-weight:bold"><wbr /><br># vi /usr/local/webserver/nginx/conf/mime.types<br>↑ 编辑mime.types文件<br>将需要提供下载的格式前的文件类型修改为&quot;application/octet-stream&quot;<br># vi /usr/local/webserver/nginx/conf/mime.types.default<br>↑ 编辑mime.types.default文件<br>将需要提供下载的格式前的文件类型修改为&quot;application/octet-stream&quot;</span><wbr /><br><span style="font-weight:bold"><wbr />[设置网站并发数限制]</span><wbr /><br>已在配置nginx.conf文件时加入并发数限制，具体参见官方维基百科(<a href="http://wiki.codemongers.com/NginxChsHttpLimit_zoneModule%29" target="_blank"><span style="color:#336699;line-height:1.8em;">http://wiki.codemongers.com/NginxChsHttpLimit_zoneModule)&quot;httplimit_zonemodule</span><wbr /></a><wbr /> &quot;部分<br><span style="font-weight:bold"><wbr />[设置nginx程序限制的1M上传问题]<br></span><wbr />已在配置nginx.conf文件时取消1M上传限制，具体参见nginx.conf文件内注释<br><span style="font-weight:bold"><wbr />[优化PHP]<br></span><wbr />具体参见(<a href="http://www.cnprint.org/bbs/blogs/1/blog312.html%29" target="_blank"><span style="color:#336699;line-height:1.8em;">http://www.cnprint.org/bbs/blogs/1/blog312.html)&quot;php</span><wbr /></a><wbr /> 优化设置&quot;部分<br>此处仅设置部分必要内容<span style="font-weight:bold"><wbr /><br># vi /usr/local/webserver/php/etc/php.ini<br>↑ 编辑php.ini文件<br>1.将&quot;disable_functions =&quot;<br>修改为 &quot;disable_functions = phpinfo,passthru,exec,system,popen,chroot,escapeshellcmd,escapeshellarg,shell_exec,proc_open,proc_get_status&quot;<br>↑**这条建议在网站建成之后修改**该选项可以设置哪些PHP函数是禁止使用的，PHP中有一些函数的风险性还是相当大的，可以直接执行一些系统级脚本命令，如果允许这些函数执行，当PHP程序出现漏洞时，损失是非常严重的！<br>需注意：如果您的服务器中含有一些系统状态检测的PHP程序，则不要禁用shell_exec,proc_open,proc_get_status等函数。<br>2.将&quot;upload_max_filesize = 2M&quot;<br>修改为 &quot;upload_max_filesize = 50M&quot;<br>↑该选项设定PHP所能允许最大上传文件大小，默认为2MB。根据实际应用需求，可以适当增大该设置。</span><wbr /><br><span style="font-weight:bold"><wbr />[优化mysql]</span><wbr /><br>具体参见(<a href="http://www.cnprint.org/bbs/blogs/1/blog312.html%29" target="_blank"><span style="color:#336699;line-height:1.8em;">http://www.cnprint.org/bbs/blogs/1/blog312.html)&quot;mysql</span><wbr /></a><wbr /> 优化及安全设置&quot;部分<br>此处仅设置部分必要内容<span style="font-weight:bold"><wbr /><br># vi /usr/local/webserver/mysql/my.cnf ↑ 编辑my.cnf文件<br>1.将&quot;table_cache = 64&quot;<br>修改为 &quot;table_cache = 512&quot;<br>↑指定表高速缓存的大小。每当MySQL访问一个表时，如果在表缓冲区中还有空间，该表就被打开并放入其中，这样可以更快地访问表内容。通过检查峰值时间的状态值Open_tables和Opened_tables，可以决定是否需要增加table_cache的值。如果您发现open_tables等于 table_cache，并且opened_tables在不断增长，那么您就需要增加table_cache的值了（上述状态值可以使用show status like 'Open_tables'获得）。注意，不能盲目地把table_cache设置成很大的值。如果设置得太高，可能会造成文件描述符不足，从而造成性能不稳定或者连接失败。<br>2.将&quot;sort_buffer_size = 512k&quot;<br>修改为 &quot;sort_buffer_size = 2M&quot;<br>↑每个线程排序所需的缓冲<br>3.将&quot;read_buffer_size = 128k&quot;<br>修改为 &quot;read_buffer_size = 2M&quot;<br>↑当一个查询不断地扫描某一个表，MySQL会为它分配一段内存缓冲区。read_buffer_size变量控制这一缓冲区的大小。如果您认为连续扫描进行得太慢，可以通过增加该变量值以及内存缓冲区大小提高其性能。<br>4.将&quot;read_rnd_buffer_size = 512k&quot;<br>修改为 &quot;read_rnd_buffer_size = 4M&quot;<br>↑加速排序操作后的读数据，提高读分类行的速度。如果正对远远大于可用内存的表执行GROUP BY或ORDER BY操作，应增加read_rnd_buffer_size的值以加速排序操作后面的行读取。仍然不明白这个选项的用处…<br>5.将&quot;myisam_sort_buffer_size = 8M&quot;<br>修改为 &quot;myisam_sort_buffer_size = 32M&quot;<br>↑用于REPAIR TABLE。不明白这个选项的用处，百度上找到的设置方向也是五花八门，有128M、64M、32M等，折中选一个。</span><wbr /><br><span style="font-weight:bold"><wbr />[mysql的安全设置]</span><wbr /><br>具体参见(<a href="http://www.cnprint.org/bbs/blogs/1/blog312.html%29" target="_blank"><span style="color:#336699;line-height:1.8em;">http://www.cnprint.org/bbs/blogs/1/blog312.html)&quot;Mysql</span><wbr /></a><wbr /> 的安全设置&quot;部分<br>此处仅设置部分必要内容<span style="font-weight:bold"><wbr /><br>**iptables中设置**关闭远程连接，即3306端口。这是MySQL的默认监听端口。由于此处MySQL只服务于本地脚本，所以不需要远程连接。尽管MySQL内建的安全机制很严格，但监听一个TCP端口仍然是危险的行为，因为如果MySQL程序本身有问题，那么未授权的访问完全可以绕过 MySQL的内建安全机制。（您必须确定，您是否真的不需要远程连接mysql）</span><wbr /><br><span style="font-weight:bold"><wbr />[系统整体安全调整]</span><wbr /><span style="font-weight:bold"><wbr /><br>1、**最后设置**RHEL或Red Had Enterprise Linux 5.X 的用户要首先要打开SElinux，方法是修改/etc/selinux/config文件中的SELINUX=&quot;&quot; 为enforcing 。它可以保证您的系统不会非正常的崩溃。有些人认为应该关闭，我强烈不推荐，当然只是将RHEL用来玩玩，不是用于实际服务器则无所谓了。<br>2、**最后设置**启用iptables 防火墙，对增加系统安全有许多好处。设置好防火墙的规则。<br>iptables要求：<br>* 屏蔽所有端口<br>* 把SSH的缺省端口设置为56565<br>* 把56565、80、3306端口打开<br>* 把3306端口设置为只允许本机访问<br>Iptables规则：<br># vi /usr/local/webserver/fw.sh<br>将以下脚本命令粘贴到 fw.sh 文件中<br>#!/bin/bash<br># Stop iptables service<br>/sbin/service iptables stop<br># Inital chains default policy<br>/sbin/iptables -F -t filter<br>/sbin/iptables -P INPUT DROP<br>/sbin/iptables -P OUTPUT ACCEPT<br># Enable Native Network Transfer<br>/sbin/iptables -A INPUT -i lo -j ACCEPT<br># Accept Established Connections<br>/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT<br># ICMP Control<br>/sbin/iptables -A INPUT -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT<br># WWW Service<br>/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT<br># SSH Service<br>/sbin/iptables -A INPUT -p tcp --dport 56565 -j ACCEPT<br># Anti DDOS<br>/sbin/iptables -I INPUT -p tcp --syn -m ttl --ttl-eq 117 -j DROP<br>/sbin/iptables -I INPUT -p tcp --syn -m length --length :40 -j DROP<br># mysql 3306 Accept<br>/sbin/iptables -A INPUT -p tcp -s 127.0.0.1 --dport 3306 -j ACCEPT<br>/sbin/iptables -A OUTPUT -p tcp -s 127.0.0.1 --dport 3306 -j ACCEPT<br># Start iptables service<br>/sbin/service iptables start<br>保存后执行以下命令<br># chmod 755 /usr/local/webserver/fw.sh<br># echo '/usr/local/webserver/fw.sh' &gt;&gt; /etc/rc.d/rc.local<br># /usr/local/webserver/fw.sh<br>3、执行setup关闭那些不需要的服务,少开一个服务，就少一个危险，已在&lt; 系统安装后的初始环境设置 &gt;中设置<br>4、禁止Control-Alt-Delete键盘关闭命令<br>在&quot;/etc/inittab&quot;文件中注释掉下面这行（使用#）：<br># vi /etc/inittab<br>将&quot;ca::ctrlaltdel:/sbin/shutdown -t3 -r now&quot; 修改为： &quot;#ca::ctrlaltdel:/sbin/shutdown -t3 -r now&quot;<br>为了使这项改动起作用，输入下面这个命令：<br># /sbin/init q<br>5、给&quot;/etc/rc.d/init.d&quot;下script文件设置权限<br>给执行或关闭启动时执行的程序的script文件设置权限。<br># chmod -R 700 /etc/rc.d/init.d/*<br>这表示只有root才允许读、写、执行该目录下的script文件。<br>6、使&quot;/etc/services&quot;文件免疫<br>使&quot;/etc/services&quot;文件免疫，防止未经许可的删除或添加服务：<br>#chattr +i /etc/services<br>7.阻止您的系统响应任何从外部/内部来的ping请求。<br>既然没有人能ping通您的机器并收到响应，您可以大大增强您的站点的安全性。您可以加下面的一行命令到/etc/rc.d/rc.local，以使每次启动后自动运行。<br># vi /etc/rc.d/rc.local<br>echo 1 &gt; /proc/sys/net/ipv4/icmp_echo_ignore_all<br>8、对您的系统上所有的用户设置资源限制可以防止DoS类型攻击（denial of service attacks）<br>如最大进程数，内存数量等。例如，对所有用户的限制象下面这样：<br># vi /etc/security/limits.conf<br>下面的代码示例中，所有用户每个会话都限制在 10 MB，并允许同时有四个登录。第三行禁用了每个人的内核转储。第四行除去了用户 bin 的所有限制。<br>* hard rss 10000<br>* hard maxlogins 4<br>* hard core 0<br>bin -<br>激活这些限制<br># vi /etc/pam.d/login 底部添加一行： session required /lib/security/pam_limits.so。<br>9、用chattr命令给下面的文件加上不可更改属性。<br># chattr +i /etc/passwd<br># chattr +i /etc/shadow<br># chattr +i /etc/group<br># chattr +i /etc/gshadow<br>**mysql数据库密码变更后再设置**注意执行这个操作后，以root身份都不能向系统增加用户或者修改密码了。<br>如果我们要增加用户或者修改密码的。应该先用chattr -i /etc/passwd等命令解除不可写设置，再进行操作。<br>10、修改sshd的端口:<br>修改防火墙配置，开启新的远程端口(56565)<br># vi /etc/sysconfig/iptables<br>修改/etc/ssh/sshd_config:<br># vi /etc/ssh/sshd_config<br>将里面的 Port 改为 56565，(具体的端口随意，不能和其他程序的端口冲突)。并注释掉前面的#号<br>使sshd服务生效:<br># pkill sshd<br># service sshd start<br>修改防火墙配置，关闭旧的远程端口(22)<br># vi /etc/sysconfig/iptables<br>注意:修改了防火墙配置文件后不得再使用setup修改防火墙设置，否则现在的设置会失效<br>11、 内核参数调整<br>编辑sysctl.conf文件:<br># vi /etc/sysctl.conf<br>修改如下:<br>net.ipv4.conf.default.accept_source_route=0<br>net.ipv4.icmp_echo_ignore_broadcasts=1<br>net.ipv4.icmp_echo_ignore_all=1<br>net.ipv4.icmp_ignore_bogus_error_responses=1<br>net.ipv4.ip_conntrack_max=65535<br>net.ipv4.tcp_syn_retries=1<br>net.ipv4.tcp_synack_retries=1<br>net.ipv4.route.gc_timeout=100<br>net.ipv4.tcp_max_syn_backlog=32768<br>net.ipv4.conf.default.rp_filter=0<br>net.ipv4.tcp_max_syn_backlog = 8192<br>net.ipv4.tcp_max_tw_buckets = 5000<br>kernel.shmmax = 134217728<br>查看状态:<br># sysctl -p<br>12、经常检查系统日志。系统日志主要位于/var/log/目录下。防患于未然。<br><span style="font-weight:bold"><wbr />- 数据自动备份</span><wbr /><br><span style="font-weight:bold"><wbr />主要内容：</span><wbr /><br>[安装NCFTP软件以支持自动<a href="http://moon-blog.cn/tag/%e4%b8%8a%e4%bc%a0/" target="_blank"><span style="color:#336699;line-height:1.8em;">上传</span><wbr /></a><wbr />数据库备份]<br>[数据库每日备份]<br>[数据库即时备份**按需操作**]<br>[日志备份]<br><span style="font-weight:bold"><wbr />[安装NCFTP软件以支持自动上传数据库备份]</span><wbr /><span style="font-weight:bold"><wbr /><br># cd /software<br># wget <a href="ftp://ftp.ncftp.com/ncftp/ncftp-3.2.2-src.tar.gz" target="_blank"><span style="color:#336699;line-height:1.8em;">ftp://ftp.ncftp.com/ncftp/ncftp-3.2.2-src.tar.gz</span><wbr /></a><wbr /><br># tar zxvf ncftp-3.2.2-src.tar.gz<br># cd ncftp-3.2.2<br># ./configure --prefix=/usr/local/webserver/ncftp<br># make &amp;&amp; make install</span><wbr /><br><span style="font-weight:bold"><wbr />[数据库每日备份]</span><wbr /><br>每天4:00，将数据库拷贝至/backup/day后进行压缩，然后上传至FTP服务器上，/backup/day/留有压缩文件一天。<span style="font-weight:bold"><wbr /><br># vi /usr/local/webserver/backupd.sh</span><wbr /><br>↑ 编辑脚本/usr/local/webserver/backupd.sh<br>写入以下内容：<span style="font-weight:bold"><wbr /><br>#!/bin/bash<br>rm -rf /backup/day/*<br>cd /backup/day/<br>cp -rf /usr/local/webserver/mysql/data/(此处为数据库名称)/ /backup/day/wp_db_$(date +%Y%m%d)<br>sleep 10<br>echo &quot;ready to tar in 10s .&quot;<br>tar zcvf `hostname`_wpdata_of_$(date +%Y%m%d).tar.gz wp_db_$(date +%Y%m%d)<br>sleep 10<br>echo &quot;ready to upload in 10s .&quot;<br>/usr/local/webserver/ncftp/bin/ncftpput -u backupd -p (FTP密码) (FTP服务器地址) / /backup/day/`hostname`_wpdata_of_$(date +%Y%m%d).tar.gz<br>sleep 30<br>echo &quot;upload done .&quot;<br>rm -f `hostname`_wpdata_of_$(date +%Y%m%d).tar.gz<br>sleep 5<br>rm -rf wp_db_$(date +%Y%m%d)<br>clear</span><wbr /><br>保存，并设置计划任务：<span style="font-weight:bold"><wbr /><br># crontab -e</span><wbr /><br>增加一行：<span style="font-weight:bold"><wbr /><br>00 4 * * * /bin/bash /usr/local/webserver/backupd.sh</span><wbr /><br>↑ 每天凌晨4点将自动备份数据库并上传。<br><span style="font-weight:bold"><wbr />[数据库即时备份**按需操作**]</span><wbr /><br>每隔6小时，将数据库拷贝至/backup/hour目录进行备份，然后将压缩文件上传至FTP服务器上，/backup/hour/留有压缩文件一天。<span style="font-weight:bold"><wbr /><br># vi /usr/local/webserver/backuph.sh</span><wbr /><br>↑ 编辑脚本/usr/local/webserver/backuph.sh<br>写入以下内容:：<span style="font-weight:bold"><wbr /><br>#!/bin/bash<br>rm -rf /backup/hour/*<br>cd /backup/hour/<br>cp -rf /usr/local/webserver/mysql/data/(数据库名称)/ /backup/hour/wp_db_$(date +%Y%m%d%H)<br>sleep 10<br>echo &quot;ready to tar in 10s .&quot;<br>tar zcvf `hostname`_wpdata_of_$(date +%Y%m%d%H).tar.gz wp_db_$(date +%Y%m%d%H)<br>sleep 10<br>echo &quot;ready to upload in 10s .&quot;<br>/usr/local/webserver/ncftp/bin/ncftpput -u backuph -p (FTP密码) (FTP服务器地址) / /backup/hour/`hostname`_wpdata_of_$(date +%Y%m%d%H).tar.gz<br>sleep 30<br>echo &quot;upload done .&quot;<br>rm -f `hostname`_wpdata_of_$(date +%Y%m%d%H).tar.gz<br>sleep 5<br>rm -rf wp_db_$(date +%Y%m%d%H)<br>clear</span><wbr /><br>保存，并设置计划任务：<span style="font-weight:bold"><wbr /><br># crontab -e</span><wbr /><br>增加一行：<span style="font-weight:bold"><wbr /><br>0 */6 * * * /bin/bash /usr/local/webserver/backuph.sh</span><wbr /><br>↑ 每6小时将自动备份数据库并上传一次。<br><span style="font-weight:bold"><wbr />[日志备份]</span><wbr /><br>每天02:00，将/logs/下前一天的日志，进行压缩，然后上传至FTP服务器。<span style="font-weight:bold"><wbr /><br># vi /usr/local/webserver/logs.sh</span><wbr /><br>↑ 编辑脚本/usr/local/webserver/logs.sh<br>写入以下内容:：<span style="font-weight:bold"><wbr /><br>#!/bin/bash<br>cd /logs/<br>mkdir logs_of_$(date -d &quot;yesterday&quot; +&quot;%Y%m%d&quot;)<br>cp $(date -d &quot;yesterday&quot; +&quot;%Y&quot;)/$(date -d &quot;yesterday&quot; +&quot;%m&quot;)/access_$(date -d &quot;yesterday&quot; +&quot;%Y%m%d&quot;).log /logs/logs_of_$(date -d &quot;yesterday&quot; +&quot;%Y%m%d&quot;)<br>cp $(date -d &quot;yesterday&quot; +&quot;%Y&quot;)/$(date -d &quot;yesterday&quot; +&quot;%m&quot;)/nginx_error_$(date -d &quot;yesterday&quot; +&quot;%Y%m%d&quot;).log /logs/logs_of_$(date -d &quot;yesterday&quot; +&quot;%Y%m%d&quot;)<br>sleep 10<br>echo &quot;ready to tar in 10s .&quot;<br>tar zcvf `hostname`_logs_of_$(date -d &quot;yesterday&quot; +&quot;%Y%m%d&quot;).tar.gz logs_of_$(date -d &quot;yesterday&quot; +&quot;%Y%m%d&quot;)<br>sleep 10<br>echo &quot;ready to upload in 10s .&quot;<br>/usr/local/webserver/ncftp/bin/ncftpput -u logs -p (FTP密码) (FTP服务器地址) / /logs/`hostname`_logs_of_$(date -d &quot;yesterday&quot; +&quot;%Y%m%d&quot;).tar.gz<br>sleep 30<br>echo &quot;upload done .&quot;<br>rm -f `hostname`_logs_of_$(date -d &quot;yesterday&quot; +&quot;%Y%m%d&quot;).tar.gz<br>sleep 5<br>rm -rf logs_of_$(date -d &quot;yesterday&quot; +&quot;%Y%m%d&quot;)<br>clear</span><wbr /><br>保存，并设置计划任务:：<span style="font-weight:bold"><wbr /><br># crontab -e</span><wbr /><br>增加一行：<span style="font-weight:bold"><wbr /><br>00 2 * * * /bin/bash /usr/local/webserver/logs.sh</span><wbr /><br>↑ 每天凌晨2点将自动备份日志并上传。</span><wbr /> <!--v:3.2--> ]]></description>
<category><![CDATA[IT技术文档]]></category>
<author><![CDATA[376409255@qq.com( Ｘiao.℡F︷)]]></author>
<comments>http://376409255.qzone.qq.com/blog/1257224656#comment</comments>
<qz:effect>134218256</qz:effect>
<pubDate>Tue, 03 Nov 2009 05:04:16 GMT</pubDate>
<guid>http://376409255.qzone.qq.com/blog/1257224656</guid>
</item>

<item>
<title><![CDATA[CentOS+Nginx+PHP+Mysql+安全指南全环境搭建笔记（一）]]></title>
<link>http://376409255.qzone.qq.com/blog/1257215779</link>
<description><![CDATA[<br>这是第一部分，<span style="font-weight:bold"><wbr />&lt; 系统安装后的初始环境设置 &gt;</span><wbr /><br>主要内容有：<br><span style="font-weight:bold"><wbr />[用户管理与用户安全]<br>[设置系统时间及自动同步系统时间]<br>[关闭不需要的服务]<br>[系统更新]<br>[用OpenSSH构建SSH服务器]</span><wbr /><br><span style="font-weight:bold"><wbr />CentOS+Nginx+PHP+Mysql+安全指南全环境搭建笔记(1)</span><wbr /><br><span style="font-weight:bold"><wbr />                                                          - 系统安装后的初始环境设置</span><wbr /><br><span style="font-weight:bold"><wbr />[普通用户的建立与删除]</span><wbr /><span style="font-weight:bold"><wbr /><br># useradd lovemoon<br>↑ 建立用户名为 lovemoon 的普通用户<br># passwd lovemoon<br>↑ 为用户 lovemoon 设置密码<br>Changing password for user lovemoon.<br>New UNIX password:<br>↑ 输入密码（密码不会被显示）<br>Retype new UNIX password:<br>↑ 再次输入密码确认两次密码一致<br>passwd: all authentication tokens updated successfully.<br>↑ 密码设置成功<br>#userdel -r lovemoon<br>↑ 删除用户名为 lovemoon 的普通用户</span><wbr /><br><span style="font-weight:bold"><wbr />[将普通用户设置到不同的用户组中]</span><wbr /><span style="font-weight:bold"><wbr /><br># usermod -G wheel lovemoon<br>↑ 将普通用户 lovemoon 加在管理员组wheel组中<br># usermod -G wheel,www lovemoon<br>↑ 将普通用户 lovemoon 同时加在wheel和www组中</span><wbr /><br><span style="font-weight:bold"><wbr />[设置只有管理员wheel组才可以使用su命令进入root权限]</span><wbr /><span style="font-weight:bold"><wbr /><br># vi /etc/pam.d/su 　← 打开这个配置文件<br>auth required /lib/security/$ISA/pam_wheel.so use_uid<br>↑ 修改文件为此状态（大约在第6行的位置）<br># echo &quot;SU_WHEEL_ONLY yes&quot; &gt;&gt; /etc/login.defs<br>↑ 添加语句到login.defs文件行末</span><wbr /><br><span style="font-weight:bold"><wbr />[设置系统时间及自动同步系统时间]</span><wbr /><span style="font-weight:bold"><wbr /><br># yum install –y ntp<br>↑ 安装NTP官方的时间同步程序 (NTP:中国国家授时中心)<br># /usr/sbin/ntpdate -s pool.ntp.org<br>↑ 以NTP官方服务器为准调整本地时间<br># crontab -e<br>↑ 编辑计划任务列表<br>0 3 * * * /usr/sbin/ntpdate -s pool.ntp.org<br>↑ 编辑文件到此状态，表示每天凌晨3点自动同步时间<br># /sbin/service crond reload<br>↑ 重载计划任务配置</span><wbr /><br><span style="font-weight:bold"><wbr />[关闭不需要的服务]</span><wbr /><span style="font-weight:bold"><wbr /><br># setup<br>↑ 开启图形设置界面<br>选择System service 进入服务列表<br>使用&quot;空格&quot;键选择&quot;[*]&quot;或取消&quot;[ ]&quot;服务<br>只保留以下服务，未列出的服务一律关闭：<br>crond<br>irqbalance<br>↑ 仅当服务器CPU为S.M.P架构或支持双核心、HT技术时，才需开启，否则关闭。<br>iptables<br>microcode_ctl<br>network<br>sshd<br>syslog<br>vsftpd<br>yum-updatesd</span><wbr /><br><span style="font-weight:bold"><wbr />[系统更新]</span><wbr /><span style="font-weight:bold"><wbr /><br># vi /etc/yum.repos.d/CentOS-Base.repo<br>↑ 修改系统更新地址文件<br>将所有&quot;baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/&quot;<br>修改为&quot;baseurl=http://mirrors.shlug.org/centos/$releasever/os/$basearch/&quot;<br># yum -y upgrade<br>↑ 更新系统文件</span><wbr /><br><span style="font-weight:bold"><wbr />[用OpenSSH构建SSH服务器]</span><wbr /><span style="font-weight:bold"><wbr /><br># vi /etc/ssh/sshd_config<br>↑ 用vi打开SSH的配置文件<br>将&quot;#Protocol 2,1&quot;<br>修改为       &quot;Protocol 2&quot;<br>↑ 只允许SSH2方式的连接(Centos 5.2中已包含此设置)<br>将&quot;#ServerKeyBits 768&quot;<br>修改为       &quot;ServerKeyBits 1024&quot;<br>↑ 将ServerKey强度改为1024比特<br>将&quot;#PermitRootLogin yes&quot;<br>修改为       &quot;PermitRootLogin no&quot;<br>↑ 不允许用root进行登录(wheel组用户SSH登陆后可用su命令使用root权限)<br>将&quot;#PasswordAuthentication yes&quot;<br>修改为       &quot;PasswordAuthentication no&quot;<br>↑ 不允许密码方式的登录(SSH远程管理用密钥登陆会安全很多)<br>将&quot;#PermitEmptyPasswords no&quot;<br>修改为       &quot;PermitEmptyPasswords no&quot;<br>↑ 不允许空密码登录<br># vi /etc/hosts.deny<br>↑ 修改屏蔽规则，在此限定仅有哪些IP地址可以SSH远程登陆本服务器<br>sshd: ALL<br>↑ 在文件末尾添加这一行，屏蔽所有的SSH连接请求<br># vi /etc/hosts.allow<br>↑ 修改允许规则，在此限定仅有哪些IP地址可以SSH远程登陆本服务器<br>sshd:222.17.177.<br>sshd:10.3.92.25<br>sshd:10.3.97.137<br>↑ 在文件末尾添加这三行，只允许来自222.17.177网段、IP地址为10.3.92.25和IP地址为10.3.97.137的SSH连接请求</span><wbr /><span style="font-weight:bold"><wbr /><br># /etc/rc.d/init.d/sshd restart<br>↑ 重新启动SSH服务器<br>Stopping sshd:　　　　　　　　　　　　 [ OK ]<br>Starting sshd:　　　　　　　　　　　　 [ OK ]<br>↑ SSH服务器重新启动成功</span><wbr /><span style="font-weight:bold"><wbr /><br># su -lovemoon<br>↑ 用普通用户 lovemoon 登陆服务器<br>$ ssh-keygen -t rsa<br>↑ 建立公钥与私钥<br>Generating public/private rsa key pair.<br>Enter file in which to save the key (/home/kaz/.ssh/id_rsa):<br>↑ 钥匙的文件名，这里保持默认直接回车<br>Created directory '/home/kaz/.ssh'<br>Enter passphrase (empty for no passphrase):<br>↑ 输入密钥口令(使用SSH远程软件时会用到)<br>Enter same passphrase again:<br>↑ 再次输入密钥口令(使用SSH远程软件时会用到)<br>Your identification has been saved in /home/kaz/.ssh/id_rsa.<br>↑ 建立了id_rsa私钥文件<br>Your public key has been saved in /home/kaz/.ssh/id_rsa.pub.<br>↑ 建立了id_rsa.pub公钥文件</span><wbr /><span style="font-weight:bold"><wbr /><br>$ cd ~/.ssh<br>↑ 进入 lovemoon 用户SSH配置文件的目录(~/目录相当于/home/lovemoon/)<br>$ cat ~/.ssh/id_rsa.pub &gt;&gt; ~/.ssh/authorized_keys<br>↑ 公钥内容输出到authorized_keys文件中<br>$ rm -f ~/.ssh/id_rsa.pub<br>↑ 删除原来的公钥文件<br>$ chmod 400 ~/.ssh/authorized_keys<br>↑ 将新建立的公钥文件属性设置为400</span><wbr /><span style="font-weight:bold"><wbr /><br>$ exit<br>↑ 退出普通用户的登录<br>登陆为root用户，插入U盘<br># fdisk -l<br>↑ 显示目前所有硬盘，找到U盘设备名为sdb1 (具体情况具体对待，这里各服务器有所不同)<br># mount /dev/sdb1 /mnt<br>↑ 挂载U盘设备到/mnt目录<br># mv /home/lovemoon/.ssh/id_rsa /mnt/<br>↑ 移动id_rsa私钥文件到U盘中<br># umount /mnt/<br>↑ 卸载U盘<br><span style="font-weight:bold"><wbr />-Nginx+PHP+MySQL环境搭建</span><wbr /><br><span style="font-weight:bold"><wbr />[利用yum命令配置、升级所需程序库]</span><wbr /><span style="font-weight:bold"><wbr /><br># sudo -s<br># LANG=C<br># yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel<br>↑安装、升级这些程序库</span><wbr /><br><span style="font-weight:bold"><wbr />[下载环境所需<a href="http://moon-blog.cn/tag/%e6%96%87%e4%bb%b6/" target="_blank"><span style="color:#336699;line-height:1.8em;">文件</span><wbr /></a><wbr />到指定目录]</span><wbr /><span style="font-weight:bold"><wbr /><br># mkdir -p /software<br>↑ 在根目录建立software文件夹<br># cd /software<br>↑ 进入software文件夹<br># wget http://sysoev.ru/nginx/nginx-0.7.19.tar.gz<br># wget http://www.php.net/get/php-5.2.6.tar.gz/from/this/mirror<br># wget http://php-fpm.anight.org/downloads/head/php-5.2.6-fpm-0.5.9.diff.gz<br># wget http://blog.s135.com/soft/linux/mysql/mysql-5.1.26-rc.tar.gz<br># wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.12.tar.gz<br># wget http://mirror.optus.net/sourceforge/m/mc/mcrypt/libmcrypt-2.5.8.tar.gz<br># wget http://mirror.optus.net/sourceforge/m/mc/mcrypt/mcrypt-2.6.7.tar.gz<br># wget http://pecl.php.net/get/memcache-2.2.3.tgz<br># wget http://mirror.optus.net/sourceforge/m/mh/mhash/mhash-0.9.9.tar.gz<br># wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.7.tar.gz<br># wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2<br>↑ 下载这些文件到software目录</span><wbr /><br><span style="font-weight:bold"><wbr />[编译安装PHP 5.2.6所需的支持库]</span><wbr /><span style="font-weight:bold"><wbr /><br># tar zxvf libiconv-1.12.tar.gz<br>↑ 解压(tar) 参数(zxvf) 文件名(libiconv-1.12.tar.gz)<br># cd libiconv-1.12/<br>↑ 进入解压出来的文件的文件夹(libiconv-1.12)<br># ./configure --prefix=/usr/local<br>↑ 配置安装信息 指定安装目录为/usr/local<br># make<br>↑ make安装文件<br># make install<br>↑ 开始安装<br># cd ../<br>↑ 返回上级目录(此处即software目录)<br># tar zxvf libmcrypt-2.5.8.tar.gz<br># cd libmcrypt-2.5.8/<br># ./configure<br># make<br># make install<br># /sbin/ldconfig<br># cd libltdl/<br># ./configure --enable-ltdl-install<br># make<br># make install<br># cd ../../<br># tar zxvf mhash-0.9.9.tar.gz<br># cd mhash-0.9.9/<br># ./configure<br># make<br># make install<br># cd ../<br># cp /usr/local/lib/libmcrypt.* /usr/lib<br># ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2<br># tar zxvf mcrypt-2.6.7.tar.gz<br># cd mcrypt-2.6.7/<br># ./configure<br># make<br># make install<br># cd ../</span><wbr /><br><span style="font-weight:bold"><wbr />[编译安装MySQL 5.1.26-rc]</span><wbr /><span style="font-weight:bold"><wbr /><br># /usr/sbin/groupadd mysql<br>↑ 建立mysql用户组<br># /usr/sbin/useradd -g mysql mysql<br>↑ 建立mysql用户到mysql用户组中<br># tar zxvf mysql-5.1.26-rc.tar.gz<br># cd mysql-5.1.26-rc/<br># ./configure --prefix=/usr/local/webserver/mysql/ --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile<br># make &amp;&amp; make install<br># chmod +w /usr/local/webserver/mysql<br># chown -R mysql:mysql /usr/local/webserver/mysql<br># cp support-files/my-medium.cnf /usr/local/webserver/mysql/my.cnf<br># cd ../<br># /usr/local/webserver/mysql/bin/mysql_install_db --defaults-file=/usr/local/webserver/mysql/my.cnf --basedir=/usr/local/webserver/mysql --datadir=/usr/local/webserver/mysql/data --user=mysql --pid-file=/usr/local/webserver/mysql/mysql.pid --skip-locking --port=3306 --socket=/tmp/mysql.sock<br>↑ 以mysql用户帐号的身份建立数据表<br># /bin/sh /usr/local/webserver/mysql/bin/mysqld_safe --defaults-file=/usr/local/webserver/mysql/my.cnf &amp;<br>↑ 启动MySQL（最后的&amp;表示在后台运行）</span><wbr /><br><span style="font-weight:bold"><wbr />[编译安装PHP（FastCGI模式）]</span><wbr /><span style="font-weight:bold"><wbr /><br># tar zxvf php-5.2.6.tar.gz<br># gzip -cd php-5.2.6-fpm-0.5.9.diff.gz | patch -d php-5.2.6 -p1<br># cd php-5.2.6/<br># ./configure --prefix=/usr/local/webserver/php --with-config-file-path=/usr/local/webserver/php/etc --with-mysql=/usr/local/webserver/mysql --with-mysqli=/usr/local/webserver/mysql/bin/mysql_config --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl<br># sed -i 's#-lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt#&amp; -liconv#' Makefile<br># make<br># make install<br># cp php.ini-dist /usr/local/webserver/php/etc/php.ini<br># cd ../</span><wbr /><br><span style="font-weight:bold"><wbr />[编译安装PHP5扩展模块]</span><wbr /><span style="font-weight:bold"><wbr /><br># tar zxvf memcache-2.2.3.tgz<br># cd memcache-2.2.3/<br># /usr/local/webserver/php/bin/phpize<br># ./configure --with-php-config=/usr/local/webserver/php/bin/php-config<br># make<br># make install<br># cd ../<br># tar jxvf eaccelerator-0.9.5.3.tar.bz2<br># cd eaccelerator-0.9.5.3/<br># /usr/local/webserver/php/bin/phpize<br># ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/webserver/php/bin/php-config<br># make<br># make install<br># cd ../</span><wbr /><br><span style="font-weight:bold"><wbr />[修改php.ini文件]</span><wbr /><span style="font-weight:bold"><wbr /><br>手工修改：<br># vi /usr/local/webserver/php/etc/php.ini<br>将 &quot; extension_dir = &quot;./&quot; &quot;<br>修改为            &quot; extension_dir = &quot;/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/&quot; &quot;<br>将 &quot;output_buffering = Off&quot;<br>修改为            &quot; output_buffering = On &quot;<br>extension = &quot;memcache.so&quot;<br>↑ 文件末尾增加此行<br>自动修改(已使用手动修改的跳过)：<br># sed -i 's#extension_dir = &quot;./&quot;#extension_dir = &quot;/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/&quot;\nextension = &quot;memcache.so&quot;\n#' /usr/local/webserver/php/etc/php.ini<br># sed -i 's#output_buffering = Off#output_buffering = On#' /usr/local/webserver/php/etc/php.ini</span><wbr /><br><span style="font-weight:bold"><wbr />[配置eAccelerator加速PHP]</span><wbr /><span style="font-weight:bold"><wbr /><br># mkdir -p /usr/local/webserver/eaccelerator_cache<br># vi /usr/local/webserver/php/etc/php.ini<br>按shift+g键跳到配置文件的最末尾，加入以下配置信息：<br>[eaccelerator]<br>zend_extension=&quot;/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so&quot;<br>eaccelerator.shm_size=&quot;128&quot;<br>eaccelerator.cache_dir=&quot;/usr/local/webserver/eaccelerator_cache&quot;<br>eaccelerator.enable=&quot;1&quot;<br>eaccelerator.optimizer=&quot;1&quot;<br>eaccelerator.check_mtime=&quot;1&quot;<br>eaccelerator.debug=&quot;0&quot;<br>eaccelerator.filter=&quot;&quot;<br>eaccelerator.shm_max=&quot;0&quot;<br>eaccelerator.shm_ttl=&quot;300&quot;<br>eaccelerator.shm_prune_period=&quot;120&quot;<br>eaccelerator.shm_only=&quot;0&quot;<br>eaccelerator.compress=&quot;1&quot;<br>eaccelerator.compress_level=&quot;9&quot;<br># vi /etc/sysctl.conf<br>↑ 修改配置文件<br>将    &quot;kernel.shmmax = **********&quot;<br>修改为        &quot;kernel.shmmax = 134217728&quot;<br># /sbin/sysctl -p<br>↑ 执行此命令使配置生效</span><wbr /><br><span style="font-weight:bold"><wbr />[创建www用户和组]</span><wbr /><span style="font-weight:bold"><wbr /><br># /usr/sbin/groupadd www -g 48<br>↑ 创建www用户组并指定组ID为48<br># /usr/sbin/useradd -u 48 -g www www<br>↑ 创建www用户到www用户组中<br># mkdir -p /wwwroot<br>↑ 在根目录中创建wwwroot网站目录<br># chmod +w /wwwroot<br>↑ 给wwwroot目录增加可写权限<br># chown -R www:www /wwwroot<br>↑ 使wwwroot目录所属用户组为www，所属用户为www</span><wbr /><br><span style="font-weight:bold"><wbr />[创建php-fpm配置文件]</span><wbr /><span style="font-weight:bold"><wbr /><br>php-fpm是为PHP打的一个FastCGI管理补丁，可以平滑变更php.ini配置而无需重启php-cgi<br># rm -f /usr/local/webserver/php/etc/php-fpm.conf<br>↑ 删除原有php-fpm.conf文件<br># vi /usr/local/webserver/php/etc/php-fpm.conf<br>↑ 建立新的php-fpm.conf文件并启动vi编辑器编辑该文件<br>输入以下内容(请注意以下内容中&quot;↑&quot;标志后的内容不能出现在实际文件中)：<br>&lt;?xml version=&quot;1.0&quot; ?&gt;<br>&lt;configuration&gt;<br>All relative paths in this config are relative to php's install prefix<br>&lt;section name=&quot;global_options&quot;&gt;<br>Pid file<br>&lt;value name=&quot;pid_file&quot;&gt;/usr/local/webserver/php/logs/php-fpm.pid&lt;/value&gt;<br>Error log file<br>&lt;value name=&quot;error_log&quot;&gt;/usr/local/webserver/php/logs/php-fpm.log&lt;/value&gt;<br>Log level<br>&lt;value name=&quot;log_level&quot;&gt;notice&lt;/value&gt;<br>When this amount of php processes exited with SIGSEGV or SIGBUS ...<br>&lt;value name=&quot;emergency_restart_threshold&quot;&gt;10&lt;/value&gt;<br>... in a less than this interval of time, a graceful restart will be initiated.<br>Useful to work around accidental curruptions in accelerator's shared memory.<br>&lt;value name=&quot;emergency_restart_interval&quot;&gt;1m&lt;/value&gt;<br>Time limit on waiting child's reaction on signals from master<br>&lt;value name=&quot;process_control_timeout&quot;&gt;5s&lt;/value&gt;<br>Set to 'no' to debug fpm<br>&lt;value name=&quot;daemonize&quot;&gt;yes&lt;/value&gt;<br>&lt;/section&gt;<br>&lt;workers&gt;<br>&lt;section name=&quot;pool&quot;&gt;<br>Name of pool. Used in logs and stats.<br>&lt;value name=&quot;name&quot;&gt;default&lt;/value&gt;<br>Address to accept fastcgi requests on.<br>Valid syntax is 'ip.ad.re.ss:port' or just 'port' or '/path/to/unix/socket'<br>&lt;value name=&quot;listen_address&quot;&gt;127.0.0.1:9000&lt;/value&gt;<br>&lt;value name=&quot;listen_options&quot;&gt;<br>Set listen(2) backlog<br>&lt;value name=&quot;backlog&quot;&gt;-1&lt;/value&gt;<br>Set permissions for unix socket, if one used.<br>In Linux read/write permissions must be set in order to allow connections from web server.<br>Many BSD-derrived systems allow connections regardless of permissions.<br>&lt;value name=&quot;owner&quot;&gt;&lt;/value&gt;<br>&lt;value name=&quot;group&quot;&gt;&lt;/value&gt;<br>&lt;value name=&quot;mode&quot;&gt;0666&lt;/value&gt;<br>&lt;/value&gt;<br>Additional php.ini defines, specific to this pool of workers.<br>&lt;value name=&quot;php_defines&quot;&gt;<br>&lt;value name=&quot;sendmail_path&quot;&gt;/usr/sbin/sendmail -t -i&lt;/value&gt;<br>&lt;value name=&quot;display_errors&quot;&gt;0&lt;/value&gt;<br>↑ 如果安装 Nginx + PHP 用于程序调试，则此处应设置为&quot;1&quot;以显示PHP错误信息，设置为&quot;0&quot; Nginx 会报状态为500的空白错误页<br>&lt;/value&gt;<br>Unix user of processes<br>&lt;value name=&quot;user&quot;&gt;www&lt;/value&gt;<br>Unix group of processes<br>&lt;value name=&quot;group&quot;&gt;www&lt;/value&gt;<br>Process manager settings<br>&lt;value name=&quot;pm&quot;&gt;<br>Sets style of controling worker process count.<br>Valid values are 'static' and 'apache-like'<br>&lt;value name=&quot;style&quot;&gt;static&lt;/value&gt;<br>Sets the limit on the number of simultaneous requests that will be served.<br>Equivalent to Apache MaxClients directive.<br>Equivalent to PHP_FCGI_CHILDREN environment in original php.fcgi<br>Used with any pm_style.<br>&lt;value name=&quot;max_children&quot;&gt;64&lt;/value&gt;<br>↑ 进程数为64，如果服务器内存大于3GB，可以只开启128-200个进程<br>Settings group for 'apache-like' pm style<br>&lt;value name=&quot;apache_like&quot;&gt;<br>Sets the number of server processes created on startup.<br>Used only when 'apache-like' pm_style is selected<br>&lt;value name=&quot;StartServers&quot;&gt;20&lt;/value&gt;<br>Sets the desired minimum number of idle server processes.<br>Used only when 'apache-like' pm_style is selected<br>&lt;value name=&quot;MinSpareServers&quot;&gt;5&lt;/value&gt;<br>Sets the desired maximum number of idle server processes.<br>Used only when 'apache-like' pm_style is selected<br>&lt;value name=&quot;MaxSpareServers&quot;&gt;35&lt;/value&gt;<br>&lt;/value&gt;<br>&lt;/value&gt;<br>The timeout (in seconds) for serving a single request after which the worker process will be terminated<br>Should be used when 'max_execution_time' ini option does not stop script execution for some reason<br>'0s' means 'off'<br>&lt;value name=&quot;request_terminate_timeout&quot;&gt;0s&lt;/value&gt;<br>The timeout (in seconds) for serving of single request after which a php backtrace will be dumped to slow.log file<br>'0s' means 'off'<br>&lt;value name=&quot;request_slowlog_timeout&quot;&gt;0s&lt;/value&gt;<br>The log file for slow requests<br>&lt;value name=&quot;slowlog&quot;&gt;logs/slow.log&lt;/value&gt;<br>Set open file desc rlimit<br>&lt;value name=&quot;rlimit_files&quot;&gt;51200&lt;/value&gt;<br>Set max core size rlimit<br>&lt;value name=&quot;rlimit_core&quot;&gt;0&lt;/value&gt;<br>Chroot to this directory at the start, absolute path<br>&lt;value name=&quot;chroot&quot;&gt;&lt;/value&gt;<br>Chdir to this directory at the start, absolute path<br>&lt;value name=&quot;chdir&quot;&gt;&lt;/value&gt;<br>Redirect workers' stdout and stderr into main error log.<br>If not set, they will be redirected to /dev/null, according to FastCGI specs<br>&lt;value name=&quot;catch_workers_output&quot;&gt;yes&lt;/value&gt;<br>How much requests each process should execute before respawn.<br>Useful to work around memory leaks in 3rd party libraries.<br>For endless request processing please specify 0<br>Equivalent to PHP_FCGI_MAX_REQUESTS<br>&lt;value name=&quot;max_requests&quot;&gt;10240&lt;/value&gt;<br>Comma separated list of ipv4 addresses of FastCGI clients that allowed to connect.<br>Equivalent to FCGI_WEB_SERVER_ADDRS environment in original php.fcgi (5.2.2+)<br>Makes sense only with AF_INET listening socket.<br>&lt;value name=&quot;allowed_clients&quot;&gt;127.0.0.1&lt;/value&gt;<br>Pass environment variables like LD_LIBRARY_PATH<br>All $VARIABLEs are taken from current environment<br>&lt;value name=&quot;environment&quot;&gt;<br>&lt;value name=&quot;HOSTNAME&quot;&gt;$HOSTNAME&lt;/value&gt;<br>&lt;value name=&quot;PATH&quot;&gt;/usr/local/bin:/usr/bin:/bin&lt;/value&gt;<br>&lt;value name=&quot;TMP&quot;&gt;/tmp&lt;/value&gt;<br>&lt;value name=&quot;TMPDIR&quot;&gt;/tmp&lt;/value&gt;<br>&lt;value name=&quot;TEMP&quot;&gt;/tmp&lt;/value&gt;<br>&lt;value name=&quot;OSTYPE&quot;&gt;$OSTYPE&lt;/value&gt;<br>&lt;value name=&quot;MACHTYPE&quot;&gt;$MACHTYPE&lt;/value&gt;<br>&lt;value name=&quot;MALLOC_CHECK_&quot;&gt;2&lt;/value&gt;<br>&lt;/value&gt;<br>&lt;/section&gt;<br>&lt;/workers&gt;<br>&lt;/configuration&gt;</span><wbr /><br><span style="font-weight:bold"><wbr />[启动php-cgi进程，监听127.0.0.1的9000端口]</span><wbr /><span style="font-weight:bold"><wbr /><br># ulimit -SHn 51200<br># /usr/local/webserver/php/sbin/php-fpm start</span><wbr /><br><span style="font-weight:bold"><wbr />[安装Nginx所需的pcre库]</span><wbr /><span style="font-weight:bold"><wbr /><br># tar zxvf pcre-7.7.tar.gz<br># cd pcre-7.7/<br># ./configure<br># make &amp;&amp; make install<br># cd ../</span><wbr /><br><span style="font-weight:bold"><wbr />[安装Nginx 0.7.19]</span><wbr /><span style="font-weight:bold"><wbr /><br># tar zxvf nginx-0.7.19.tar.gz<br># cd nginx-0.7.19/<br># ./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module<br># make<br># make install<br># cd ../</span><wbr /><br><span style="font-weight:bold"><wbr />[创建Nginx日志目录]</span><wbr /><span style="font-weight:bold"><wbr /><br># mkdir -p /logs<br># chmod +w /logs<br># chown -R www:www /logs</span><wbr /><br><span style="font-weight:bold"><wbr />[创建nginx.conf配置文件]</span><wbr /><span style="font-weight:bold"><wbr /><br># rm -f /usr/local/webserver/nginx/conf/nginx.conf<br># vi /usr/local/webserver/nginx/conf/nginx.conf<br>输入以下内容(请注意以下内容中&quot;↑&quot;标志后的内容不能出现在实际文件中)：<br>user www www;<br>worker_processes 8;<br>↑ Nginx每个进程耗费10M~12M内存<br>error_log /logs/nginx_error.log warn;<br>pid        /usr/local/webserver/nginx/nginx.pid;<br>#Specifies the value for maximum file descriptors that can be opened by this process.<br>worker_rlimit_nofile 51200;<br>events<br>{<br>use epoll;<br>worker_connections 51200;<br>}<br>http<br>{<br>include       mime.types;<br>default_type application/octet-stream;<br>#charset gb2312;<br>server_names_hash_bucket_size 128;<br>client_header_buffer_size 32k;<br>large_client_header_buffers 4 32k;<br>sendfile on;<br>tcp_nopush     on;<br>keepalive_timeout 60;<br>tcp_nodelay on;<br>fastcgi_connect_timeout 300;<br>fastcgi_send_timeout 300;<br>fastcgi_read_timeout 300;<br>fastcgi_buffer_size 64k;<br>fastcgi_buffers 4 64k;<br>fastcgi_busy_buffers_size 128k;<br>fastcgi_temp_file_write_size 128k;<br>gzip on;<br>gzip_min_length 1k;<br>gzip_buffers     4 16k;<br>gzip_http_version 1.0;<br>gzip_comp_level 2;<br>gzip_types       text/plain application/x-javascript text/css application/xml;<br>gzip_vary on;<br>limit_zone crash $binary_remote_addr 10m;<br>↑ 定义一个叫“crash”的记录区，总容量为 10M，以变量 $binary_remote_addr 作为会话的判断基准（即一个地址一个会话），当区的大小为 1M 的时候，大约可以记录 32000 个会话信息（一个会话占用 32 bytes）<br>server<br>{<br>listen       80;<br>server_name 222.17.177.205;<br>index index.html index.htm index.php;<br>root /wwwroot;<br>#limit_conn   crash 5;<br>↑ *此处已被#注释掉了，即不起作用*定义整个网站的限制。此处为在&quot;crash&quot;记录区中，以变量 $binary_remote_addr 作为会话的判断基准（即一个地址一个会话），限制网站全局目录，一个会话只能进行5个连接（即一个IP只能发起5个连接，多过5个，一律503错误）<br>location ~ .*\.(php|php5)?$<br>{<br>#fastcgi_pass unix:/tmp/php-cgi.sock;<br>fastcgi_pass 127.0.0.1:9000;<br>fastcgi_index index.php;<br>include fcgi.conf;<br>}<br>location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$<br>{<br>expires      30d;<br>}<br>location ~ .*\.(js|css)?$<br>{<br>expires      1h;<br>}<br>location /resource/ {<br>limit_conn   crash 2;<br>↑ 定义resource目录的限制。此处为在&quot;crash&quot;记录区中，以变量 $binary_remote_addr 作为会话的判断基准（即一个地址一个会话），限制resource目录，一个会话只能进行2个连接（即一个IP只能发起2个连接，多过2个，一律503错误）<br>}<br>log_format access '$remote_addr - $remote_user [$time_local] &quot;$request&quot; '<br>'$status $body_bytes_sent &quot;$http_referer&quot; '<br>'&quot;$http_user_agent&quot; $http_x_forwarded_for';<br>access_log /logs/access.log access;<br>sendfile on;<br>tcp_nopush on;<br>client_max_body_size 50m;<br>↑ 网站程序中允许上传的最大size，这里设置成50M，这里只是nginx的限制，PHP本身限制2M<br>}<br>}</span><wbr /><br><span style="font-weight:bold"><wbr />[创建fcgi.conf配置文件]</span><wbr /><span style="font-weight:bold"><wbr /><br># vi /usr/local/webserver/nginx/conf/fcgi.conf<br>输入以下内容:<br>fastcgi_param GATEWAY_INTERFACE CGI/1.1;<br>fastcgi_param SERVER_SOFTWARE    nginx;<br>fastcgi_param QUERY_STRING       $query_string;<br>fastcgi_param REQUEST_METHOD     $request_method;<br>fastcgi_param CONTENT_TYPE       $content_type;<br>fastcgi_param CONTENT_LENGTH     $content_length;<br>fastcgi_param SCRIPT_FILENAME    $document_root$fastcgi_script_name;<br>fastcgi_param SCRIPT_NAME        $fastcgi_script_name;<br>fastcgi_param REQUEST_URI        $request_uri;<br>fastcgi_param DOCUMENT_URI       $document_uri;<br>fastcgi_param DOCUMENT_ROOT      $document_root;<br>fastcgi_param SERVER_PROTOCOL    $server_protocol;<br>fastcgi_param REMOTE_ADDR        $remote_addr;<br>fastcgi_param REMOTE_PORT        $remote_port;<br>fastcgi_param SERVER_ADDR        $server_addr;<br>fastcgi_param SERVER_PORT        $server_port;<br>fastcgi_param SERVER_NAME        $server_name;<br># PHP only, required if PHP was built with --enable-force-cgi-redirect<br>fastcgi_param REDIRECT_STATUS    200;</span><wbr /><br><span style="font-weight:bold"><wbr />[启动Nginx]</span><wbr /><span style="font-weight:bold"><wbr /><br># ulimit -SHn 51200<br># /usr/local/webserver/nginx/sbin/nginx</span><wbr /><br><span style="font-weight:bold"><wbr />[在不停止Nginx服务的情况下平滑变更Nginx配置]</span><wbr /><span style="font-weight:bold"><wbr /><br>修改/usr/local/webserver/nginx/conf/nginx.conf配置文件后，请执行以下命令检查配置文件是否正确：<br># /usr/local/webserver/nginx/sbin/nginx -t<br>如果测试ok successfully，则可以使用下面命令重启Nginx<br>(第1种)# pkill nginx<br># /usr/local/webserver/nginx/conf/nginx.conf<br>(第2种)# kill -HUP `cat /usr/local/webserver/nginx/nginx.pid`<br># /usr/local/webserver/nginx/conf/nginx.conf<br>(第3种)# ps -ef | grep &quot;nginx: master process&quot; | grep -v &quot;grep&quot; | awk -F ' ' '{print $2}'<br># kill -HUP 数字<br>↑ 此数字来自于上一条命令执行后屏幕输出的数字，即Nginx的pid进程号<br># /usr/local/webserver/nginx/conf/nginx.conf<br>如果屏幕显示以下两行信息，说明配置文件正确：<br>the configuration file /usr/local/webserver/nginx/conf/nginx.conf syntax is ok<br>the configuration file /usr/local/webserver/nginx/conf/nginx.conf was tested successfully</span><wbr /><br><span style="font-weight:bold"><wbr />[配置开机自动启动Nginx + PHP + MySQL]</span><wbr /><span style="font-weight:bold"><wbr /><br># vi /etc/rc.local<br>在末尾增加以下内容:<br>/bin/sh /usr/local/webserver/mysql/bin/mysqld_safe --defaults-file=/usr/local/webserver/mysql/my.cnf &amp;<br>ulimit -SHn 51200<br>/usr/local/webserver/php/sbin/php-fpm start<br>/usr/local/webserver/nginx/sbin/nginx</span><wbr /><br><span style="font-weight:bold"><wbr />[优化Linux内核参数]</span><wbr /><span style="font-weight:bold"><wbr /><br># vi /etc/sysctl.conf<br>在文件末尾增加以下内容：<br>net.ipv4.tcp_fin_timeout = 30<br>net.ipv4.tcp_keepalive_time = 300<br>net.ipv4.tcp_syncookies = 1<br>net.ipv4.tcp_tw_reuse = 1<br>net.ipv4.tcp_tw_recycle = 1<br>net.ipv4.ip_local_port_range = 5000    65000<br># /sbin/sysctl -p<br>↑ 使配置立即生效</span><wbr /><br><span style="font-weight:bold"><wbr />[编写每天定时切割Nginx日志的脚本]</span><wbr /><span style="font-weight:bold"><wbr /><br># vi /usr/local/webserver/nginx/sbin/cut_nginx_log.sh<br>↑ 创建切割脚本<br>输入以下内容:<br>#!/bin/bash<br># This script run at 00:00<br># The Nginx logs path<br>logs_path=&quot;/logs/&quot;<br>mkdir -p ${logs_path}$(date -d &quot;yesterday&quot; +&quot;%Y&quot;)/$(date -d &quot;yesterday&quot; +&quot;%m&quot;)/<br>mv ${logs_path}access.log ${logs_path}$(date -d &quot;yesterday&quot; +&quot;%Y&quot;)/$(date -d &quot;yesterday&quot; +&quot;%m&quot;)/access_$(date -d &quot;yesterday&quot; +&quot;%Y%m%d&quot;).log<br>mv ${logs_path}nginx_error.log ${logs_path}$(date -d &quot;yesterday&quot; +&quot;%Y&quot;)/$(date -d &quot;yesterday&quot; +&quot;%m&quot;)/nginx_error_$(date -d &quot;yesterday&quot; +&quot;%Y%m%d&quot;).log<br>kill -USR1 `cat /usr/local/webserver/nginx/nginx.pid`</span><wbr /><br><span style="font-weight:bold"><wbr />[设置切割日志的计划任务]</span><wbr /><span style="font-weight:bold"><wbr /><br># crontab -e<br>↑ 编辑计划任务列表<br>输入以下内容:<br>00 00 * * * /bin/bash /usr/local/webserver/nginx/sbin/cut_nginx_log.sh<br>↑ 每天凌晨00:00切割nginx访问日志</span><wbr /></span><wbr /> <!--v:3.2--> ]]></description>
<category><![CDATA[IT技术文档]]></category>
<author><![CDATA[376409255@qq.com( Ｘiao.℡F︷)]]></author>
<comments>http://376409255.qzone.qq.com/blog/1257215779#comment</comments>
<qz:effect>134218256</qz:effect>
<pubDate>Tue, 03 Nov 2009 02:36:19 GMT</pubDate>
<guid>http://376409255.qzone.qq.com/blog/1257215779</guid>
</item>

<item>
<title><![CDATA[MySql数据库的导出与导入]]></title>
<link>http://376409255.qzone.qq.com/blog/1257156213</link>
<description><![CDATA[<br>MySql数据库使用比较方便，安装简单。所以在一些中小型的项目中使用的比较多。这篇文章记录了mysql数据库的导出与导入的操作。<br>         MySql数据库运用mysqldump命令导出数据<br>远程数据备份： mysqldump 数据库名 &gt; 备份文件名 -uuser -h 服务器地址 -ppassword<br>         例如： mysql jy &gt; jyback.sql -uroot -pwonderfour -h 192.168.0.123 <br>数据导入： mysql -B 数据库 &lt; 备份文件 -uuser -ppassword -h 服务器地址<br>         例如:   mysql jy &lt; jyback.sql -uroot -pwonderfour -h 192.168.0.123<br> <br>另外,navicat软件的导入导出功能做的比较人性话,使用很方便,完全可以替代手工的操作.但上面的两个命令是基础,navicat也是基于上面的命令实现的. <br> <br>附录：mysqldump详细的使用手册<span style="color:#008000;font-size:13px;line-height:1.8em;">从MySQL数据库和表中倒出结构和数据</span><wbr /><br>实用程序，为备份或为把数据转移到另外的SQL服务器上倾倒一个数据库或许多数据库。倾倒将包含 创建表或充实表的SQL语句。 <br>shell&gt; mysqldump [OPTIONS] database [tables]<br>如果你不给定任何表，整个数据库将被倾倒。 <br>通过执行<span style="font-family:'新宋体';line-height:1.8em;">mysqldump --help</span><wbr />，你能得到你<span style="font-family:'新宋体';line-height:1.8em;">mysqldump</span><wbr />的版本支持的选项表。 <br>注意，如果你运行<span style="font-family:'新宋体';line-height:1.8em;">mysqldump</span><wbr />没有<span style="font-family:'新宋体';line-height:1.8em;">--quick</span><wbr />或<span style="font-family:'新宋体';line-height:1.8em;">--opt</span><wbr />选项，<span style="font-family:'新宋体';line-height:1.8em;">mysqldump</span><wbr />将在倾倒结果前装载整个结果集到内存中，如果你正在倾倒一个大的数据库，这将可能是一个问题。 <br><span style="font-family:'新宋体';line-height:1.8em;">mysqldump</span><wbr />支持下列选项： <span style="font-family:'新宋体';line-height:1.8em;">--add-locks</span><wbr /> 在每个表倾倒之前增加<span style="font-family:'新宋体';line-height:1.8em;">LOCK TABLES</span><wbr />并且之后<span style="font-family:'新宋体';line-height:1.8em;">UNLOCK TABLE</span><wbr />。(为了使得更快地插入到<span style="font-weight:bold"><wbr />MySQL</span><wbr />)。 <span style="font-family:'新宋体';line-height:1.8em;">--add-drop-table</span><wbr /> 在每个<span style="font-family:'新宋体';line-height:1.8em;">create</span><wbr />语句之前增加一个<span style="font-family:'新宋体';line-height:1.8em;">drop table</span><wbr />。 <span style="font-family:'新宋体';line-height:1.8em;">--allow-keywords</span><wbr /> 允许创建是关键词的列名字。这由表名前缀于每个列名做到。 <span style="font-family:'新宋体';line-height:1.8em;">-c, --complete-insert</span><wbr /> 使用完整的<span style="font-family:'新宋体';line-height:1.8em;">insert</span><wbr />语句(用列名字)。 <span style="font-family:'新宋体';line-height:1.8em;">-C, --compress</span><wbr /> 如果客户和服务器均支持压缩，压缩两者间所有的信息。 <span style="font-family:'新宋体';line-height:1.8em;">--delayed</span><wbr /> 用<span style="font-family:'新宋体';line-height:1.8em;">INSERT DELAYED</span><wbr />命令插入行。 <span style="font-family:'新宋体';line-height:1.8em;">-e, --extended-insert</span><wbr /> 使用全新多行<span style="font-family:'新宋体';line-height:1.8em;">INSERT</span><wbr />语法。（给出更紧缩并且更快的插入语句） <span style="font-family:'新宋体';line-height:1.8em;">-#, --debug[=option_string]</span><wbr /> 跟踪程序的使用(为了调试)。 <span style="font-family:'新宋体';line-height:1.8em;">--help</span><wbr /> 显示一条帮助消息并且退出。 <span style="font-family:'新宋体';line-height:1.8em;">--fields-terminated-by=...</span><wbr /> 　 <span style="font-family:'新宋体';line-height:1.8em;">--fields-enclosed-by=...</span><wbr /> 　 <span style="font-family:'新宋体';line-height:1.8em;">--fields-optionally-enclosed-by=...</span><wbr /> 　 <span style="font-family:'新宋体';line-height:1.8em;">--fields-escaped-by=...</span><wbr /> 　 <span style="font-family:'新宋体';line-height:1.8em;">--fields-terminated-by=...</span><wbr /> 这些选择与<span style="font-family:'新宋体';line-height:1.8em;">-T</span><wbr />选择一起使用，并且有相应的<span style="font-family:'新宋体';line-height:1.8em;">LOAD DATA INFILE</span><wbr />子句相同的含义。见<a href="http://www.yesky.com/imagesnew/software/mysql/manual_Reference.html#LOAD_DATA" target="_blank"><span style="color:#008000;font-size:13px;line-height:1.8em;">7.16<span style="font-family:'新宋体';line-height:1.8em;"> LOAD DATA INFILE</span><wbr />语法</span><wbr /></a><wbr />。 <span style="font-family:'新宋体';line-height:1.8em;">-F, --flush-logs</span><wbr /> 在开始倾倒前，洗掉在<span style="font-weight:bold"><wbr />MySQL</span><wbr />服务器中的日志文件。 <span style="font-family:'新宋体';line-height:1.8em;">-f, --force,</span><wbr /> 即使我们在一个表倾倒期间得到一个SQL错误，继续。 <span style="font-family:'新宋体';line-height:1.8em;">-h, --host=..</span><wbr /> 从命名的主机上的<span style="font-weight:bold"><wbr />MySQL</span><wbr />服务器倾倒数据。缺省主机是<span style="font-family:'新宋体';line-height:1.8em;">localhost</span><wbr />。 <span style="font-family:'新宋体';line-height:1.8em;">-l, --lock-tables.</span><wbr /> 为开始倾倒锁定所有表。 <span style="font-family:'新宋体';line-height:1.8em;">-t, --no-create-info</span><wbr /> 不写入表创建信息(<span style="font-family:'新宋体';line-height:1.8em;">CREATE TABLE</span><wbr />语句） <span style="font-family:'新宋体';line-height:1.8em;">-d, --no-data</span><wbr /> 不写入表的任何行信息。如果你只想得到一个表的结构的倾倒，这是很有用的！ <span style="font-family:'新宋体';line-height:1.8em;">--opt</span><wbr /> 同<span style="font-family:'新宋体';line-height:1.8em;">--quick --add-drop-table --add-locks --extended-insert --lock-tables</span><wbr />。应该给你为读入一个<span style="font-weight:bold"><wbr />MySQL</span><wbr />服务器的尽可能最快的倾倒。 <span style="font-family:'新宋体';line-height:1.8em;">-pyour_pass, --password[=your_pass]</span><wbr /> 与服务器连接时使用的口令。如果你不指定<span style="font-family:'新宋体';line-height:1.8em;">“=your_pass”</span><wbr />部分，<span style="font-family:'新宋体';line-height:1.8em;">mysqldump</span><wbr />需要来自终端的口令。 <span style="font-family:'新宋体';line-height:1.8em;">-P port_num, --port=port_num</span><wbr /> 与一台主机连接时使用的TCP/IP端口号。（这用于连接到<span style="font-family:'新宋体';line-height:1.8em;">localhost</span><wbr />以外的主机，因为它使用 Unix套接字。） <span style="font-family:'新宋体';line-height:1.8em;">-q, --quick</span><wbr /> 不缓冲查询，直接倾倒至stdout；使用<span style="font-family:'新宋体';line-height:1.8em;">mysql_use_result()</span><wbr />做它。 <span style="font-family:'新宋体';line-height:1.8em;">-S /path/to/socket, --socket=/path/to/socket</span><wbr /> 与<span style="font-family:'新宋体';line-height:1.8em;">localhost</span><wbr />连接时（它是缺省主机)使用的套接字文件。 <span style="font-family:'新宋体';line-height:1.8em;">-T, --tab=path-to-some-directory</span><wbr /> 对于每个给定的表，创建一个<span style="font-family:'新宋体';line-height:1.8em;">table_name.sql</span><wbr />文件，它包含SQL CREATE 命令，和一个<span style="font-family:'新宋体';line-height:1.8em;">table_name.txt</span><wbr />文件，它包含数据。 <span style="font-weight:bold"><wbr />注意</span><wbr />：这只有在<span style="font-family:'新宋体';line-height:1.8em;">mysqldump</span><wbr />运行在<span style="font-family:'新宋体';line-height:1.8em;">mysqld</span><wbr />守护进程运行的同一台机器上的时候才工作。<span style="font-family:'新宋体';line-height:1.8em;">.txt</span><wbr />文件的格式根据<span style="font-family:'新宋体';line-height:1.8em;">--fields-xxx</span><wbr />和<span style="font-family:'新宋体';line-height:1.8em;">--lines--xxx</span><wbr />选项来定。 <span style="font-family:'新宋体';line-height:1.8em;">-u user_name, --user=user_name</span><wbr /> 与服务器连接时，<span style="font-weight:bold"><wbr />MySQL</span><wbr />使用的用户名。缺省值是你的Unix登录名。 <span style="font-family:'新宋体';line-height:1.8em;">-O var=option, --set-variable var=option</span><wbr /> 设置一个变量的值。可能的变量被列在下面。 <span style="font-family:'新宋体';line-height:1.8em;">-v, --verbose</span><wbr /> 冗长模式。打印出程序所做的更多的信息。 <span style="font-family:'新宋体';line-height:1.8em;">-V, --version</span><wbr /> 打印版本信息并且退出。 <span style="font-family:'新宋体';line-height:1.8em;">-w, --where='where-condition'</span><wbr /> 只倾倒被选择了的记录；注意引号是强制的！ <br>&quot;--where=user='jimf'&quot; &quot;-wuserid&gt;1&quot; &quot;-wuserid&lt;1&quot;<br>最常见的<span style="font-family:'新宋体';line-height:1.8em;">mysqldump</span><wbr />使用可能制作整个数据库的一个备份： <br>mysqldump --opt database &gt; backup-file.sql <br>但是它对用来自于一个数据库的信息充实另外一个<span style="font-weight:bold"><wbr />MySQL</span><wbr />数据库也是有用的： <br>mysqldump --opt database | mysql --host=remote-host -C database<span style="color:#008000;font-size:13px;line-height:1.8em;">从文本文件导入数据</span><wbr /><br><span style="font-family:'新宋体';line-height:1.8em;">mysqlimport</span><wbr />提供一个到<span style="font-family:'新宋体';line-height:1.8em;">LOAD DATA INFILE</span><wbr />SQL语句的命令行接口。<span style="font-family:'新宋体';line-height:1.8em;">mysqlimport</span><wbr />的大多数选项直接对应于<span style="font-family:'新宋体';line-height:1.8em;">LOAD DATA INFILE</span><wbr />的相同选项。见<a href="http://www.yesky.com/imagesnew/software/mysql/manual_Reference.html#LOAD_DATA" target="_blank"><span style="color:#008000;font-size:13px;line-height:1.8em;">7.16<span style="font-family:'新宋体';line-height:1.8em;"> LOAD DATA INFILE</span><wbr />语法</span><wbr /></a><wbr />。 <br><span style="font-family:'新宋体';line-height:1.8em;">mysqlimport</span><wbr />象这样调用： <br>shell&gt; mysqlimport [options] filename ...<br>对于在命令行上命名的每个文本文件，<span style="font-family:'新宋体';line-height:1.8em;">mysqlimport</span><wbr />剥去文件名的扩展名并且使用它决定哪个表导入文件的内容。例如，名为<span style="font-family:'新宋体';line-height:1.8em;">“patient.txt”</span><wbr />、<span style="font-family:'新宋体';line-height:1.8em;">“patient.text”</span><wbr />和<span style="font-family:'新宋体';line-height:1.8em;">“patient”</span><wbr />将全部被导入名为<span style="font-family:'新宋体';line-height:1.8em;">patient</span><wbr />的一个表中。 <br><span style="font-family:'新宋体';line-height:1.8em;">mysqlimport</span><wbr />支持下列选项： <span style="font-family:'新宋体';line-height:1.8em;">-C, --compress</span><wbr /> 如果客户和服务器均支持压缩，压缩两者之间的所有信息。 <span style="font-family:'新宋体';line-height:1.8em;">-#, --debug[=option_string]</span><wbr /> 跟踪程序的使用(为调试)。 <span style="font-family:'新宋体';line-height:1.8em;">-d, --delete</span><wbr /> 在导入文本文件前倒空表格。 <span style="font-family:'新宋体';line-height:1.8em;">--fields-terminated-by=...</span><wbr /> 　 <span style="font-family:'新宋体';line-height:1.8em;">--fields-enclosed-by=...</span><wbr /> 　 <span style="font-family:'新宋体';line-height:1.8em;">--fields-optionally-enclosed-by=...</span><wbr /> 　 <span style="font-family:'新宋体';line-height:1.8em;">--fields-escaped-by=...</span><wbr /> 　 <span style="font-family:'新宋体';line-height:1.8em;">--fields-terminated-by=...</span><wbr /> 这些选项与对应于<span style="font-family:'新宋体';line-height:1.8em;">LOAD DATA INFILE</span><wbr />的子句相同的含义。见<a href="http://www.yesky.com/imagesnew/software/mysql/manual_Reference.html#LOAD_DATA" target="_blank"><span style="color:#008000;font-size:13px;line-height:1.8em;">7.16<span style="font-family:'新宋体';line-height:1.8em;"> LOAD DATA INFILE</span><wbr />语法</span><wbr /></a><wbr />。 <span style="font-family:'新宋体';line-height:1.8em;">-f, --force</span><wbr /> 忽略错误。例如，如果对于一个文本文件的一个表不存在，继续处理任何余下的文件。没有<span style="font-family:'新宋体';line-height:1.8em;">--force</span><wbr />，如果表不存在，<span style="font-family:'新宋体';line-height:1.8em;">mysqlimport</span><wbr />退出。 <span style="font-family:'新宋体';line-height:1.8em;">--help</span><wbr /> 显示一条帮助消息并且退出。 <span style="font-family:'新宋体';line-height:1.8em;">-h host_name, --host=host_name</span><wbr /> 导入数据到命名的主机上的<span style="font-weight:bold"><wbr />MySQL</span><wbr />服务器。缺省主机是<span style="font-family:'新宋体';line-height:1.8em;">localhost</span><wbr />。 <span style="font-family:'新宋体';line-height:1.8em;">-i, --ignore</span><wbr /> 见为<span style="font-family:'新宋体';line-height:1.8em;">--replace</span><wbr />选项的描述。 <span style="font-family:'新宋体';line-height:1.8em;">-l, --lock-tables</span><wbr /> 在处理任何文本文件前为写入所定<span style="font-weight:bold"><wbr />所有的</span><wbr />表。这保证所有的表在服务器上被同步。 <span style="font-family:'新宋体';line-height:1.8em;">-L, --local</span><wbr /> 从客户读取输入文件。缺省地，如果你连接<span style="font-family:'新宋体';line-height:1.8em;">localhost</span><wbr />(它是缺省主机)，文本文件被假定在服务器上。 <span style="font-family:'新宋体';line-height:1.8em;">-pyour_pass, --password[=your_pass]</span><wbr /> 与服务器连接时使用的口令。如果你不指定<span style="font-family:'新宋体';line-height:1.8em;">“=your_pass”</span><wbr />部分，<span style="font-family:'新宋体';line-height:1.8em;">mysqlimport</span><wbr />要求来自终端的口令。 <span style="font-family:'新宋体';line-height:1.8em;">-P port_num, --port=port_num</span><wbr /> 与一台主机连接时使用的TCP/IP端口号。（这被用于连接到除<span style="font-family:'新宋体';line-height:1.8em;">localhost</span><wbr />以外的主机，因为它使用Unix套接字。） <span style="font-family:'新宋体';line-height:1.8em;">-r, --replace</span><wbr /> <span style="font-family:'新宋体';line-height:1.8em;">--replace</span><wbr />和<span style="font-family:'新宋体';line-height:1.8em;">--ignore</span><wbr />选项控制对输入在唯一键值上有重复的现有记录的输入处理。如果你指定<span style="font-family:'新宋体';line-height:1.8em;">--replace</span><wbr />，新行将代替有相同唯一键的存在的行。如果你指定<span style="font-family:'新宋体';line-height:1.8em;">--ignore</span><wbr />，跳过输入在唯一键值上有重复的现有记录。如果你不指定任何一个选项，当找到一个重复的键值，出现一个错误，并且文本文件余下部分被忽略。 <span style="font-family:'新宋体';line-height:1.8em;">-s, --silent</span><wbr /> 安静模式。只有在错误发生时，写出输出。 <span style="font-family:'新宋体';line-height:1.8em;">-S /path/to/socket, --socket=/path/to/socket</span><wbr /> 与<span style="font-family:'新宋体';line-height:1.8em;">localhost</span><wbr />(它是缺省主机)连接时使用的套接字文件。 <span style="font-family:'新宋体';line-height:1.8em;">-u user_name, --user=user_name</span><wbr /> <span style="font-weight:bold"><wbr />MySQL</span><wbr />使用的用户名字当与服务者联接时。缺省价值是你的 Unix 登录名字。 <span style="font-family:'新宋体';line-height:1.8em;">-v, --verbose</span><wbr /> 冗长模式。打印程序所做的更多信息。 <span style="font-family:'新宋体';line-height:1.8em;">-V, --version</span><wbr /> 打印版本信息并且退出。 <br>以下是使用<span style="font-family:'新宋体';line-height:1.8em;">mysqlimport</span><wbr />运行的一个样本： <br>$ mysql --versionmysql  Ver 9.33 Distrib 3.22.25, for pc-linux-gnu (i686)$ uname -aLinux xxx.com 2.2.5-15 #1 Mon Apr 19 22:21:09 EDT 1999 i586 unknown$ mysql -e 'CREATE TABLE imptest(id INT, n VARCHAR(30))' test$ eda100     Max Sydow101     Count Dracula.w imptest.txt32q$ od -c imptest.txt0000000   1   0   0  \t   M   a   x       S   y   d   o   w  \n   1   00000020   1  \t   C   o   u   n   t       D   r   a   c   u   l   a  \n0000040$ mysqlimport --local test imptest.txttest.imptest: Records: 2  Deleted: 0  Skipped: 0  Warnings: 0$ mysql -e 'SELECT * FROM imptest' test+------+---------------+| id   | n             |+------+---------------+|  100 | Max Sydow     ||  101 | Count Dracula |+------+---------------+ <!--v:3.2--> ]]></description>
<category><![CDATA[IT技术文档]]></category>
<author><![CDATA[376409255@qq.com( Ｘiao.℡F︷)]]></author>
<comments>http://376409255.qzone.qq.com/blog/1257156213#comment</comments>
<qz:effect>134218256</qz:effect>
<pubDate>Mon, 02 Nov 2009 10:03:33 GMT</pubDate>
<guid>http://376409255.qzone.qq.com/blog/1257156213</guid>
</item>

<item>
<title><![CDATA[Linux下mysql安装配置入门知识]]></title>
<link>http://376409255.qzone.qq.com/blog/1257149828</link>
<description><![CDATA[<br><span style="font-family:'Verdana';line-height:1.8em;">安装Mysql <br>1、下载MySQL的安装文件 <br>安装MySQL需要下面两个文件：<br>MySQL-server-5.1.7-0.i386.rpm </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">下载地址为：<a href="http://dev.mysql.com/downloads/mysql/5.1.html" target="_blank"><span style="color:#864f0e;font-family:'Arial';line-height:1.8em;">http://dev.mysql.com/downloads/mysql/5.1.html</span><wbr /></a><wbr />，打开此网页，下拉网页找到“Linux x86 generic RPM (statically linked against glibc 2.2.5) downloads”项，找到“Server”和“Client programs”项，下载需要的上述两个rpm文件。 <br>2、安装MySQL <br>　　 rpm文件是Red Hat公司开发的软件安装包，rpm可让Linux在安装软件包时免除许多复杂的手续。该命令在安装时常用的参数是 –ivh ,其中i表示将安装指定的rmp软件包，V表示安装时的详细信息，h表示在安装期间出现“#”符号来显示目前的安装过程。这个符号将持续到安装完成后才停止。 <br>　　 1）安装服务器端 <br>　　 在有两个rmp文件的目录下运行如下命令： <br>　　 [root@test1 local]# rpm -ivh MySQL-server-5.1.7-0.i386.rpm MySQL-client-5.1.7-0.i386.rpm　　<br>显示如下信息。 <br>warning: MySQL-server-5.1.7-0.i386.rpm<br>signature: NOKEY, key ID 5072e1f5 <br>　　 Preparing...　　　　　　　########################################### [100%] <br>　　 1:MySQL-server　　　　　########################################### [100%] <br>　　　 。。。。。。（省略显示） <br>　　 /usr/bin/mysqladmin -u root password 'new-password' <br>　　 /usr/bin/mysqladmin -u root -h test1 password 'new-password' <br>　　　 。。。。。。（省略显示） <br>　　 Starting mysqld daemon with databases from /var/lib/mysql <br>　　 如出现如上信息，服务端安装完毕。测试是否成功可运行netstat看Mysql端口是否打开，如打开表示服务已经启动，安装成功。Mysql默认的端口是3306。 <br>　　 [root@test1 local]# netstat -nat <br>　　 Active Internet connections (servers and established) <br>　　 Proto Recv-Q Send-Q Local Address　　　　　 Foreign Address　　　　 State　　　 <br>　　 tcp　　0　　0 0.0.0.0:3306　　　　 0.0.0.0:*　　　　　 LISTEN　　　 <br>　　 上面显示可以看出MySQL服务已经启动。 <br>　　 2）安装客户端 <br>　　 运行如下命令： <br>　　 [root@test1 local]# rpm -ivh MySQL-client-5.1.7-0.i386.rpm<br>　　 warning: MySQL-client-5.1.7-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5 <br>　　 Preparing...　　　　########################################### [100%] <br>　　 1:MySQL-client　 ########################################### [100%] <br>　　 显示安装完毕。 <br>　　 用下面的命令连接mysql,测试是否成功。 <br></span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">三、登录MySQL </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 登录MySQL的命令是mysql， mysql 的使用语法如下： <br>　　 mysql [-u username] [-h host] [-p[password]] [dbname] <br>　　 username 与 password 分别是 MySQL 的用户名与密码，mysql的初始管理帐号是root，没有密码，注意：这个root用户不是Linux的系统用户。MySQL默认用户是root，由于初始没有密码，第一次进时只需键入mysql即可。 <br>　　 [root@test1 local]# mysql <br>　　 Welcome to the MySQL monitor.　Commands end with ; or \g. <br>　　 Your MySQL connection id is 1 to server version: 4.0.16-standard <br>　　 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. <br>　　 mysql&gt; <br>　　 出现了“mysql&gt;”提示符，恭喜你，安装成功！ <br>　　 增加了密码后的登录格式如下： <br>　　 mysql -u root -p <br>　　 Enter password: (输入密码) <br>　　 其中-u后跟的是用户名，-p要求输入密码，回车后在输入密码处输入密码。 </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 注意：这个mysql文件在/usr/bin目录下，与后面讲的启动文件/etc/init.d/mysql不是一个文件。 </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 四、MySQL的几个重要目录 </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 MySQL安装完成后不象SQL Server默认安装在一个目录，它的数据库文件、配置文件和命令文件分别在不同的目录，了解这些目录非常重要，尤其对于Linux的初学者，因为 Linux本身的目录结构就比较复杂，如果搞不清楚MySQL的安装目录那就无从谈起深入学习。 </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 下面就介绍一下这几个目录。 </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 1、数据库目录 <br>　　 /var/lib/mysql/ </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 2、配置文件 <br>　　 /usr/share/mysql（mysql.server命令及配置文件） </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 3、相关命令 <br>　　 /usr/bin(mysqladmin mysqldump等命令) </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 4、启动脚本 <br>　　 /etc/rc.d/init.d/（启动脚本文件mysql的目录） <br>　 五、修改登录密码 </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 MySQL默认没有密码，安装完毕增加密码的重要性是不言而喻的。 </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 1、命令 <br>　　 usr/bin/mysqladmin -u root password 'new-password' <br>　　 格式：mysqladmin -u用户名 -p旧密码 password 新密码 </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 2、例子 <br>　　 例1：给root加个密码123456。 <br>　　 键入以下命令 ： <br>　　 [root@test1 local]# /usr/bin/mysqladmin -u root password 123456 <br>　　 注：因为开始时root没有密码，所以-p旧密码一项就可以省略了。 </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 3、测试是否修改成功 <br>　　 1）不用密码登录 <br>　　 [root@test1 local]# mysql <br>　　 ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO) <br>　　 显示错误，说明密码已经修改。 <br>　　 2）用修改后的密码登录 <br>　　 [root@test1 local]# mysql -u root -p <br>　　 Enter password: (输入修改后的密码123456) <br>　　 Welcome to the MySQL monitor.　Commands end with ; or \g. <br>　　 Your MySQL connection id is 4 to server version: 4.0.16-standard <br>　　 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. <br>　　 mysql&gt; <br>　　 成功！ <br>　　 这是通过mysqladmin命令修改口令，也可通过修改库来更改口令。 <br></span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">六、启动与停止 </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 1、启动 <br>　　 MySQL安装完成后启动文件mysql在/etc/init.d目录下，在需要启动时运行下面命令即可。 <br>　　 [root@test1 init.d]# /etc/init.d/mysql start </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 2、停止 <br>　　 /usr/bin/mysqladmin -u root -p shutdown </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 3、自动启动 <br>　　 1）察看mysql是否在自动启动列表中 <br>　　 [root@test1 local]#　/sbin/chkconfig --list <br>　　 2）把MySQL添加到你系统的启动服务组里面去 <br>　　 [root@test1 local]#　/sbin/chkconfig　–- add　mysql <br>　　 3）把MySQL从启动服务组里面删除。 <br>　　 [root@test1 local]#　/sbin/chkconfig　–-del　mysql <br>七、更改MySQL目录 </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步： </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 1、home目录下建立data目录 <br>　　 cd /home <br>　　 mkdir data </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 2、把MySQL服务进程停掉： <br>　　 mysqladmin -u root -p shutdown </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 3、把/var/lib/mysql整个目录移到/home/data <br>　　 mv /var/lib/mysql　/home/data/ <br>　　 这样就把MySQL的数据文件移动到了/home/data/mysql下 </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 4、找到my.cnf配置文件 <br>　　 如果/etc/目录下没有my.cnf配置文件，请到/usr/share/mysql/下找到*.cnf文件，拷贝其中一个到/etc/并改名为my.cnf)中。命令如下： <br>　　 [root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf　/etc/my.cnf </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 5、编辑MySQL的配置文件/etc/my.cnf <br>　　 为保证MySQL能够正常工作，需要指明mysql.sock文件的产生位置。修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为：/home/mysql/mysql.sock 。操作如下： <br>　　 vi　 my.cnf　　　 (用vi工具编辑my.cnf文件，找到下列数据修改之) <br>　　 # The MySQL server <br>　　　 [mysqld] <br>　　　 port　　　= 3306 <br>　　　 #socket　 = /var/lib/mysql/mysql.sock（原内容，为了更稳妥用“#”注释此行） <br>　　　 socket　 = /home/data/mysql/mysql.sock　　　（加上此行） </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 6、修改MySQL启动脚本/etc/rc.d/init.d/mysql <br>　　 最后，需要修改MySQL启动脚本/etc/rc.d/init.d/mysql，把其中datadir=/var/lib/mysql一行中，等号右边的路径改成你现在的实际存放路径：home/data/mysql。 <br>　　 [root@test1 etc]# vi　/etc/rc.d/init.d/mysql <br>　　 #datadir=/var/lib/mysql　　　　（注释此行） <br>　　 datadir=/home/data/mysql　　 （加上此行） </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 7、重新启动MySQL服务 <br>　　 /etc/rc.d/init.d/mysql　start <br>　　 或用reboot命令重启Linux <br>　　 如果工作正常移动就成功了，否则对照前面的7步再检查一下。 <br></span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">八、MySQL的常用操作 </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 注意：MySQL中每个命令后都要以分号；结尾。 </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 1、显示数据库 <br>　　 mysql&gt; show databases; <br>　　 +----------+ <br>　　 | Database | <br>　　 +----------+ <br>　　 | mysql　　| <br>　　 | test　　 | <br>　　 +----------+ <br>　　 2 rows in set (0.04 sec) <br>　　 Mysql刚安装完有两个数据库：mysql和test。mysql库非常重要，它里面有MySQL的系统信息，我们改密码和新增用户，实际上就是用这个库中的相关表进行操作。 </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 2、显示数据库中的表 <br>　　 mysql&gt; use mysql; （打开库，对每个库进行操作就要打开此库，类似于foxpro ） <br>　　 Database changed </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 mysql&gt; show tables; <br>　　 +-----------------+ <br>　　 | Tables_in_mysql | <br>　　 +-----------------+ <br>　　 | columns_priv　　| <br>　　 | db　　　　　　　| <br>　　 | func　　　　　　| <br>　　 | host　　　　　　| <br>　　 | tables_priv　　 | <br>　　 | user　　　　　　| <br>　　 +-----------------+ <br>　　 6 rows in set (0.01 sec) </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 3、显示数据表的结构： <br>　　 describe 表名; </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 4、显示表中的记录： <br>　　 select * from 表名; <br>　　 例如：显示mysql库中user表中的纪录。所有能对MySQL用户操作的用户都在此表中。 <br>　　 Select * from user; </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 5、建库： <br>　　 create database 库名; <br>　　 例如：创建一个名字位aaa的库 <br>　　 mysql&gt; create databases aaa; <br>6、建表： <br>　　 use 库名； <br>　　 create table 表名 (字段设定列表)； <br>　　 例如：在刚创建的aaa库中建立表name,表中有id(序号，自动增长)，xm（姓名）,xb（性别）,csny（出身年月）四个字段 <br>　　 use aaa; <br>　　 mysql&gt; create table name (id int(3) auto_increment not null primary key, xm char(8),xb char(2),csny date); <br>　　 可以用describe命令察看刚建立的表结构。 <br>　　 mysql&gt; describe name; </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 +-------+---------+------+-----+---------+----------------+ <br>　　 | Field | Type　　| Null | Key | Default | Extra　　　　　| <br>　　 +-------+---------+------+-----+---------+----------------+ <br>　　 | id　　| int(3)　|　　　| PRI | NULL　　| auto_increment | <br>　　 | xm　　| char(8) | YES　|　　 | NULL　　|　　　　　　　　| <br>　　 | xb　　| char(2) | YES　|　　 | NULL　　|　　　　　　　　| <br>　　 | csny　| date　　| YES　|　　 | NULL　　|　　　　　　　　| <br>　　 +-------+---------+------+-----+---------+----------------+ </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 7、增加记录 <br>　　 例如：增加几条相关纪录。 <br>　　 mysql&gt; insert into name values('','张三','男','1971-10-01'); <br>　　 mysql&gt; insert into name values('','白云','女','1972-05-20'); <br>　　 可用select命令来验证结果。 <br>　　 mysql&gt; select * from name; <br>　　 +----+------+------+------------+ <br>　　 | id | xm　 | xb　 | csny　　　 | <br>　　 +----+------+------+------------+ <br>　　 |　1 | 张三 | 男　 | 1971-10-01 | <br>　　 |　2 | 白云 | 女　 | 1972-05-20 | <br>　　 +----+------+------+------------+ <br></span><wbr /><br>8、修改纪录 <br>　　 例如：将张三的出生年月改为1971-01-10 <br>　　 mysql&gt; update name set csny='1971-01-10' where xm='张三';<br><span style="font-family:'Verdana';line-height:1.8em;">　　 9、删除纪录 <br>　　 例如：删除张三的纪录。 <br>　　 mysql&gt; delete from name where xm='张三'; </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 10、删库和删表 <br>　　 drop database 库名; <br>　　 drop table 表名； </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 九、增加MySQL用户 </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 格式：grant select on 数据库.* to 用户名@登录主机 identified by &quot;密码&quot; <br>例1、增加一个用户user_1密码为123，让他可以在任何主机上登录，并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MySQL，然后键入以下命令： </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 mysql&gt; grant select,insert,update,delete on *.* to user_1@&quot;%&quot; Identified by &quot;123&quot;; <br>例1增加的用户是十分危险的，如果知道了user_1的密码，那么他就可以在网上的任何一台电脑上登录你的MySQL数据库并对你的数据为所欲为了，解决办法见例2。 </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　例2、增加一个用户user_2密码为123,让此用户只可以在localhost上登录，并可以对数据库aaa进行查询、插入、修改、删除的操作（localhost指本地主机，即MySQL数据库所在的那台主机），这样用户即使用知道user_2 的密码，他也无法从网上直接访问数据库，只能通过 MYSQL主机来操作aaa库。 </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 mysql&gt;grant select,insert,update,delete on aaa.* to user_2@localhost identified by &quot;123&quot;; </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 用新增的用户如果登录不了MySQL，在登录时用如下命令： </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 mysql -u user_1 -p　-h 192.168.113.50　（-h后跟的是要登录主机的ip地址） </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 十、备份与恢复 </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 1、备份 </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 例如：将上例创建的aaa库备份到文件back_aaa中 </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 [root@test1 root]# cd　/home/data/mysql　(进入到库目录，本例库已由val/lib/mysql转到/home/data/mysql，见上述第七部分内容) <br>　　 [root@test1 mysql]# mysqldump -u root -p --opt aaa &gt; back_aaa </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 2、恢复 </span><wbr /><br><span style="font-family:'Verdana';line-height:1.8em;">　　 [root@test mysql]# mysql -u root -p ccc &lt; back_aaa</span><wbr /> <!--v:3.2--> ]]></description>
<category><![CDATA[IT技术文档]]></category>
<author><![CDATA[376409255@qq.com( Ｘiao.℡F︷)]]></author>
<comments>http://376409255.qzone.qq.com/blog/1257149828#comment</comments>
<qz:effect>134218256</qz:effect>
<pubDate>Mon, 02 Nov 2009 08:17:08 GMT</pubDate>
<guid>http://376409255.qzone.qq.com/blog/1257149828</guid>
</item>

<item>
<title><![CDATA[linux下MYSQL密码破解]]></title>
<link>http://376409255.qzone.qq.com/blog/1257148657</link>
<description><![CDATA[<br>ps –aux|grep mysqld (下面是运行过后的的显示)<br>root     28138  0.0  0.1  4332 1240 pts/1    S    23:03   0:00 /bin/sh /usr/bin/mysqld_safe --defaults-file=/etc/my.cnf<br>root     <span style="color:#ff0000;line-height:1.8em;">28165 </span><wbr /> 0.0  1.7 123812 17356 pts/1  Sl   23:03   0:00 /usr/libexec/mysqld --defaults-file=/etc/my.cnf --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-locking --socket=/var/lib/mysql/mysql.sock<br>root     28193  0.0  0.0  5312  644 pts/2    S+   23:07   0:00 grep mysqld<br>其中上面的那个才是mysqld的进程，下面的这个是grep的进程 ， <span style="color:#ff0000;line-height:1.8em;">kill  28165</span><wbr />  <br>注意红色标出的是对应的。<br>#  /usr/libexec/mysqld --skip-grant-tables --user=mysql&amp;<br>#  mysql<br>#  use mysql<br>#  UPDATE user SET password=PASSWORD(’123456’) WHERE user=’root’;<br>#  FLUSH PRIVILEGES;<br>源码安装的 假设路径为 /usr/loca/mysql<br>/usr/local/mysql/bin/mysqld_safe --skip-grant-tables --user=mysql&amp;<br>UPDATE user SET password=PASSWORD(’new_password’) WHERE user=’root’<br>FLUSH PRIVILEGES<br>killall mysql或kill mysql进程号<br>重启MYSQL <!--v:3.2--> ]]></description>
<category><![CDATA[IT技术文档]]></category>
<author><![CDATA[376409255@qq.com( Ｘiao.℡F︷)]]></author>
<comments>http://376409255.qzone.qq.com/blog/1257148657#comment</comments>
<qz:effect>134218256</qz:effect>
<pubDate>Mon, 02 Nov 2009 07:57:37 GMT</pubDate>
<guid>http://376409255.qzone.qq.com/blog/1257148657</guid>
</item>

<item>
<title><![CDATA[[转]PS打造炫酷耀眼文字特效]]></title>
<link>http://376409255.qzone.qq.com/blog/1254824807</link>
<description><![CDATA[<span style="font-family:'宋体';line-height:1.8em;"><div style="text-align:center;"><br><wbr /><a href="http://b23.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e4187a805904086143eba2558e44ca14b8396bec59a17f874085c9949d60ecb323ac7e98fd47e842ac8d55824f919651ec7467c8a7eea871fea89b6ceee970cef2fa20a5d55b" target="_blank"><img style="width:655px;height:200px;border:0;" src="http://b23.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e4187a805904086143eba2558e44ca14b8396bec59a17f874085c9949d60ecb323ac7e98fd47e842ac8d55824f919651ec7467c8a7eea871fea89b6ceee970cef2fa20a5d55b" /></a><wbr /></div>    <span style="font-size:13px;line-height:1.8em;">在这个教程中。我们将学习设计并打造一幅非常酷的几何形状文字加Grungy风格背景效果。操作并不复杂。但是效果帅呆了。一起试试吧。</span><wbr /><br><span style="font-size:13px;line-height:1.8em;">同时我们也会学到如何制作,这种非常耀眼的光线和烟雾效果。涉及到的技巧包括图层混合。滤镜。图像调整以及特定的笔刷。</span><wbr /><br><span style="font-size:13px;line-height:1.8em;"><span style="font-weight:bold"><wbr />下面是效果图。</span><wbr /></span><wbr /><br><div style="text-align:center;"> <wbr /><a href="http://b24.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e4183121205cb2c7911478a19aa4c4e6af95362e0ff37dadca764d39d0bab039bee6ee59819bd5984ccae20ab33f1225819a2c0d4fe2f664666978d6023a27b2f5ae43da70d6" target="_blank"><img style="width:549px;height:750px;border:0;" src="http://b24.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e4183121205cb2c7911478a19aa4c4e6af95362e0ff37dadca764d39d0bab039bee6ee59819bd5984ccae20ab33f1225819a2c0d4fe2f664666978d6023a27b2f5ae43da70d6" /></a><wbr /></div>正式开始以前。我们需要以下素材:<a href="http://fc00.deviantart.com/fs44/f/2009/133/6/1/Amputa_Bangiz_Standard_TTF_by_Quiccs.zip" target="_blank">字体素材 </a><wbr /><a href="http://www.brushking.eu/images/fichier/287-Valley_of_the_Dry_Bones_3_by_seudavi.zip" target="_blank">   背景笔刷  </a><wbr /><br>好吧，现在开始做了：<br>第一步：<br>在PS中新建文档。1200 * 1700px。填充背景层为黑色。新建一层。载入我们下载到的笔刷用灰颜色画一些Grungy风格的纹理。如图所示：<br><wbr /><a href="http://b25.photo.store.qq.com/http_imgload.cgi?/rurl4_b=dff6028cfe27134ef8a4e8ce25cd45554395ae9078fab2f4160a61568ee8d8dc15fc2da7a00205eebf321cb2f6d95a0cca86ccfe40d58894d66145909326ccb6c0c4b3fdccf7c05584c9a609d16dd460986e9406" target="_blank"><img style="width:490px;height:658px;border:0;" src="http://b25.photo.store.qq.com/http_imgload.cgi?/rurl4_b=dff6028cfe27134ef8a4e8ce25cd45554395ae9078fab2f4160a61568ee8d8dc15fc2da7a00205eebf321cb2f6d95a0cca86ccfe40d58894d66145909326ccb6c0c4b3fdccf7c05584c9a609d16dd460986e9406" /></a><wbr /><br>    这一步的窍门是你最好把画笔的流量和不透明度设的低一些。大约在30%到40%就好了。画的时候要尽量变换画笔大小。而且也不要始终用同一个笔刷。你所做的变化越多。得到的效果就越好。<br>现在我们要给文字留出空间。并且给图像制造一些深度。给纹理层。添加一个下图所示的蒙版。<br><wbr /><a href="http://b24.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e418097b076f76c9b5e992ec8479e67e8a5de01b532f35b1d7f84b15063d796859ea24fd1a9b3947b95b7cc6f07e71db4a5a32739dcf782c1f8506fc9c5f8cc0e7574c997947" target="_blank"><img style="width:494px;height:655px;border:0;" src="http://b24.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e418097b076f76c9b5e992ec8479e67e8a5de01b532f35b1d7f84b15063d796859ea24fd1a9b3947b95b7cc6f07e71db4a5a32739dcf782c1f8506fc9c5f8cc0e7574c997947" /></a><wbr /><br>在图层顶端添加一个曲线调整层。我们需要修饰图像的亮度和对比度。<wbr /><a href="http://b24.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e4185676f67056c406e27ed20be7ed0a67d7176a32bcd2cbc89feea1069a853157e081566023747d7ccefc506ea3ddc339f970246efb01246c4adc6f7bf56f8958388c520204" target="_blank"><img style="width:475px;height:450px;border:0;" src="http://b24.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e4185676f67056c406e27ed20be7ed0a67d7176a32bcd2cbc89feea1069a853157e081566023747d7ccefc506ea3ddc339f970246efb01246c4adc6f7bf56f8958388c520204" /></a><wbr /><br>我们得到的图像如下。<br><wbr /><a href="http://b25.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e418d3bd03f6bbff8a3e786cb6ce7f2455146db3485429186780768b6386a99cc648007f75f695644b23ddf774890c4db285dfaf5364cbcb858d02105ebb06ea98f09de26d53" target="_blank"><img style="width:496px;height:658px;border:0;" src="http://b25.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e418d3bd03f6bbff8a3e786cb6ce7f2455146db3485429186780768b6386a99cc648007f75f695644b23ddf774890c4db285dfaf5364cbcb858d02105ebb06ea98f09de26d53" /></a><wbr /><br>第二步：<br>新建一层。用我们之前下载的字体。在新图层上用深灰色写字。为了便于调节。我把字写在了不止一个图层上。然后进行旋转和缩放等等操作。效果如下。<br><wbr /><a href="http://b24.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e418e83e11467c530ad236cdbfcfa54645a4484ebe13ea8087bb9b2b0637578f94bbb10fa5c6f8bb1f4ea2e9562642fdb6ad8f0e20bbe0fd5a904ec630557f0036036d501338" target="_blank"><img style="width:552px;height:484px;border:0;" src="http://b24.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e418e83e11467c530ad236cdbfcfa54645a4484ebe13ea8087bb9b2b0637578f94bbb10fa5c6f8bb1f4ea2e9562642fdb6ad8f0e20bbe0fd5a904ec630557f0036036d501338" /></a><wbr /><br>一旦调整到满意的效果。我们就栅格化这些文字图层。然后把他们合并到一起。应用如下图层样式。<wbr /><a href="http://b25.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e418735fc54cbce2fbbc5a8c3ed68541bf06ce925cf959c40f827ba107dc7bbe2dddc2ba9d8586445ab410b58238c9a077d16f0e09218262cc9e63c743867508b8433bf65753" target="_blank"><img style="width:582px;height:477px;border:0;" src="http://b25.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e418735fc54cbce2fbbc5a8c3ed68541bf06ce925cf959c40f827ba107dc7bbe2dddc2ba9d8586445ab410b58238c9a077d16f0e09218262cc9e63c743867508b8433bf65753" /></a><wbr /><br><wbr /><a href="http://b24.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e41805e106b6d895ed76ba6df882f1522bf189b66a86baf9f3ef69cf1f88e865098a3791b15f92365d3f0bf140ece3cc3c65907f4020604e15dbfe9886fc9f7e903cd660bb21" target="_blank"><img style="width:583px;height:479px;border:0;" src="http://b24.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e41805e106b6d895ed76ba6df882f1522bf189b66a86baf9f3ef69cf1f88e865098a3791b15f92365d3f0bf140ece3cc3c65907f4020604e15dbfe9886fc9f7e903cd660bb21" /></a><wbr /><br><wbr /><a href="http://b24.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e4185a4f47dbb63c7fab7919b12296ae354644c8159f09c658c1de18ad89ca6d8056ade97e4ff91cf835b3c2b1918a0b6d1f5b1ef8a49b346dc184074124292c00949f9d5258" target="_blank"><img style="width:584px;height:476px;border:0;" src="http://b24.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e4185a4f47dbb63c7fab7919b12296ae354644c8159f09c658c1de18ad89ca6d8056ade97e4ff91cf835b3c2b1918a0b6d1f5b1ef8a49b346dc184074124292c00949f9d5258" /></a><wbr /><br>效果如下：<wbr /><a href="http://b25.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e418f879f1e34c18c50a7a85767b939e60bdde5569578be385628e7d0f58b3010c890f95aea8f3d00c07ecb9d106682dfdd0bf11c208bc37860f5c303c2ba8e51549c3be59de" target="_blank"><img style="width:574px;height:747px;border:0;" src="http://b25.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e418f879f1e34c18c50a7a85767b939e60bdde5569578be385628e7d0f58b3010c890f95aea8f3d00c07ecb9d106682dfdd0bf11c208bc37860f5c303c2ba8e51549c3be59de" /></a><wbr /><br>下面到了有趣的部分了。我们将这个文字图层复制5个副本。分别设置他们的不透明度如下。<br><wbr /><a href="http://b24.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e41805a3f4b6ee98037d2203cf74611a97c6244ac6c343b40e7bbe1e2cd881d1f23c3831d838df91f3eccfdc0329cac2d96c10d5aee3fe1789e1d582ad4cf868b77d3f61c50c" target="_blank"><img style="width:255px;height:239px;border:0;" src="http://b24.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e41805a3f4b6ee98037d2203cf74611a97c6244ac6c343b40e7bbe1e2cd881d1f23c3831d838df91f3eccfdc0329cac2d96c10d5aee3fe1789e1d582ad4cf868b77d3f61c50c" /></a><wbr /><br>下面用你键盘上的向右和向上方向键。移动这些图层以达到下图的效果。注意图层的上下关系。我们需要的是一个越往下颜色越浅的效果。这一步的窍门是。按住SHIFT再用方向键键移动图片。这样可以使图层以10px为单位移动。<wbr /><a href="http://b25.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e41817b84e5b19aae9016ad8849fa2f0b9d9b03b30a79a62a591cc7baf2d51448c943f1d46588ca1934ffe7ac1b661881457cdedc9d442431cce0c98a68fc95f8a6574430784" target="_blank"><img style="width:572px;height:759px;border:0;" src="http://b25.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e41817b84e5b19aae9016ad8849fa2f0b9d9b03b30a79a62a591cc7baf2d51448c943f1d46588ca1934ffe7ac1b661881457cdedc9d442431cce0c98a68fc95f8a6574430784" /></a><wbr /><br> <br>第三步：<br>现在我们选定最上面的文字层。按住CTRL键单击图层缩略图载入文字选区。执行选择&gt;调整边缘。设置如下：<br><wbr /><a href="http://b23.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e4186240db6a05842f6fe5fd5911015c8f5d3de809c92f669b1d33b59e493ee7e890d14e28cd4e1c7be49d39fdb57dbcd783049cc122110a7c11db480e54bfaabc1b1c59d25e" target="_blank"><img style="width:410px;height:512px;border:0;" src="http://b23.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e4186240db6a05842f6fe5fd5911015c8f5d3de809c92f669b1d33b59e493ee7e890d14e28cd4e1c7be49d39fdb57dbcd783049cc122110a7c11db480e54bfaabc1b1c59d25e" /></a><wbr /><br>保留选区。我们在所有图层顶端新建一层。选定前景色为白。背景色为黑。执行滤镜&gt;渲染&gt;云彩。<wbr /><a href="http://b24.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e418a803de390f95ea9ca0d03b7866af1adf5a40aaa698b11159d4947b03a167eeb3c2cc1bd6ded9c3fa2c448dc9452de0fc68ee52ae4974bae609201bfe566084b9abe3cbef" target="_blank"><img style="width:552px;height:566px;border:0;" src="http://b24.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e418a803de390f95ea9ca0d03b7866af1adf5a40aaa698b11159d4947b03a167eeb3c2cc1bd6ded9c3fa2c448dc9452de0fc68ee52ae4974bae609201bfe566084b9abe3cbef" /></a><wbr /><br>再次复制云彩图层两次。并把这两层云彩拖拽到所有图层顶端。设定这两层混合模式为叠加。效果如下：<wbr /><a href="http://b25.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e4182db1ae72423b3da01852f0d942eae3efd6620a15fe07be0ef50aa5cc5f718beecc4df465d4e9e9773b9eb93abaa07932085073568775ec2e45bcb3846fa99010f2099299" target="_blank"><img style="width:546px;height:492px;border:0;" src="http://b25.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e4182db1ae72423b3da01852f0d942eae3efd6620a15fe07be0ef50aa5cc5f718beecc4df465d4e9e9773b9eb93abaa07932085073568775ec2e45bcb3846fa99010f2099299" /></a><wbr /><br><br>第四步：下面开始给图像加料了——上色。在所有图层顶端新建一层。选区自己喜欢的一些颜色。用大而软的圆形画笔随意的画上去。就像这样：<wbr /><a href="http://b23.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e41808c0d643824176d2686e0e8c9f74df0e8a47b152ec3bb38502b4307f46a495a77c38c33daa8049d5faef0750af6a9cc03b3d15153b40f0a06f90a98f00d2a5d7b8b50ade" target="_blank"><img style="width:533px;height:535px;border:0;" src="http://b23.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e41808c0d643824176d2686e0e8c9f74df0e8a47b152ec3bb38502b4307f46a495a77c38c33daa8049d5faef0750af6a9cc03b3d15153b40f0a06f90a98f00d2a5d7b8b50ade" /></a><wbr /><br>设置混合模式为叠加。<br>我还想给背景的边缘部分提亮一些。所以我又新建了一层。用棕色的画笔涂抹背景边缘。<br><wbr /><a href="http://b24.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e418bee120ee4c623657646ec6c253be9806f2cbbc6a8cce0830238f504aa3bcf5d8cc63049721e9219d6a7a5858d4d78fdc67313849216ff61eff8821d1f1f3943ec91212bd" target="_blank"><img style="width:569px;height:759px;border:0;" src="http://b24.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e418bee120ee4c623657646ec6c253be9806f2cbbc6a8cce0830238f504aa3bcf5d8cc63049721e9219d6a7a5858d4d78fdc67313849216ff61eff8821d1f1f3943ec91212bd" /></a><wbr /><br>设置这一层混合模式为颜色减淡。这里我觉得这一层抢了图像整体的注意力。所以我降低了这一层的不透明度。<wbr /><a href="http://b24.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e41858113b88acbb01c803d49181330a4f9899874a2edac2e5fbe6d45f51909a30f3f78c586ed22dfe88ff091056dd091f883327dfcc14b1e895b5e23f066f0da7d04bd5cf89" target="_blank"><img style="width:570px;height:765px;border:0;" src="http://b24.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e41858113b88acbb01c803d49181330a4f9899874a2edac2e5fbe6d45f51909a30f3f78c586ed22dfe88ff091056dd091f883327dfcc14b1e895b5e23f066f0da7d04bd5cf89" /></a><wbr /><br>我们还可以给文字部分加一些高光。同样是新建一层。用大而软的圆形画笔。给这一层随机的点上白色。<wbr /><a href="http://b25.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e41817db158282486bfe91d17cf01fbc4358c2dceba27b5fb68c6100ded0037fe7e358176b6edcec7a12e9cca684cf688e38905ed7df7847e0dcbeb36de662e0bac7f4ec9de9" target="_blank"><img style="width:572px;height:662px;border:0;" src="http://b25.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e41817db158282486bfe91d17cf01fbc4358c2dceba27b5fb68c6100ded0037fe7e358176b6edcec7a12e9cca684cf688e38905ed7df7847e0dcbeb36de662e0bac7f4ec9de9" /></a><wbr /><br>混合模式为柔光：<wbr /><a href="http://b23.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e418bfab7a9ae55ceb46ca31e748b40d4867805b5d3ecd653ec85e5cac09849505b165df64816fd250b024779c91d9167e2cdcea1df04a9b87720d41f8d6203d1387d85e292a" target="_blank"><img style="width:460px;height:484px;border:0;" src="http://b23.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e418bfab7a9ae55ceb46ca31e748b40d4867805b5d3ecd653ec85e5cac09849505b165df64816fd250b024779c91d9167e2cdcea1df04a9b87720d41f8d6203d1387d85e292a" /></a><wbr /><br>为了进一步提升效果。我在所有图层顶端有加了两个调整层。曲线调整层：<br><wbr /><a href="http://b25.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e418f759ddb68c51133ce8ae24316bf6e62452974db46272ad00d07ff2bdf6b002329f245c8c3c998e23cbbe8157e2830e5956275273a68dd06f8c10055f85dcf99d7ab41b69" target="_blank"><img style="width:362px;height:419px;border:0;" src="http://b25.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e418f759ddb68c51133ce8ae24316bf6e62452974db46272ad00d07ff2bdf6b002329f245c8c3c998e23cbbe8157e2830e5956275273a68dd06f8c10055f85dcf99d7ab41b69" /></a><wbr /><br>色彩平衡调整层。<wbr /><a href="http://b25.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e418fa1c4650803270a66d53b0bd04e4dd2588811eef685646e152f7295d99a8f2214639e4d0e896189f9569f311413b7ef5920a1b696819f15ecefb1c463f1f745bcfcadbc1" target="_blank"><img style="width:307px;height:384px;border:0;" src="http://b25.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e418fa1c4650803270a66d53b0bd04e4dd2588811eef685646e152f7295d99a8f2214639e4d0e896189f9569f311413b7ef5920a1b696819f15ecefb1c463f1f745bcfcadbc1" /></a><wbr /><br>为色彩平衡调整层加如下蒙版。画这个蒙版没有什么规律。它的存在就是为了让图像上的色彩更富于变化。<wbr /><a href="http://b23.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e4183500e97b46007d87dd279bb0346eb421846da134461b2e5fb56b8e303af2323c628112f722187ba9cc008462fe74434405ee05f51d4ad964939269335975b81e6a03b42d" target="_blank"><img style="width:572px;height:720px;border:0;" src="http://b23.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e4183500e97b46007d87dd279bb0346eb421846da134461b2e5fb56b8e303af2323c628112f722187ba9cc008462fe74434405ee05f51d4ad964939269335975b81e6a03b42d" /></a><wbr /><br>最后。我们得到的效果。相当不错了吧。<wbr /><a href="http://b25.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e418af16deb17c98fbddc3740a78fd2e68de8ef50e73067bda5839a0c4ddbc973780184be9c3217c42d68cc03fd1ebd48a763ada40bf4851b71e3c0d853984979fef243a6c2b" target="_blank"><img style="width:621px;height:772px;border:0;" src="http://b25.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e418af16deb17c98fbddc3740a78fd2e68de8ef50e73067bda5839a0c4ddbc973780184be9c3217c42d68cc03fd1ebd48a763ada40bf4851b71e3c0d853984979fef243a6c2b" /></a><wbr /><br>不过我们不必停在此处。比如我就在文字的边缘用<a href="http://qbrushes.com/downloads/brushes/Enigma-Design-Pack.zip" target="_blank"><span style="color:#0099cc;line-height:1.8em;">这款笔刷</span><wbr /></a><wbr />随意画了几笔。发挥你的创造性吧。<wbr /><a href="http://b24.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e418fe6ff53e061eccadda248dc75db3decae33f13c80f820317d612b4e71d4906c96189346817be3713e89925faeb9499e25676e753a1cd2a787f9558d0e71107f9d3a9cfab" target="_blank"><img style="width:549px;height:750px;border:0;" src="http://b24.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e65d7c84b2e35a2ec20f6df85e57e418fe6ff53e061eccadda248dc75db3decae33f13c80f820317d612b4e71d4906c96189346817be3713e89925faeb9499e25676e753a1cd2a787f9558d0e71107f9d3a9cfab" /></a><wbr /><br>最后。暂时没有找到合适的网络文件上传网站，所以PSD也无法提供给大家，敬请期待！<br>如有好的上传网站能提供下载，请更贴。嘿嘿！<br> <br>各位，别忘了交作业哈！<br></span><wbr /> <!--v:3.2--> ]]></description>
<category><![CDATA[字体特效]]></category>
<author><![CDATA[376409255@qq.com( Ｘiao.℡F︷)]]></author>
<comments>http://376409255.qzone.qq.com/blog/1254824807#comment</comments>
<qz:effect>134218249</qz:effect>
<pubDate>Tue, 06 Oct 2009 10:26:47 GMT</pubDate>
<guid>http://376409255.qzone.qq.com/blog/1254824807</guid>
</item>

<item>
<title><![CDATA[一句话！！！]]></title>
<link>http://376409255.qzone.qq.com/blog/1254147247</link>
<description><![CDATA[记住，IT技术大多是国外的，最先进最权威的肯定是英文。所以，一项技术如果被翻译成中文了，说明他已经被一批中国人掌握了，那么你就已经落后了。如果连书，或者教材都出了，那证明这个技术离淘汰就不远了。。 <!--v:3.2--> ]]></description>
<category><![CDATA[个人日记]]></category>
<author><![CDATA[376409255@qq.com( Ｘiao.℡F︷)]]></author>
<comments>http://376409255.qzone.qq.com/blog/1254147247#comment</comments>
<qz:effect>134217728</qz:effect>
<pubDate>Mon, 28 Sep 2009 14:14:07 GMT</pubDate>
<guid>http://376409255.qzone.qq.com/blog/1254147247</guid>
</item>

</channel>
</rss>

