<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>DBA Blog</title>
    <link rel="alternate" type="text/html" href="http://www.dbasky.net/" />
    <link rel="self" type="application/atom+xml" href="http://www.dbasky.net/atom.xml" />
    <id>tag:www.dbasky.net,2009-04-10://1</id>
    <updated>2012-03-01T02:38:14Z</updated>
    <subtitle>     专注于Oracle、Oracle RAC、UNIX and Linux、Web 20、互联网；
擅长Oracle 的管理And维护、OPENSOURCE等
</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.25</generator>

<entry>
    <title>SecureCRT  for Mac OS X 6.7.3破解方法</title>
    <link rel="alternate" type="text/html" href="http://www.dbasky.net/archives/2012/03/securecrt-for-mac-os-x-673.html" />
    <id>tag:www.dbasky.net,2012://1.196</id>

    <published>2012-03-01T02:37:28Z</published>
    <updated>2012-03-01T02:38:14Z</updated>

    <summary><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最近从windows阵营转到MAC阵营，在windows上面用习惯的软件想搬到MAC上面，就拿SecureCRT来说，是我用的比较频繁的软件之一。简 介：SecureCRT是一个可以与PuTTY相媲美的TELNET基于文本形式的商业化远端管理工具，它是一个终端仿真程序，是连接远程运行UNIX 和VMS系统主机的理想选择。它支持VT100、VT102、VT220和ANSI终端仿真，包含基于文件的脚本和简单易用的工具条等。 安装和破解方法：从官方下载安装 6.7.3 版本的SecureCRT并安装。(直接next就ok，不多说）破解：A：在打补丁前需要手动在终端执行以下命令： sudo chmod -R 777 /Applications/SecureCRT.app/Contents/MacOSB：点击"select Application"选择已经安装好的SecureCRT.app或者直接拖拽进Patch程序等待Patch完成。C：使用如下的注册信息手工注册：Name:suddyCompany:suddySerial:03-67-009054LicenseKey:ACUYJV Q1V2QU 1YWRCN NBYCYK AAXBZT CMJS8Z KBFYR7 QXJE45Date:11-19-2011附scrt-6.7.3-292.osx_x86.dmg SecureCRT.6.7.3.patch.app.zip...]]></summary>
    <author>
        <name>Mike.Xu</name>
        <uri>http://www.dbasky.net</uri>
    </author>
    
    <category term="securecrtmac破解，mac，securecrt" label="secureCRT mac 破解，mac，securecrt" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.dbasky.net/">
        <![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最近从windows阵营转到MAC阵营，在windows上面用习惯的软件想搬到MAC上面，就拿SecureCRT来说，是我用的比较频繁的软件之一。<br />简
介：SecureCRT是一个可以与PuTTY相媲美的TELNET基于文本形式的商业化远端管理工具，它是一个终端仿真程序，是连接远程运行UNIX 
和VMS系统主机的理想选择。它支持VT100、VT102、VT220和ANSI终端仿真，包含基于文件的脚本和简单易用的工具条等。 <br />安装和破解方法：<br />从官方下载安装 6.7.3 版本的SecureCRT并安装。(直接next就ok，不多说）<br />破解：<br />A：在打补丁前需要手动在终端执行以下命令： sudo chmod -R 777 /Applications/SecureCRT.app/Contents/MacOS<br />B：点击"select Application"选择已经安装好的SecureCRT.app或者直接拖拽进Patch程序等待Patch完成。<br />C：使用如下的注册信息手工注册：<br />Name:suddy<br />Company:suddy<br />Serial:03-67-009054<br />LicenseKey:ACUYJV Q1V2QU 1YWRCN NBYCYK AAXBZT CMJS8Z KBFYR7 QXJE45<br />Date:11-19-2011<br /><br />附<br /><form class="mt-enclosure mt-enclosure-file" style="display: inline;" contenteditable="false"><a href="http://www.dbasky.net/%C2%A0SecureCRT/scrt-6.7.3-292.osx_x86.dmg">scrt-6.7.3-292.osx_x86.dmg</a></form><br /> <div><br /><form class="mt-enclosure mt-enclosure-file" style="display: inline;" contenteditable="false"><a href="http://www.dbasky.net/patch/SecureCRT.6.7.3.patch.app.zip">SecureCRT.6.7.3.patch.app.zip</a></form><br /></div><div><br /></div> ]]>
        
    </content>
</entry>

<entry>
    <title>让苹果 iTunes 在 Dock 栏图标上方自动显示当前歌曲名和歌手名的方法</title>
    <link rel="alternate" type="text/html" href="http://www.dbasky.net/archives/2012/03/-itunes-dock.html" />
    <id>tag:www.dbasky.net,2012://1.195</id>

    <published>2012-03-01T02:22:34Z</published>
    <updated>2012-03-01T02:37:16Z</updated>

    <summary><![CDATA[&nbsp; &nbsp; &nbsp; &nbsp;让苹果 iTunes 每次换到新歌，就弹出一个气泡，第一行显示歌手名，第二行显示歌曲名。几秒钟后气泡消失，不遮挡视线.实现方法很简单：打开终端（找不到的，点击 Mac 屏幕右上角放大镜，搜索 "终端"），粘入下面这行命令，回车即可。defaults write com.apple.dock itunes-notifications -bool TRUE;killall Dock&nbsp;&nbsp;&nbsp;&nbsp;想去掉这一 iTunes 提醒功能的话，在终端里输入下面这行命令后回车即可。defaults delete com.apple.dock itunes-notifications&nbsp;&nbsp;&nbsp;&nbsp;另外，如果你用此前我推荐的豆瓣电台客户端 diumoo&nbsp;并勾选了 "模拟 iTunes 歌曲信息广播" 的话，苹果 iTunes 图标上方也会自动显示豆瓣电台播放的歌曲名。...]]></summary>
    <author>
        <name>Mike.Xu</name>
        <uri>http://www.dbasky.net</uri>
    </author>
    
        <category term="Mac" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="苹果" label="苹果" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="豆瓣电台客户端" label="豆瓣电台客户端" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="itunes" label="iTunes" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mac技巧" label="Mac技巧" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.dbasky.net/">
        <![CDATA[<span class="Apple-style-span" style="border-collapse: collapse; font-family: Arial; font-size: 14px; line-height: 26px; ">&nbsp; &nbsp; &nbsp; &nbsp;让苹果 iTunes 每次换到新歌，就弹出一个气泡，第一行显示歌手名，第二行显示歌曲名。几秒钟后气泡消失，不遮挡视线.</span><div><span class="Apple-style-span" style="border-collapse: collapse; font-family: Arial; font-size: 14px; line-height: 26px; ">实现方法很简单：打开终端（找不到的，点击 Mac 屏幕右上角放大镜，搜索 "终端"），粘入下面这行命令，回车即可。<br style="outline-style: none; outline-width: initial; outline-color: initial; " />defaults write com.apple.dock itunes-notifications -bool TRUE;killall Dock<br style="outline-style: none; outline-width: initial; outline-color: initial; " />&nbsp;&nbsp;&nbsp;&nbsp;想去掉这一 iTunes 提醒功能的话，在终端里输入下面这行命令后回车即可。<br style="outline-style: none; outline-width: initial; outline-color: initial; " />defaults delete com.apple.dock itunes-notifications<br style="outline-style: none; outline-width: initial; outline-color: initial; " />&nbsp;&nbsp;&nbsp;&nbsp;另外，如果你用此前我推荐的<u style="outline-style: none; outline-width: initial; outline-color: initial; "><a href="www.dbasky.net" target="_blank" style="outline-style: none; outline-width: initial; outline-color: initial; text-decoration: underline; color: rgb(1, 76, 144); "><span style="outline-style: none; outline-width: initial; outline-color: initial; color: rgb(0, 0, 255); ">豆瓣电台客户端 diumoo</span></a></u>&nbsp;并勾选了 "模拟 iTunes 歌曲信息广播" 的话，苹果 iTunes 图标上方也会自动显示豆瓣电台播放的歌曲名。</span></div>]]>
        
    </content>
</entry>

<entry>
    <title>新春快乐</title>
    <link rel="alternate" type="text/html" href="http://www.dbasky.net/archives/2012/01/post-14.html" />
    <id>tag:www.dbasky.net,2012://1.188</id>

    <published>2012-01-20T03:11:34Z</published>
    <updated>2012-01-20T03:26:26Z</updated>

    <summary>中国传统的新年马上到来，祝所有朋友新春快乐，合家团圆。祝爸妈身体健康。祝自己在2012年心想事成，一切顺利。...</summary>
    <author>
        <name>Mike.Xu</name>
        <uri>http://www.dbasky.net</uri>
    </author>
    
        <category term="MyLife" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="新春祝福，2012，龙年" label="新春祝福，2012，龙年" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.dbasky.net/">
        <![CDATA[<b><font style="font-size: 1em;">中国传统的新年马上到来，<br />祝所有朋友新春快乐，合家团圆。<br />祝爸妈身体健康。<br />祝自己在2012年心想事成，一切顺利。</font></b><br /><br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="64543660201201142158143879249259506_003.jpg" src="http://www.dbasky.net/64543660201201142158143879249259506_003.jpg" class="mt-image-none" style="" width="700" height="451" /></span><br /><div><br /><br /></div>]]>
        
    </content>
</entry>

<entry>
    <title>Mac常用快捷键</title>
    <link rel="alternate" type="text/html" href="http://www.dbasky.net/archives/2012/01/mac.html" />
    <id>tag:www.dbasky.net,2012://1.190</id>

    <published>2012-01-05T03:52:55Z</published>
    <updated>2012-01-20T04:01:18Z</updated>

    <summary>刚从windows的阵营转到Mac的阵营，记录下刚开始接触神秘的Mac系统常用的快捷键启动计算机时的巧妙使用：1、在计算机启动时，同时按住&quot;option&quot;键可以重建桌面，此操作应每月做一次。2、在计算机启动时，按住&quot;shift&quot;键可以关闭所有系统功能扩展。3、在计算机启动时，按住鼠标可以推出软盘以避免将其用作启动磁盘。4、在计算机启动时，同时按住&quot;shift&quot;+&quot;option&quot;+&quot;delete&quot;键可以忽略启动磁盘，并自动寻找另一个介质做启动盘。5、在计算机启动时，同时按住&quot;option&quot;+&quot;P&quot;+&quot;R&quot;键可以重设&quot;选配器&quot;和&quot;控制板&quot;，清除PRAM。这种方法对于使用时间较长（半年以上）且系统有问题的计算机会有意想不到的效果。6、同时按住&quot;shift&quot;+&quot;option&quot; +&quot;电源键&quot;可以重新启动或关闭计算机﹔7、在鼠标不能动时，同时按住&quot;control&quot;+&quot;电源键&quot;可以强行启动计算机。使用显示图像或活页夹工作时的巧妙使用：1、鼠标连按图像或活页夹可以打开图像或活页夹﹔点按桌面上的图像能使桌面成为现用(不包括所选图像)。2、用鼠标拖曳图像或活页夹可以移动到所需位置。3、按住&quot;option&quot;键+鼠标拖曳图像或活页夹可以将图像或活页夹拷贝到其它活页夹中，而不是移动。4、在拖曳图像或活页夹时将图像或活页夹拖至窗口上端的菜单栏可以取消对它的移动或拷贝。5、按住&quot;shift&quot;键+整理窗口可以整理所选图像。6、按住&quot;return&quot;或&quot;enter&quot;键可以编辑所选图像或活页夹的名称。7、按任一字母键将选择以该字母开头而命名的图像或活页夹。按&quot;tab&quot;键将按字母顺序选择下一个图像或活页夹。8、同时按住&quot;shift&quot;+&quot;tab&quot;键将按字母顺序选择上一个图像或活页夹(注：中文名称以第一个字的汉语拼音的第一个英文字母为准)。9、按&quot;→&quot;或&quot;←&quot;键将选择左面或右面的像或活页夹﹔按&quot;↑&quot;或&quot;↓&quot;键将选择上面或下面的图像或活页夹。10、按&quot;shift&quot;+点按所需图像或活页夹可以选择多个图像或活页夹，或用鼠标拖曳到封入所需图像或活页夹而选择多个图像或活页夹。使用文件对话框时的巧妙使用：1、打开对话框时(如使用&quot;文件&quot;菜单下的&quot;打开&quot;或&quot;存储&quot;等命令时同时)按&quot;.&quot;或按&quot;esc&quot;键可以取消该命令。2、同时按&quot;苹果键&quot;+&quot;↑&quot;或点按桌面图像可以上移一层。按&quot;↑&quot;或&quot;↓&quot;键可以选择上一个或下一个项目。3、按&quot;option&quot;键+打开替身可以显示而不是打开替身的原文件。4、&quot;tab&quot;键使目录或名称框成为现用。5、按&quot;苹果键&quot;+&quot;N&quot;键可以建立新活页夹。按&quot;return&quot;或&quot;enter&quot;或&quot;O&quot;键可以打开所选项目。使用窗口工作时的巧妙使用：1、按&quot;苹果键&quot;+&quot;W&quot;键或点按窗口关闭格(位于窗口左上角)可以关闭当前活页夹窗口。2、同时按&quot;option&quot;+&quot;苹果键&quot;+&quot;W&quot;键或&quot;option&quot;+点按窗口关闭格可以关闭所有活页夹窗口。3、按&quot;苹果键&quot;+拖曳窗口可以移动该窗口，但不使其成为现用窗口。4、连续点按两下活页夹的标题行即隐藏显示该活页夹，再连续点按两下即恢复显示。5、按&quot;option&quot;键点按缩放格(位于窗口右上角)可以将窗口放大至它所在的屏幕大小。6、按&quot;option&quot;键+打开或&quot;option&quot;键+连按图像可以在打开该图像后自动关闭该窗口。（待续）...</summary>
    <author>
        <name>Mike.Xu</name>
        <uri>http://www.dbasky.net</uri>
    </author>
    
        <category term="Mac" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="mac常用快捷键" label="Mac常用快捷键" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.dbasky.net/">
        <![CDATA[<b>刚从windows的阵营转到Mac的阵营，记录下刚开始接触神秘的Mac系统常用的快捷键</b><br /><br />启动计算机时的巧妙使用：<br />1、在计算机启动时，同时按住"option"键可以重建桌面，此操作应每月做一次。<br />2、在计算机启动时，按住"shift"键可以关闭所有系统功能扩展。<br />3、在计算机启动时，按住鼠标可以推出软盘以避免将其用作启动磁盘。<br />4、在计算机启动时，同时按住"shift"+"option"+"delete"键可以忽略启动磁盘，并自动寻找另一个介质做启动盘。<br />5、在计算机启动时，同时按住"option"+"P"+"R"键可以重设"选配器"和"控制板"，清除PRAM。这种方法对于使用时间较长（半年以上）且系统有问题的计算机会有意想不到的效果。<br />6、同时按住"shift"+"option" +"电源键"可以重新启动或关闭计算机﹔<br />7、在鼠标不能动时，同时按住"control"+"电源键"可以强行启动计算机。使用显示图像或活页夹工作时的巧妙使用：<br />1、鼠标连按图像或活页夹可以打开图像或活页夹﹔点按桌面上的图像能使桌面成为现用(不包括所选图像)。<br />2、用鼠标拖曳图像或活页夹可以移动到所需位置。<br />3、按住"option"键+鼠标拖曳图像或活页夹可以将图像或活页夹拷贝到其它活页夹中，而不是移动。<br />4、在拖曳图像或活页夹时将图像或活页夹拖至窗口上端的菜单栏可以取消对它的移动或拷贝。<br />5、按住"shift"键+整理窗口可以整理所选图像。<br />6、按住"return"或"enter"键可以编辑所选图像或活页夹的名称。<br />7、按任一字母键将选择以该字母开头而命名的图像或活页夹。按"tab"键将按字母顺序选择下一个图像或活页夹。<br />8、同时按住"shift"+"tab"键将按字母顺序选择上一个图像或活页夹(注：中文名称以第一个字的汉语拼音的第一个英文字母为准)。<br />9、按"→"或"←"键将选择左面或右面的像或活页夹﹔按"↑"或"↓"键将选择上面或下面的图像或活页夹。<br />10、按"shift"+点按所需图像或活页夹可以选择多个图像或活页夹，或用鼠标拖曳到封入所需图像或活页夹而选择多个图像或活页夹。使用文件对话框时的巧妙使用：<br />1、打开对话框时(如使用"文件"菜单下的"打开"或"存储"等命令时同时)按"."或<br />按"esc"键可以取消该命令。<br />2、同时按"苹果键"+"↑"或点按桌面图像可以上移一层。按"↑"或"↓"键可以选择上一个或下一个项目。<br />3、按"option"键+打开替身可以显示而不是打开替身的原文件。<br />4、"tab"键使目录或名称框成为现用。<br />5、按"苹果键"+"N"键可以建立新活页夹。按"return"或"enter"或"O"键可以打开所选项目。<br />使用窗口工作时的巧妙使用：<br />1、按"苹果键"+"W"键或点按窗口关闭格(位于窗口左上角)可以关闭当前活页夹窗口。<br />2、同时按"option"+"苹果键"+"W"键或"option"+点按窗口关闭格可以关闭所有活页夹窗口。<br />3、按"苹果键"+拖曳窗口可以移动该窗口，但不使其成为现用窗口。<br />4、连续点按两下活页夹的标题行即隐藏显示该活页夹，再连续点按两下即恢复显示。<br />5、按"option"键点按缩放格(位于窗口右上角)可以将窗口放大至它所在的屏幕大小。<br />6、按"option"键+打开或"option"键+连按图像可以在打开该图像后自动关闭该窗口。（待续）<br /> ]]>
        
    </content>
</entry>

<entry>
    <title>新的GOOGLE+ hostlist</title>
    <link rel="alternate" type="text/html" href="http://www.dbasky.net/archives/2011/12/google-hostlist.html" />
    <id>tag:www.dbasky.net,2011://1.189</id>

    <published>2011-12-27T03:26:53Z</published>
    <updated>2012-01-20T03:27:53Z</updated>

    <summary>早上一起来打开电脑发现G+打不开了，试了Google Talk也打不开。这叫人这么生活啊！google产品在中国和美国一个很大的不同，就是GOOGLE的大部分产品在中国陷于完全瘫痪状态。早上开电脑，GMAIL打不开了，GOOGLE+，GOOGLE READER打不开。没有办法只能重新寻找新的hostlist。附上新的hostlist:203.208.46.180 plus.google.com203.208.46.180 lh6.googleusercontent.com203.208.46.180 lh5.googleusercontent.com203.208.46.180 lh3.googleusercontent.com203.208.46.180 lh2.googleusercontent.com203.208.46.180 lh1.googleusercontent.com203.208.46.180 lh4.googleusercontent.com203.208.46.180 webcache.googleusercontent.com203.208.46.180 mail.google.com203.208.46.180 picasaweb.google.com203.208.46.180 www.googlelabs.com203.208.46.180 docs.google.com203.208.46.180 plus.google.com.hk203.208.46.180 profiles.google.com203.208.46.180 services.google.com203.208.46.180 clients4.google.com203.208.46.180 clients2.google.com203.208.46.180 chrome.google.com203.208.46.180 tools.google.com...</summary>
    <author>
        <name>Mike.Xu</name>
        <uri>http://www.dbasky.net</uri>
    </author>
    
        <category term="NETWORK" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="google" label="GOOGLE+" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.dbasky.net/">
        <![CDATA[早上一起来打开电脑发现G+打不开了，试了Google Talk也打不开。这叫人这么生活啊！google产品在中国和美国一个很大的不同，就是GOOGLE的大部分产品在中国陷于完全瘫痪状态。早上开电脑，GMAIL打不开了，GOOGLE+，GOOGLE READER打不开。没有办法只能重新寻找新的hostlist。<br /><br />附上新的hostlist:<br /><br />203.208.46.180 plus.google.com<br />203.208.46.180 lh6.googleusercontent.com<br />203.208.46.180 lh5.googleusercontent.com<br />203.208.46.180 lh3.googleusercontent.com<br />203.208.46.180 lh2.googleusercontent.com<br />203.208.46.180 lh1.googleusercontent.com<br />203.208.46.180 lh4.googleusercontent.com<br />203.208.46.180 webcache.googleusercontent.com<br />203.208.46.180 mail.google.com<br />203.208.46.180 picasaweb.google.com<br />203.208.46.180 www.googlelabs.com<br />203.208.46.180 docs.google.com<br />203.208.46.180 plus.google.com.hk<br />203.208.46.180 profiles.google.com<br />203.208.46.180 services.google.com<br />203.208.46.180 clients4.google.com<br />203.208.46.180 clients2.google.com<br />203.208.46.180 chrome.google.com<br />203.208.46.180 tools.google.com<br /><br /> ]]>
        
    </content>
</entry>

<entry>
    <title>TimesTen 连接异常</title>
    <link rel="alternate" type="text/html" href="http://www.dbasky.net/archives/2011/06/timesten.html" />
    <id>tag:www.dbasky.net,2011://1.179</id>

    <published>2011-06-08T07:06:46Z</published>
    <updated>2011-06-08T07:16:48Z</updated>

    <summary><![CDATA[在64位的linux系统下通过java连接TimesTen，出现如下错误：&nbsp;Problems with loading native library/missing methods: no ttJdbcCS in java.library.path&nbsp; 解决办法： 1. 添加$TT_HOME/lib到LD_LIBRARY_PATH(Linux)/&nbsp;&nbsp; SHLIB_PATH (UNIX)例如：vi /etc/profileexport LD_LIBRARY_PATH=/opt/oracle/TimesTen/tt11/lib:$LD_LIBRARY_PATH2. 检查TimesTen $TT_HOME/lib权限3. 如果TimesTen运行在64位下，在启动参数上加上java -d64 ......]]></summary>
    <author>
        <name>Mike.Xu</name>
        <uri>http://www.dbasky.net</uri>
    </author>
    
        <category term="Web Server" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="timesten，linux64位，nottjdbccsinjavalibrarypath，timestenjava" label="TimesTen，linux 64位，no ttJdbcCS in java.library.path，TimesTen java" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.dbasky.net/">
        <![CDATA[在64位的linux系统下通过java连接TimesTen，出现如下错误：<br /><br />&nbsp;Problems with loading native library/missing methods: no ttJdbcCS in java.library.path<br /><br />&nbsp; 解决办法：<br />
<div class="entry-content">
<div id="msgcns!332A648BD58B9C7D!610" class="bvMsg"><p>1. 添加$TT_HOME/lib到LD_LIBRARY_PATH(Linux)/<br /></p><p>&nbsp;&nbsp; SHLIB_PATH (UNIX)</p><p>例如：</p><p>vi /etc/profile<br /></p><p>export LD_LIBRARY_PATH=/opt/oracle/TimesTen/tt11/lib:$LD_LIBRARY_PATH<br /></p><p>2. 
检查TimesTen $TT_HOME/lib权限<br /></p><p>3. 
如果TimesTen运行在64位下，在启动参数上加上java -d64 ...</p></div></div><br />]]>
        
    </content>
</entry>

<entry>
    <title>谈谈ORACLE内核参数</title>
    <link rel="alternate" type="text/html" href="http://www.dbasky.net/archives/2011/05/oracle-6.html" />
    <id>tag:www.dbasky.net,2011://1.178</id>

    <published>2011-05-20T05:42:57Z</published>
    <updated>2011-05-20T05:46:58Z</updated>

    <summary>以服务器内存为4G 修改/etc/sysctl.conf文件 (ROOT账户) kernel.shmmax = 2147483648 //公式:2G*1024*1024*1024=2147483648(字节) //表示最大共享内存，如果小的话可以按实际情况而定，一般为物理内存的一半（单位:字节） kernel.shmmni=4096 //表示最小共享内存固定4096KB（由于32位操作系统默认一页为4K） kernel.shmall=1048576 //公式:4G*1024*1024/4K = 1048576(页) //表示所有内存大小（单位：页） kernel.sem=250 32000 100 128 //4个参数依次是SEMMSL：每个用户拥有信号量最大数，SEMMNS：系统信号量最大数，SEMOPM：每次semopm系统调用操作数，SEMMNI：系统辛苦量集数最大数。这4个参数为固定内容大小 fs.file-max=65536 //file-max固定大小65536 net.ipv4.ip_local_port_range=1024 65000 //ip_local_port_range表示端口的范围，为指定的内容 以上步骤做完执行 /sbin/sysctl -p 使内核生效 验证参数（root账户执行）： #/sbin/sysctl -a | grep shm #/sbin/sysctl -a | grep sem...</summary>
    <author>
        <name>Mike.Xu</name>
        <uri>http://www.dbasky.net</uri>
    </author>
    
        <category term="Database" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Oracle 10g/11g" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="oracle，oracle内核参数，linuxsysctlconf" label="oracle，oracle 内核参数，linux sysctl.conf" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.dbasky.net/">
        <![CDATA[<p>以服务器内存为4G <br />修改<font style="LINE-HEIGHT: 1.5em" size="3" color="#0000ff" face="">/etc/sysctl.conf</font><wbr>文件 (ROOT账户) <br /><br /><font style="LINE-HEIGHT: 1.5em" size="3" color="#0000ff" face="">kernel.shmmax = 
2147483648</font><wbr> <br />//公式:2G*1024*1024*1024=2147483648(字节) 
<br />//表示最大共享内存，如果小的话可以按实际情况而定，一般为物理内存的一半（单位:字节） <br /><br /><font style="LINE-HEIGHT: 1.5em" size="3" color="#0000ff" face="">kernel.shmmni=4096</font><wbr> <br />//表示最小共享内存固定4096KB（由于32位操作系统默认一页为4K） 
<br /><br /><font style="LINE-HEIGHT: 1.5em" size="3" color="#0000ff" face="">kernel.shmall=1048576</font><wbr> <br />//公式:4G*1024*1024/4K = 1048576(页) 
<br />//表示所有内存大小（单位：页） <br /><br /><font style="LINE-HEIGHT: 1.5em" size="3" color="#0000ff" face="">kernel.sem=250 32000 100 128</font><wbr> 
<br />//4个参数依次是SEMMSL：每个用户拥有信号量最大数，SEMMNS：系统信号量最大数，SEMOPM：每次semopm系统调用操作数，SEMMNI：系统辛苦量集数最大数。这4个参数为固定内容大小 
<br /><br /><font style="LINE-HEIGHT: 1.5em" size="3" color="#0000ff" face="">fs.file-max=65536</font><wbr> <br />//file-max固定大小65536 <br /><br /><font style="LINE-HEIGHT: 1.5em" size="3" color="#0000ff" face="">net.ipv4.ip_local_port_range=1024 65000</font><wbr> 
<br />//ip_local_port_range表示端口的范围，为指定的内容 <br /><br />以上步骤做完执行 <font style="LINE-HEIGHT: 1.5em" size="3" color="#0000ff" face="">/sbin/sysctl -p 
</font><wbr><font style="LINE-HEIGHT: 1.5em" size="3" color="#000000" face="">使内核生效</font><wbr> <br /><br />验证参数（root账户执行）： <br /><font style="LINE-HEIGHT: 1.5em" size="3" color="#000000" face="">#</font><wbr><font style="LINE-HEIGHT: 1.5em" size="3" color="#0000ff" face="">/sbin/sysctl -a | grep 
shm</font><wbr> <br /><font style="line-height: 1.5em;" size="3" color="#0000ff" face=""><font style="LINE-HEIGHT: 1.5em" size="3" color="#000000" face="">#</font><wbr>/sbin/sysctl -a | grep sem <br /><font style="LINE-HEIGHT: 1.5em" size="3" color="#000000" face="">#</font><wbr>/sbin/sysctl -a | grep file-max <br /><font style="LINE-HEIGHT: 1.5em" size="3" color="#000000" face="">#</font><wbr>/sbin/sysctl -a | grep ip_local_port_range <br /></font></p><p><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 9pt">1</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 9pt">、与</span><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 9pt">oracle</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 9pt">相关的信号量和共享内存段参数</span> </p>
<p>
</p><p><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 9pt">&nbsp;&nbsp; 
</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 9pt">一般</span><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 9pt">unix</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 9pt">系统中和信号量相关的是三个参数</span><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 9pt">SEMMNI SEMMSL 
SEMMNS</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 9pt">。他们相互关联决定系统可以分配的信号量。</span><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 9pt">Oracle</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 9pt">使用信号量完成内部进程之间的通信。</span> 
</p>
<p>
</p><p><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 9pt">&nbsp;&nbsp; 
</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 9pt">关于共享内存段使用</span><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 9pt">shmmx</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 9pt">参数进行总体控制。它指定了系统可以分配的共享内存段最大大小，实际并没有分配那么多只是给出一个可以使用的最大限制。</span> 
</p>
<p>
</p><p><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 10pt">&nbsp;&nbsp; 
</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 10pt">对于类核参数的修改必须要重新启动系统之后才会生效。</span><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 10pt"><br />2</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 10pt">、出现</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 9pt">信号量和共享内存段相关问题的情况</span> 
</p>
<p>
</p><p><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 9pt">&nbsp;&nbsp; 
oracle</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 9pt">只有在</span><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 9pt">startup 
nomount</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 9pt">的时候才会请求</span><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 9pt">os</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 9pt">的这些资源，用于建立</span><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 9pt">SGA</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 9pt">和启动后台进程。</span> </p>
<p>
</p><p><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 9pt">&nbsp;&nbsp; 
</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 9pt">有些情况下因为</span><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 9pt">oracle</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 9pt">崩溃之后</span><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 9pt">os</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 9pt">没有清除</span><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 9pt">oracle</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 9pt">分配的</span><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 9pt">SGA</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 9pt">，也可能造成共享内存段不足，需要人工清除。</span> 
</p>
<p>
</p><p><span style="FONT-FAMILY: Verdana; black: ">3</span><span style="FONT-FAMILY: 宋体; black: ">、如何解决相关的问题</span> </p>
<p>
</p><p><span style="FONT-FAMILY: Verdana; black: ">&nbsp;&nbsp; </span><span style="FONT-FAMILY: 宋体; black: ">你可以简单的修改</span><span style="FONT-FAMILY: Verdana; black: ">init</span><span style="FONT-FAMILY: 宋体; black: ">参数减少</span><span style="FONT-FAMILY: Verdana; black: ">oracle</span><span style="FONT-FAMILY: 宋体; black: ">对共享内存段和信号量的需求。</span> </p>
<p>
</p><p><span style="FONT-FAMILY: Verdana; black: ">&nbsp;&nbsp; </span><span style="FONT-FAMILY: 宋体; black: ">对于控制信号量的三个参数</span><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 9pt">SEMMNI SEMMSL 
SEMMNS</span> <span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 10pt">。最终可以使用的信号量由下面公式</span> 
<span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 10pt">提取</span><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 10pt"> (semmsl * semmni) 
</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 10pt">或者</span><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 10pt"> semmns</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 10pt">中最小的值。</span> </p>
<p>
</p><p style="TEXT-INDENT: -20pt; 0cm: "><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp; </span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 10pt">例如在</span><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 10pt">linux</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 10pt">下</span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 9pt">. 
进入目录/proc/sys/kernel；用cat命令或more命令查看semaphore当前参数的值： <br />cat sem 
<br />命令运行后将会出现如下的结果： <br />250 32000 32 128 <br />其中, 250 
是参数SEMMSL的值,32000是参数SEMMNS的值, 
32是参数SEMOPM的值，而128则是参数SEMMNI的值。250*128=32000</span> </p>
<p>
</p><p style="TEXT-INDENT: 20pt; 0cm: "><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 10pt">对于</span><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 10pt">oracle7</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 10pt">需要信号量的设置等于</span><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 10pt">init</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 10pt">中</span><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 10pt">processes</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 10pt">的设置。对于</span><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 10pt">8i 9i</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 10pt">需要等于</span><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 10pt">processes*2</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 10pt">。</span> </p>
<p>
</p><p style="TEXT-INDENT: 20pt; 0cm: "><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 10pt">对于信号量参数的设定一定要小心，因为不正确的设置可能会让系统使用默认值。这个值一般比</span><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 10pt">oracle</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 10pt">系统要求的低。在</span><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 10pt">HP unix</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 10pt">上遇到过这样的问题，当时在参数配置的时候指定两个不同的</span><span style="FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 10pt">sem-mni</span><span style="FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 10pt">造成系统使用默认的设置。</span> </p>
<p>
</p><p style="TEXT-INDENT: 21pt; 0cm: "><span style="FONT-FAMILY: 宋体; black: ">对于共享内存段，系统的设置至少要等于</span><span style="FONT-FAMILY: Verdana; black: ">SGA</span><span style="FONT-FAMILY: 宋体; black: ">的大小。</span> </p> ]]>
        
    </content>
</entry>

<entry>
    <title>mysql的一个拒绝访问错误的解决</title>
    <link rel="alternate" type="text/html" href="http://www.dbasky.net/archives/2011/03/mysql-6.html" />
    <id>tag:www.dbasky.net,2011://1.177</id>

    <published>2011-03-21T09:42:50Z</published>
    <updated>2011-03-21T09:44:47Z</updated>

    <summary><![CDATA[&nbsp;&nbsp;&nbsp; 最近有几个人问我相同问题,安装了mysql，然后用 telnet　ip　3306,端口后报Host '192.168.1.163' is not allowed to connect to this MySQL serverConnection closed by foreign ,虽然自己以前也碰到过，后来解决了,但是觉得还是值得贴出来,估计会有很多人同样碰到过,解决办法:mysql&gt;UPDATE mysql.user SET Host='%' WHERE Host='localhost';mysql&gt;GRANT ALL PRIVILEGES ON *.* TO root@"%" ;mysql&gt;FLUSH PRIVILEGES;...]]></summary>
    <author>
        <name>Mike.Xu</name>
        <uri>http://www.dbasky.net</uri>
    </author>
    
        <category term="Database" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Mysql" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="mysql" label="mysql" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mysql权限，mysql连接，mysqltelnet3306" label="mysql 权限，mysql 连接，mysql telnet 3306" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.dbasky.net/">
        <![CDATA[&nbsp;&nbsp;&nbsp; 最近有几个人问我相同问题,安装了mysql，然后用 telnet　ip　3306,端口后报<br />Host '192.168.1.163' is not allowed to connect to this MySQL serverConnection closed by foreign ,虽然自己以前也碰到过，后来解决了,但是觉得还是值得贴出来,估计会有很多人同样碰到过,<br />解决办法:<br />mysql&gt;UPDATE mysql.user SET Host='%' WHERE Host='localhost';<br />mysql&gt;GRANT ALL PRIVILEGES ON *.* TO root@"%" ;<br />mysql&gt;FLUSH PRIVILEGES; ]]>
        
    </content>
</entry>

<entry>
    <title>Mysql 安全</title>
    <link rel="alternate" type="text/html" href="http://www.dbasky.net/archives/2011/03/mysql-5.html" />
    <id>tag:www.dbasky.net,2011://1.176</id>

    <published>2011-03-09T08:25:36Z</published>
    <updated>2011-03-09T08:27:13Z</updated>

    <summary><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; MySQL 是一个真正的多用户、多线程SQL数据库服务器，它是一个客户机/服务器结构的实现。MySQL是现在流行的关系数据库中其中的一种，相比其它的数据库管理系统（DBMS）来说，MySQL具有小巧、功能齐全、查询迅捷等优点。MySQL 主要目标是快速、健壮和易用。目前，在大中型企业中已经得到了较好的运用，但是由于它是多平台的数据库，不可避免的默认配置也是适合多种情况的需求，因此需要用户需要在自定义的环境下对MySQL的使用进行加固。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 假如软件本身有严重安全问题，即使安全配置做的更好，也没有用。因此，要首先了解MySQL的版本。关于MySQL的版本，在MySQL官方文档中是这么描述的：&nbsp;&nbsp;&nbsp;&nbsp;MySQL 5.2是最新开发的发布系列，是将执行新功能的系列。不久的将来可以使用Alpha发行，以便感兴趣的用户进行广泛的测试。&nbsp;&nbsp;&nbsp;&nbsp;MySQL 5.1是当前稳定(产品质量)发布系列。只针对漏洞修复重新发布；没有增加会影响稳定性的新功能。&nbsp;&nbsp;&nbsp;&nbsp;MySQL 5.0是前一稳定(产品质量)发布系列。只针对严重漏洞修复和安全修复重新发布；没有增加会影响该系列的重要功能。&nbsp;&nbsp;&nbsp;&nbsp;MySQL 4.0和3.23是旧的稳定(产品质量)发布系列。该版本不再使用，新的发布只用来修复特别严重的漏洞（以前的安全问题）。Mysql开发组织不认为有完全的冻结版，因为任何版本均需要对漏洞进行修复和其它修复。对于"某种程度的冻结"，他们是指他们可以在产品发布中增加一些不会影响当前工作的小东西。当然，前一系列的相关漏洞修复会移植到后面的系列。根据官方的建议，至目前为止，推荐使用目前的稳定版本MySQL 5.1。如果你正在运行一个老的系统并且想要升级，但是又不想冒险进行非无缝升级，应该升级到最新版本中你正使用的相同的发布系列（只有版本号的最后部分比你使用的新，例如5.0和5.1为同一系列）。一、MySQL安装MySQL可以在redhat环境下进行RPM安装和debian下apt安装，但是最新的包一般都是源码的形式，因此这里选择源码编译安装的方式。首先登陆官方网站http://www.mysql.com，下载最新的released版本。# tar zxf mysql-5.1.22-rc-linux-i686-glibc23.tar.gz为mysql的运行建立mysql用户和mysql用户组#groupadd mysql# useradd -g mysql mysql# ./configure --prefix=/usr/local/mysql#make#make install# cp support-files/my-medium.cnf /etc/my.cf# bin/mysql_install_db --user=mysql //用mysql生成初始数据库，出现类似thank for using mysql 证明初始化数据库成功。# chown -R root .&nbsp;&nbsp;//当前目录给root# chown -R mysql var //var给mysql，这个很重要，也是安全起见#...]]></summary>
    <author>
        <name>Mike.Xu</name>
        <uri>http://www.dbasky.net</uri>
    </author>
    
        <category term="Database" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Mysql" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="linuxmysql，mysql安全，mysql配置" label="linux mysql，mysql 安全，mysql 配置" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.dbasky.net/">
        <![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; MySQL 是一个真正的多用户、多线程<a href="editor-content.html?cs=utf-8" name="entrymore"></a>SQL数据库服务器，它是一个客户机/服务器结构的实现。MySQL是现在流行的关系数据库中其中的一种，相比其它的数据库管理系统（DBMS）来说，MySQL具有小巧、功能齐全、查询迅捷等优点。MySQL 
主要目标是快速、健壮和易用。目前，在大中型企业中已经得到了较好的运用，但是由于它是多平台的数据库，不可避免的默认配置也是适合多种情况的需求，因此需要用户需要在自定义的环境下对MySQL的使用进行加固。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 假如软件本身有严重安全问题，即使安全配置做的更好，也没有用。因此，要首先了解MySQL的版本。关于MySQL的版本，在MySQL官方文档中是这么描述的：<br />&nbsp;&nbsp;&nbsp;&nbsp;MySQL 
5.2是最新开发的发布系列，是将执行新功能的系列。不久的将来可以使用Alpha发行，以便感兴趣的用户进行广泛的测试。<br />&nbsp;&nbsp;&nbsp;&nbsp;MySQL 
5.1是当前稳定(产品质量)发布系列。只针对漏洞修复重新发布；没有增加会影响稳定性的新功能。<br />&nbsp;&nbsp;&nbsp;&nbsp;MySQL 
5.0是前一稳定(产品质量)发布系列。只针对严重漏洞修复和安全修复重新发布；没有增加会影响该系列的重要功能。<br />&nbsp;&nbsp;&nbsp;&nbsp;MySQL 
4.0和3.23是旧的稳定(产品质量)发布系列。该版本不再使用，新的发布只用来修复特别严重的漏洞（以前的安全问题）。<br />Mysql开发组织不认为有完全的冻结版，因为任何版本均需要对漏洞进行修复和其它修复。对于"某种程度的冻结"，他们是指他们可以在产品发布中增加一些不会影响当前工作的小东西。当然，前一系列的相关漏洞修复会移植到后面的系列。<br /><br />根据官方的建议，至目前为止，推荐使用目前的稳定版本MySQL 
5.1。如果你正在运行一个老的系统并且想要升级，但是又不想冒险进行非无缝升级，应该升级到最新版本中你正使用的相同的发布系列（只有版本号的最后部分比你使用的新，例如5.0和5.1为同一系列）。<br /><br /><span style="color: rgb(255, 0, 0);"><strong>一、MySQL安装</strong></span><br /><br />MySQL可以在redhat环境下进行RPM安装和debian下apt安装，但是最新的包一般都是源码的形式，因此这里选择源码编译安装的方式。<br />首先登陆官方网站http://www.mysql.com，下载最新的released版本。<br /># 
tar zxf 
mysql-5.1.22-rc-linux-i686-glibc23.tar.gz<br />为mysql的运行建立mysql用户和mysql用户组<br />#groupadd 
mysql<br /># useradd -g mysql mysql<br /># ./configure 
--prefix=/usr/local/mysql<br />#make<br />#make install<br /># cp 
support-files/my-medium.cnf /etc/my.cf<br /># bin/mysql_install_db --user=mysql 
//用mysql生成初始数据库，出现类似thank for using mysql 证明初始化数据库成功。<br /># chown -R root 
.&nbsp;&nbsp;//当前目录给root<br /># chown -R mysql var //var给mysql，这个很重要，也是安全起见<br /># chgrp -R 
mysql .<br /># bin/mysqld_safe --user=mysql &amp;<br />#bin/mysql -u 
root<br />此时安全完毕，但是最重要是对MySQL进行安全配置，检查你的系统，最基本要做到以下配置。<br /><br /><span style="color: rgb(255, 0, 0);"><strong>二、MySQL安全配置</strong></span><br /><br />数据库作为数据管理的平台，它的安全性首先由系统的内部安全和网络安全两部分来决定。对于系统管理员来说，首先要保证系统本身的安全，在安装MySQL数据库时，需要对基础环境进行较好的配置。<br /><br /><strong>1、修改root用户口令，删除空口令</strong><br />缺省安装的MySQL的root用户是空密码的，为了安全起见，必须修改为强密码，所谓的强密码，至少8位，由字母、数字和符号组成的不规律密码。使用MySQL自带的命令mysaladmin修改root密码，同时也可以登陆数据库，修改数据库mysql下的user表的字段内容，修改方法如下所示：<br /><br /># 
/usr/local/mysql/bin/mysqladmin -u root password "upassword" 
//使用mysqladmin<br />#mysql&gt; use mysql; <br />#mysql&gt; update user set 
password=password('upassword') where user='root'; <br />#mysql&gt; flush 
privileges; 
//强制刷新内存授权表，否则用的还是在内存缓冲的口令<br /><br /><strong>2、删除默认数据库和数据库用户</strong><br />一般情况下，MySQL数据库安装在本地，并且也只需要本地的php脚本对mysql进行读取，所以很多用户不需要，尤其是默认安装的用户。MySQL初始化后会自动生成空用户和test库，进行安装的测试，这会对数据库的安全构成威胁，有必要全部删除，最后的状态只保留单个root即可，当然以后根据需要增加用户和数据库。<br /><br />#mysql&gt; 
show databases;<br />#mysql&gt; drop database test; //删除数据库test<br />#use 
mysql;<br />#delete from db; //删除存放数据库的表信息，因为还没有数据库信息。<br />#mysql&gt; delete from 
user where not (user='root') ; // 删除初始非root的用户<br />#mysql&gt; delete from user 
where user='root' and password=''; //删除空密码的root，尽量重复操作<br />Query OK, 2 rows 
affected (0.00 sec)<br />#mysql&gt; flush privileges; 
//强制刷新内存授权表。<br /><br /><strong>3、改变默认mysql管理员帐号</strong><br />系统mysql的管理员名称是root，而一般情况下，数据库管理员都没进行修改，这一定程度上对系统用户穷举的恶意行为提供了便利，此时修改为复杂的用户名，请不要在设定为admin或者administraror的形式，因为它们也在易猜的用户字典中。<br /><br />mysql&gt; 
update user set user="newroot" where user="root"; //改成不易被猜测的用户名<br />mysql&gt; 
flush 
privileges;<br /><br /><strong>4、关于密码的管理</strong><br />密码是数据库安全管理的一个很重要因素，不要将纯文本密码保存到数据库中。如果你的计算机有安全危险，入侵者可以获得所有的密码并使用它们。相反，应使用MD5()、SHA1()或单向哈希函数。也不要从词典中选择密码，有专门的程序可以破解它们，请选用至少八位，由字母、数字和符号组成的强密码。在存取密码时，使用mysql的内置函数password（）的sql语句，对密码进行加密后存储。例如以下方式在users表中加入新用户。<br /><br />#mysql&gt; 
insert into users values 
(1,password(1234),'test');<br /><br /><strong>5、使用独立用户运行msyql</strong><br />绝对不要作为使用root用户运行MySQL服务器。这样做非常危险，因为任何具有FILE权限的用户能够用root创建文件(例如，~root/.bashrc)。mysqld拒绝使用root运行，除非使用--user=root选项明显指定。应该用普通非特权用户运行mysqld。正如前面的安装过程一样，为数据库建立独立的linux中的mysql账户，该账户用来只用于管理和运行MySQL。<br /><br />要想用其它Unix用户启动mysqld，，增加user选项指定/etc/my.cnf选项文件或服务器数据目录的my.cnf选项文件中的[mysqld]组的用户名。<br />#vi 
/etc/my.cnf<br />[mysqld]<br />user=mysql<br />该命令使服务器用指定的用户来启动，无论你手动启动或通过mysqld_safe或mysql.server启动，都能确保使用mysql的身份。也可以在启动数据库是，加上user参数。<br /><br /># 
/usr/local/mysql/bin/mysqld_safe --user=mysql 
&amp;<br />作为其它linux用户而不用root运行mysqld，你不需要更改user表中的root用户名，因为MySQL账户的用户名与linux账户的用户名无关。确保mysqld运行时，只使用对数据库目录具有读或写权限的linux用户来运行。<br /><br /><strong>6、禁止远程连接数据库</strong><br />在命令行netstat 
-ant下看到，默认的3306端口是打开的，此时打开了mysqld的网络监听，允许用户远程通过帐号密码连接数本地据库，默认情况是允许远程连接数据的。为了禁止该功能，启动skip-networking，不监听sql的任何TCP/IP的连接，切断远程访问的权利，保证安全性。假如需要远程管理数据库，可通过安装PhpMyadmin来实现。假如确实需要远程连接数据库，至少修改默认的监听端口，同时添加防火墙规则，只允许可信任的网络的mysql监听端口的数据通过。<br /><br /># 
vi /etc/my.cf<br />将#skip-networking注释去掉。<br /># /usr/local/mysql/bin/mysqladmin -u 
root -p shutdown //停止数据库<br />#/usr/local/mysql/bin/mysqld_safe --user=mysql &amp; 
//后台用mysql用户启动mysql<br /><br /><strong>7、限制连接用户的数量</strong><br />数据库的某用户多次远程连接，会导致性能的下降和影响其他用户的操作，有必要对其进行限制。可以通过限制单个账户允许的连接数量来实现，设置my.cnf文件的mysqld中的max_user_connections变量来完成。GRANT语句也可以支持 
资源控制选项来限制服务器对一个账户允许的使用范围。<br /><br />#vi 
/etc/my.cnf<br />[mysqld]<br />max_user_connections 
2<br /><br /><strong>8、用户目录权限限制</strong><br />默认的mysql是安装在/usr/local/mysql，而对应的数据库文件在/usr/local/mysql/var目录下，因此，必须保证该目录不能让未经授权的用户访问后把数据库打包拷贝走了，所以要限制对该目录的访问。确保mysqld运行时，只使用对数据库目录具有读或写权限的linux用户来运行。<br /># 
chown -R root&nbsp;&nbsp;/usr/local/mysql/&nbsp;&nbsp;//mysql主目录给root<br /># chown -R mysql.mysql 
/usr/local/mysql/var 
//确保数据库目录权限所属mysql用户<br /><br /><strong>9、命令历史记录保护</strong><br />数据库相关的shell操作命令都会分别记录在.bash_history，如果这些文件不慎被读取，会导致数据库密码和数据库结构等信息泄露，而登陆数据库后的操作将记录在.mysql_history文件中，如果使用update表信息来修改数据库用户密码的话，也会被读取密码，因此需要删除这两个文件，同时在进行登陆或备份数据库等与密码相关操作时，应该使用-p参数加入提示输入密码后，隐式输入密码，建议将以上文件置空。<br /><br /># 
rm .bash_history .mysql_history&nbsp;&nbsp;//删除历史记录<br /># ln -s /dev/null .bash_history&nbsp;&nbsp; 
//将shell记录文件置空<br /># ln -s /dev/null 
.mysql_history&nbsp;&nbsp;//将mysql记录文件置空<br /><br /><strong>10、禁止MySQL对本地文件存取</strong><br />在mysql中，提供对本地文件的读取，使用的是load 
data local 
infile命令，默认在5.0版本中，该选项是默认打开的，该操作令会利用MySQL把本地文件读到数据库中，然后用户就可以非法获取敏感信息了，假如你不需要读取本地文件，请务必关闭。<br /><br />测试：首先在测试数据库下建立sqlfile.txt文件，用逗号隔开各个字段<br /># 
vi sqlfile.txt <br />1,sszng,111<br />2,sman,222<br />#mysql&gt; load data local 
infile 'sqlfile.txt' into table users fields terminated by ','; 
//读入数据<br />#mysql&gt; select * from 
users;<br />+--------+------------+----------+<br />| userid&nbsp;&nbsp;| username&nbsp;&nbsp; | 
password |<br />+--------+------------+----------+<br />|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1 | sszng&nbsp;&nbsp;&nbsp;&nbsp;| 111&nbsp;&nbsp; 
| <br />|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2 | sman&nbsp;&nbsp;&nbsp;&nbsp;| 222&nbsp;&nbsp;| 
<br />+--------+------------+----------+&nbsp;&nbsp;<br /><br />成功的将本地数据插入数据中，此时应该禁止MySQL中用"LOAD 
DATA LOCAL INFILE"命令。网络上流传的一些攻击方法中就有用它LOAD DATA LOCAL INFILE的，同时它也是很多新发现的SQL 
Injection攻击利用的手段！黑客还能通过使用LOAD DATALOCAL 
INFILE装载"/etc/passwd"进一个数据库表，然后能用SELECT显示它，这个操作对服务器的安全来说，是致命的。可以在my.cnf中添加local-infile=0，或者加参数local-infile=0启动mysql。<br /><br />#/usr/local/mysql/bin/mysqld_safe 
--user=mysql --local-infile=0 &amp;<br />#mysql&gt; load data local infile 
'sqlfile.txt' into table users fields terminated by ',';<br />#ERROR 1148 (42000): 
The used command is not allowed with this MySQL 
version<br /><br />--local-infile=0选项启动mysqld从服务器端禁用所有LOAD DATA 
LOCAL命令，假如需要获取本地文件，需要打开，但是建议关闭。<br /><br /><strong>11、MySQL服务器权限控制</strong><br />MySQL权限系统的主要功能是证实连接到一台给定主机的用户，并且赋予该用户在数据库上的SELECT、INSERT、UPDATE和DELETE等权限（详见user超级用户表）。它的附加的功能包括有匿名的用户并对于MySQL特定的功能例如LOAD 
DATA 
INFILE进行授权及管理操作的能力。<br /><br />管理员可以对user，db，host等表进行配置，来控制用户的访问权限，而user表权限是超级用户权限。只把user表的权限授予超级用户如服务器或数据库主管是明智的。对其他用户，你应该把在user表中的权限设成'N'并且仅在特定数据库的基础上授权。你可以为特定的数据库、表或列授权，FILE权限给予你用LOAD 
DATA INFILE和SELECT ... INTO 
OUTFILE语句读和写服务器上的文件，任何被授予FILE权限的用户都能读或写MySQL服务器能读或写的任何文件。(说明用户可以读任何数据库目录下的文件，因为服务器可以访问这些文件）。 
FILE权限允许用户在MySQL服务器具有写权限的目录下创建新文件，但不能覆盖已有文件在user表的File_priv设置Y或N。，所以当你不需要对服务器文件读取时，请关闭该权限。<br /><br />#mysql&gt; 
load data infile 'sqlfile.txt' into table loadfile.users fields terminated by 
','; <br />Query OK, 4 rows affected (0.00 sec) //读取本地信息sqlfile.txt'<br />Records: 
4&nbsp;&nbsp;Deleted: 0&nbsp;&nbsp;Skipped: 0&nbsp;&nbsp;Warnings: 0<br />#mysql&gt; update user set 
File_priv='N' where user='root'; //禁止读取权限<br />Query OK, 1 row affected (0.00 
sec)<br />Rows matched: 1&nbsp;&nbsp;Changed: 1&nbsp;&nbsp;Warnings: 0<br />mysql&gt; flush privileges; 
//刷新授权表<br />Query OK, 0 rows affected (0.00 sec)<br />#mysql&gt; load data infile 
'sqlfile.txt' into table users fields terminated by ','; //重登陆读取文件<br />#ERROR 
1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 
//失败<br /># mysql&gt; select * from loadfile.users into outfile 'test.txt' fields 
terminated by ',';<br />ERROR 1045 (28000): Access denied for user 
'root'@'localhost' (using password: YES)<br />为了安全起见，随时使用SHOW 
GRANTS语句检查查看谁已经访问了什么。然后使用REVOKE语句删除不再需要的权限。<br /><br /><strong>12、使用chroot方式来控制MySQL的运行目录</strong><br />Chroot是linux中的一种系统高级保护手段，它的建立会将其与主系统几乎完全隔离，也就是说，一旦遭到什么问题，也不会危及到正在运行的主系统。这是一个非常有效的办法，特别是在配置网络服务程序的时候。<br /><br /><strong>13、关闭对Web访问的支持</strong><br />如果不打算让Web访问使用MySQL数据库，没有提供诸如PHP这样的Web语言的时候，重新设置或编译你的PHP，取消它们对MySQL的默认支持。假如服务器中使用php等web程序，试试用Web形式非法的请求，如果得到任何形式的MySQL错误，立即分析原因，及时修改Web程序，堵住漏洞，防止MySQL暴露在web面前。<br />对于Web的安全检查，在MySQL官方文档中这么建议，对于web应用，至少检查以下清单：<br />&nbsp;&nbsp;&nbsp;&nbsp;试试用Web形式输入单引号和双引号('''和'"')。如果得到任何形式的MySQL错误，立即分析原因。<br />&nbsp;&nbsp;&nbsp;&nbsp;试试修改动态URL，可以在其中添加%22('"')、%23('#')和%27(''')。<br />&nbsp;&nbsp;&nbsp;&nbsp;试试在动态URL中修改数据类型，使用前面示例中的字符，包括数字和字符类型。你的应用程序应足够安全，可以防范此类修改和类似攻击。<br />&nbsp;&nbsp;&nbsp;&nbsp;试试输入字符、空格和特殊符号，不要输入数值字段的数字。你的应用程序应在将它们传递到MySQL之前将它们删除或生成错误。将未经过检查的值传递给MySQL是很危险的！<br />&nbsp;&nbsp;&nbsp;&nbsp;将数据传给MySQL之前先检查其大小。<br />&nbsp;&nbsp;&nbsp;&nbsp;用管理账户之外的用户名将应用程序连接到数据库。不要给应用程序任何不需要的访问权限。<br /><br /><strong>14、数据库备份策略</strong><br />一般可采用本地备份和网络备份的形式，可采用MySQL本身自带的mysqldump的方式和直接复制备份形式，<br /><br />直接拷贝数据文件最为直接、快速、方便，但缺点是基本上不能实现增量备份。为了保证数据的一致性，需要在备份文件前，执行以下 
SQL 语句：FLUSH TABLES WITH READ 
LOCK；也就是把内存中的数据都刷新到磁盘中，同时锁定数据表，以保证拷贝过程中不会有新的数据写入。这种方法备份出来的数据恢复也很简单，直接拷贝回原来的数据库目录下即可。<br /><br />使用mysqldump可以把整个数据库装载到一个单独的文本文件中。这个文件包含有所有重建您的数据库所需要的SQL命令。这个命令取得所有的模式（Schema，后面有解释）并且将其转换成DDL语法（CREATE语句，即数据库定义语句），取得所有的数据，并且从这些数据中创建INSERT语句。这个工具将您的数据库中所有的设计倒转。因为所有的东西都被包含到了一个文本文件中。这个文本文件可以用一个简单的批处理和一个合适SQL语句导回到MySQL中。<br /><br />使用 
mysqldump进行备份非常简单，如果要备份数据库" nagios_db_backup 
"，使用命令，同时使用管道gzip命令对备份文件进行压缩，建议使用异地备份的形式，可以采用Rsync等方式，将备份服务器的目录挂载到数据库服务器，将数据库文件备份打包在，通过crontab定时备份数据：<br /><br />#!/bin/sh<br />time=`date 
+"("%F")"%R`<br />$/usr/local/mysql/bin/mysqldump -u nagios -pnagios nagios | gzip 
&gt;/home/sszheng/nfs58/nagiosbackup/nagios_backup.$time.gz<br /># crontab -l<br /># 
m h&nbsp;&nbsp;dom mon dow&nbsp;&nbsp; command<br />00 00 * * * 
/home/sszheng/shnagios/backup.sh<br /><br />恢复数据使用命令：<br />gzip -d 
nagios_backup.\(2008-01-24\)00\:00.gz<br />nagios_backup.(2008-01-24)00:00<br />#mysql 
-u root -p nagios&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;&nbsp;&nbsp;/home/sszheng/nfs58/nagiosbackup/nagios_backup.\(2008-01-24\)12\:00<br /><br /><br /><span style="color: rgb(255, 0, 0);"><strong>三、Mysqld安全相关启动选项</strong></span><br />下列mysqld选项影响安全：<br />&nbsp;&nbsp;&nbsp;&nbsp;--allow-suspicious-udfs<br />该选项控制是否可以载入主函数只有xxx符的用户定义函数。默认情况下，该选项被关闭，并且只能载入至少有辅助符的UDF。这样可以防止从未包含合法UDF的共享对象文件载入函数。<br />&nbsp;&nbsp;&nbsp;&nbsp;--local-infile[={0|1}]<br />如果用--local-infile=0启动服务器，则客户端不能使用LOCAL 
in LOAD 
DATA语句。<br />&nbsp;&nbsp;&nbsp;&nbsp;--old-passwords<br />强制服务器为新密码生成短(pre-4.1)密码哈希。当服务器必须支持旧版本客户端程序时，为了保证兼容性这很有用。<br />&nbsp;&nbsp;&nbsp;&nbsp; 
(OBSOLETE) --safe-show-database<br />在以前版本的MySQL中，该选项使SHOW 
DATABASES语句只显示用户具有部分权限的数据库名。在MySQL 5.1中，该选项不再作为现在的 默认行为使用，有一个SHOW 
DATABASES权限可以用来控制每个账户对数据库名的访问。<br />&nbsp;&nbsp;&nbsp;&nbsp;--safe-user-create<br />如果启用，用户不能用GRANT语句创建新用户，除非用户有mysql.user表的INSERT权限。如果你想让用户具有授权权限来创建新用户，你应给用户授予下面的权限：<br />mysql&gt; 
GRANT INSERT(user) ON mysql.user TO 
'user_name'@'host_name';<br />这样确保用户不能直接更改权限列，必须使用GRANT语句给其它用户授予该权限。<br />&nbsp;&nbsp;&nbsp;&nbsp;--secure-auth<br />不允许鉴定有旧(pre-4.1)密码的账户。<br />&nbsp;&nbsp;&nbsp;&nbsp;--skip-grant-tables<br />这个选项导致服务器根本不使用权限系统。这给每个人以完全访问所有的数据库的权力！（通过执行mysqladmin 
flush-privileges或mysqladmin eload命令，或执行FLUSH 
PRIVILEGES语句，你能告诉一个正在运行的服务器再次开始使用授权表。）<br />&nbsp;&nbsp;&nbsp;&nbsp;--skip-name-resolve<br />主机名不被解析。所有在授权表的Host的列值必须是IP号或localhost。<br />&nbsp;&nbsp;&nbsp;&nbsp;--skip-networking<br />在网络上不允许TCP/IP连接。所有到mysqld的连接必须经由Unix套接字进行。<br />&nbsp;&nbsp;&nbsp;&nbsp;-skip-show-database<br />使用该选项，只允许有SHOW 
DATABASES权限的用户执行SHOW DATABASES语句，该语句显示所有数据库名。不使用该选项，允许所有用户执行SHOW 
DATABASES，但只显示用户有SHOW DATABASES权限或部分数据库权限的数据库名。请注意全局权限指数据库的权限。 ]]>
        
    </content>
</entry>

<entry>
    <title>每天MySQL自动优化</title>
    <link rel="alternate" type="text/html" href="http://www.dbasky.net/archives/2011/03/mysql-4.html" />
    <id>tag:www.dbasky.net,2011://1.175</id>

    <published>2011-03-09T08:16:24Z</published>
    <updated>2011-03-09T08:19:32Z</updated>

    <summary>[root@bbs ~]# /usr/local/mysql/bin/mysqlcheck -Aao -auto-repair -uroot -p下面说下几个参数的含义 -a, --analyze 分析 [Analyze given tables]-o, --optimize 优化 [Optimize table]-A, --all-databases 所有的数据库 [Check all the database]--auto-repair 自动修复 [If a checked table is corrupted, automatically fix it. Repairing will be done after all tables...</summary>
    <author>
        <name>Mike.Xu</name>
        <uri>http://www.dbasky.net</uri>
    </author>
    
        <category term="Database" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Mysql" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="linuxmysql" label="linux mysql" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mysql" label="mysql" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mysql优化" label="mysql 优化" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.dbasky.net/">
        <![CDATA[[root@bbs ~]# /usr/local/mysql/bin/mysqlcheck -Aao -auto-repair -uroot -p<br /><br /><br />下面说下几个参数的含义<br /><br />
<div class="code">-a, --analyze 分析 [Analyze given tables]<br />-o, --optimize 优化 
[Optimize table]<br />-A, --all-databases 所有的数据库 [Check all the 
database]<br />--auto-repair 自动修复 [If a checked table is corrupted, automatically 
fix it. Repairing will be done after all tables have been checked, if corrupted 
ones were found]<br /><br />vi /opt/shell/mysql_opt.sh<br /><br />/usr/local/mysql/bin/mysqlcheck -Aao -auto-repair -uroot -p<br /><br /><br />加入 crontab<br /><a href="editor-content.html?cs=utf-8" name="entrymore"></a><br />
<div class="code">* * */1 * *&nbsp; /opt/shell/mysql_opt.sh<br /></div><br /></div>]]>
        
    </content>
</entry>

<entry>
    <title>删除文件夹下所有.svn文件</title>
    <link rel="alternate" type="text/html" href="http://www.dbasky.net/archives/2011/03/svn.html" />
    <id>tag:www.dbasky.net,2011://1.174</id>

    <published>2011-03-01T07:48:35Z</published>
    <updated>2011-02-28T07:50:15Z</updated>

    <summary>方法一：find / -name .svn | xargs rm -rf方法二：ls -alR | grep .svn/ | xargs rm -rf...</summary>
    <author>
        <name>Mike.Xu</name>
        <uri>http://www.dbasky.net</uri>
    </author>
    
        <category term="System" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="linux/unix" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="svn文件" label=".svn文件" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="删除文件" label="删除文件" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.dbasky.net/">
        <![CDATA[方法一：<br />find / -name .svn | xargs rm -rf<br />方法二：<br />ls -alR | grep .svn/ | xargs rm -rf ]]>
        
    </content>
</entry>

<entry>
    <title>vim替换^M字符</title>
    <link rel="alternate" type="text/html" href="http://www.dbasky.net/archives/2011/02/vimm.html" />
    <id>tag:www.dbasky.net,2011://1.173</id>

    <published>2011-02-28T07:11:46Z</published>
    <updated>2011-02-28T07:21:34Z</updated>

    <summary><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在Linux下使用vi来查看一些在Windows下创建的文本文件，有时会发现在行尾有一些"^M"。有几种方法可以处理。1.使用dos2unix命令。一般的分发版本中都带有这个小工具（如果没有可以根据下面的连接去下载），使用起来很方便:$ dos2unix myfile.txt上面的命令会去掉行尾的^M。2.使用vi的替换功能。启动vi，进入命令模式，输入以下命令::%s/^M$//g # 去掉行尾的^M。:%s/^M//g # 去掉所有的^M。:%s/^M/[ctrl-v]+[enter]/g # 将^M替换成回车。:%s/^M/\r/g # 将^M替换成回车。3.使用sed命令。和vi的用法相似：$ sed -e 's/^M/\n/g' myfile.txt注意：这里的"^M"要使用"CTRL-V CTRL-M"生成，而不是直接键入"^M"。...]]></summary>
    <author>
        <name>Mike.Xu</name>
        <uri>http://www.dbasky.net</uri>
    </author>
    
        <category term="System" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="linux/unix" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="linuxvim" label="linux vim" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="vim" label="vim" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="vim技巧" label="vim 技巧" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="替换" label="替换" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.dbasky.net/">
        <![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在Linux下使用vi来查看一些在Windows下创建的文本文件，有时会发现在行尾有一些"^M"。有几种方法可以处理。<br />1.使用dos2unix命令。一般的分发版本中都带有这个小工具（如果没有可以根据下面的连接去下载），使用起来很方便:<br />$ dos2unix myfile.txt<br />上面的命令会去掉行尾的^M。<br />2.使用vi的替换功能。启动vi，进入命令模式，输入以下命令:<br />:%s/^M$//g # 去掉行尾的^M。<br />:%s/^M//g # 去掉所有的^M。<br />:%s/^M/[ctrl-v]+[enter]/g # 将^M替换成回车。<br />:%s/^M/\r/g # 将^M替换成回车。<br />3.使用sed命令。和vi的用法相似：<br />$ sed -e 's/^M/\n/g' myfile.txt<br />注意：这里的"^M"要使用"CTRL-V CTRL-M"生成，而不是直接键入"^M"。 ]]>
        
    </content>
</entry>

<entry>
    <title>国内访问twitter</title>
    <link rel="alternate" type="text/html" href="http://www.dbasky.net/archives/2011/02/twitter.html" />
    <id>tag:www.dbasky.net,2011://1.172</id>

    <published>2011-02-10T08:05:58Z</published>
    <updated>2011-02-10T08:27:03Z</updated>

    <summary>打开Windows系统的hosts文件（VISTA WIN7 用管理员权限打开文件)这个文件C:\WINDOWS\system32\drivers\etc\hosts 在最后加入这么几行： 65.49.26.99 twitter.com65.49.26.98 si0.twimg.com65.49.26.98 si1.twimg.com65.49.26.98 si2.twimg.com65.49.26.98 si3.twimg.com65.49.26.98 si4.twimg.com65.49.26.98 si5.twimg.com65.49.26.97 api.twitter.com 保存文件。然后重新打开浏览器，直接访问 https://twitter.com （是HTTPS 不是HTTP）...</summary>
    <author>
        <name>Mike.Xu</name>
        <uri>http://www.dbasky.net</uri>
    </author>
    
        <category term="MyLife" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="翻墙twitter" label="翻墙 twitter" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="twitter" label="twitter" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="twitterapi" label="twitter api" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="国内访问twitter" label="国内访问twitter" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.dbasky.net/">
        <![CDATA[<p>打开Windows系统的hosts文件<br />（VISTA WIN7 
用管理员权限打开文件)<br />这个文件<br />C:\WINDOWS\system32\drivers\etc\hosts</p>
<p>在最后加入这么几行：</p>
<p>65.49.26.99 twitter.com<br />65.49.26.98 si0.twimg.com<br />65.49.26.98 
si1.twimg.com<br />65.49.26.98 si2.twimg.com<br />65.49.26.98 
si3.twimg.com<br />65.49.26.98 si4.twimg.com<br />65.49.26.98 
si5.twimg.com<br />65.49.26.97 api.twitter.com<span id="more-734"></span></p>
<p>保存文件。<br />然后重新打开浏览器，直接访问 https://twitter.com （是HTTPS 不是HTTP）</p> ]]>
        
    </content>
</entry>

<entry>
    <title>强制刷新本地 DNS 缓存记录</title>
    <link rel="alternate" type="text/html" href="http://www.dbasky.net/archives/2011/02/-dns.html" />
    <id>tag:www.dbasky.net,2011://1.171</id>

    <published>2011-02-01T04:36:21Z</published>
    <updated>2011-01-31T06:58:11Z</updated>

    <summary><![CDATA[&nbsp;&nbsp; 为了提高DNS 解析的记录，很多操作系统都会提供缓存DNS 记录的功能，但是，这可能会为测试DNS 服务或域名设定带来麻烦。为了测试出准确的结果，我们需要强制刷新本地 DNS 缓存记录。这里提供Windows 与 Linux 客户端上的操作说明。一、Windows 客户端获得缓存中的DNS ：ipconfig /displaydns强制清除DNS 缓存：ipconfig /flushdns&nbsp;&nbsp; 如果您觉得DNS Client服务带来麻烦，可以用在控制面板----服务 中停止，或使用下面的命令停止该服务：net stop dnscache重启动DNS Client服务：net start dnscache二、Linux 客户端开启本地DNS 缓存的服务。# chkconfig --list|grep nscdnscd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0:关闭&nbsp; 1:关闭&nbsp; 2:关闭&nbsp; 3:关闭&nbsp; 4:关闭&nbsp; 5:关闭&nbsp; 6:关闭该服务除了提供DNS 缓存外，可提供NIS 加速的作用。启动本地DNS 缓存服务即可：# service nscd...]]></summary>
    <author>
        <name>Mike.Xu</name>
        <uri>http://www.dbasky.net</uri>
    </author>
    
        <category term="NETWORK" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="清除本地dns，强制刷新本地dns，dns，dns缓存" label="清除本地DNS，强制刷新本地DNS，DNS，dns缓存" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.dbasky.net/">
        <![CDATA[&nbsp;&nbsp; 为了提高DNS 解析的记录，很多操作系统都会提供缓存DNS 记录的功能，但是，这可能会为测试DNS 服务或域名设定带来麻烦。为了测试出准确的结果，我们需要强制刷新本地 DNS 缓存记录。这里提供Windows 与 Linux 客户端上的操作说明。<br /><br />一、Windows 客户端<br />获得缓存中的DNS ：<br />ipconfig /displaydns<br />强制清除DNS 缓存：<br />ipconfig /flushdns<br />&nbsp;&nbsp; 如果您觉得DNS Client服务带来麻烦，可以用在控制面板----服务 中停止，或使用下面的命令停止该服务：<br />net stop dnscache<br />重启动DNS Client服务：<br />net start dnscache<br />二、Linux 客户端<br />开启本地DNS 缓存的服务。<br /># chkconfig --list|grep nscd<br />nscd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0:关闭&nbsp; 1:关闭&nbsp; 2:关闭&nbsp; 3:关闭&nbsp; 4:关闭&nbsp; 5:关闭&nbsp; 6:关闭<br /><br />该服务除了提供DNS 缓存外，可提供NIS 加速的作用。<br />启动本地DNS 缓存服务即可：<br /># service nscd start<br />反之<br /># service nscd stop<br /><br />需要注意的是，在linux下没有强制清除DNS缓存的命令。但是，我们可以通过删除其后台数据库记录信息，达到清除DNS缓存的目的：<br /># rm /var/db/nscd/hosts<br /># service nscd restart<br />三、Linux Bind 服务<br />有时候，我们的客户端是处于某台DNS 缓存服务器后面的。常见的情况是，作为NAT 网关的Linux 服务器，通过bind 服务，提供DNS 缓存和转发功能。这可通过配置/etc/named.conf，加入forward来实现：<br /><blockquote><div align="left">options {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; directory "/var/named";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dump-file "/var/named/data/cache_dump.db";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; statistics-file "/var/named/data/named_stats.txt";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; forward only;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; forwarders {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 202.106.0.20;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br /><br />};<br /></div></blockquote><br />这时，客户端对外的DNS 解析结果，除保留在客户端本地的DNS 缓存中，同样会保留在这台网关服务器上。还有一种情况就是，当我们修改named 提供的DNS服务时，也需要刷新缓存。<br />bind 提供的rndc 命令可以清空缓存的功能：<br /># rndc flush ]]>
        
    </content>
</entry>

<entry>
    <title>linux 查看自己系统装于何时</title>
    <link rel="alternate" type="text/html" href="http://www.dbasky.net/archives/2011/01/linux-4.html" />
    <id>tag:www.dbasky.net,2011://1.170</id>

    <published>2011-01-31T03:45:15Z</published>
    <updated>2011-01-31T03:47:25Z</updated>

    <summary><![CDATA[想知道自己的linux 系统装于何时：&nbsp;ls -lct /etc/ | tail -1 | awk '{print $6, $7, $8}'...]]></summary>
    <author>
        <name>Mike.Xu</name>
        <uri>http://www.dbasky.net</uri>
    </author>
    
        <category term="System" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="linux/unix" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="linux，linux系统，安装，安装时间" label="linux，linux 系统，安装，安装时间" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.dbasky.net/">
        <![CDATA[想知道自己的linux 系统装于何时：<br />&nbsp;<br />ls -lct /etc/ | tail -1 | awk '{print $6, $7, $8}' ]]>
        
    </content>
</entry>

</feed>

