<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[鑫的方向]]></title> 
<link>http://www.xinlogs.com/index.php</link> 
<description><![CDATA[记录自己走过的轨迹]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[鑫的方向]]></copyright>
<item>
<link>http://www.xinlogs.com/disable-mysql-query-log/</link>
<title><![CDATA[开启或者关闭MYSQL的query log(查询日志)]]></title> 
<author>babo &lt;admin@yourname.com&gt;</author>
<category><![CDATA[数据库]]></category>
<pubDate>Sun, 04 Apr 2010 16:35:27 +0000</pubDate> 
<guid>http://www.xinlogs.com/disable-mysql-query-log/</guid> 
<description>
<![CDATA[ 
	<p>最近在整理服务器的时候，发现mysql的查询日志文件占用了很多空间。这个查询日志文件部分内容如下，随着查询增加，会越来越大</p>
<div class="codeText"><span class="copyCodeText" onclick="copyIdText('code_3583');" style="cursor: pointer">复制内容到剪贴板</span>
<div id="code_3583">
<ol class="dp-xml" style="border-bottom: 0px; border-left: 0px; list-style-type: none; margin-left: 5px; border-top: 0px; border-right: 0px">
    <li class="alt"><span><span>Tcp port: 3306 Unix socket: /tmp/mysql.sock </span></span></li>
    <li><span>Time Id Command Argument </span></li>
    <li class="alt"><span>100404 8:36:49 1 Connect <a href="mailto:zzz@localhost">zzz@localhost</a> on </span></li>
    <li><span>1 Init DB&nbsp;zzz </span></li>
    <li class="alt"><span>1 Query SET NAMES 'utf8' </span></li>
    <li><span>1 Query SELECT * FROM `boblog_counter` LIMIT 0,1 </span></li>
    <li class="alt"><span>1 Query SELECT `blogid`,`pubtime`,`edittime`,`blogalias` FROM `boblog_blogs` WHERE `property`</span><span class="tag">&lt;</span><span class="tag-name">2</span><span> ORDER BY `pubtime`DESC LIMIT 0, 1500 </span></li>
    <li><span>1 Quit </span></li>
    <li class="alt"><span>100404 8:38:01 2 Connect admin@localhost on </span></li>
    <li><span>2 Init DB&nbsp;zzz </span></li>
    <li class="alt"><span>2 Query SET NAMES 'utf8' </span></li>
    <li><span>2 Query SET </span><span class="attribute">sql_mode</span><span>=</span><span class="attribute-value">''</span><span> </span></li>
    <li class="alt"><span>2 Query SELECT * FROM `cmseasy_settings` WHERE `tag`='table-fieldset' ORDER BY 1 DESC limit 1 </span></li>
    <li><span>2 Init DB&nbsp;zzz </span></li>
    <li class="alt"><span>2 Query SET NAMES 'utf8' </span></li>
    <li><span>2 Query SET </span><span class="attribute">sql_mode</span><span>=</span><span class="attribute-value">''</span><span> </span></li>
    <li class="alt"><span>2 Query SELECT * FROM `cmseasy_user` WHERE userid</span><span class="tag">&gt;</span><span>0 ORDER BY 1 DESC limit 1 </span></li>
    <li><span>2 Init DB&nbsp;zzz </span></li>
    <li class="alt"><span>2 Query SET NAMES 'utf8' </span></li>
    <li><span>2 Query SET </span><span class="attribute">sql_mode</span><span>=</span><span class="attribute-value">''</span><span> </span></li>
    <li class="alt"><span>2 Query SELECT count(typeid) as rec_sum FROM `cmseasy_type` </span></li>
    <li><span>2 Query SELECT * FROM `cmseasy_type` ORDER BY `order`,1 limit 1000 </span></li>
    <li class="alt"><span>2 Init DB zzz</span></li>
    <li><span>2 Query SET NAMES 'utf8' </span></li>
    <li class="alt"><span>2 Query SET </span><span class="attribute">sql_mode</span><span>=</span><span class="attribute-value">''</span><span> </span></li>
    <li><span>2 Query SELECT count(1) as rec_sum FROM `cmseasy_friendlink` WHERE state</span><span class="tag">&gt;</span><span>0 and </span><span class="attribute">linktype</span><span>=</span><span class="attribute-value">1</span><span> </span></li>
    <li class="alt"><span>2 Query SELECT * FROM `cmseasy_friendlink` WHERE state</span><span class="tag">&gt;</span><span>0 and </span><span class="attribute">linktype</span><span>=</span><span class="attribute-value">1</span><span> ORDER BY listorder asc,id limit 20 </span></li>
    <li><span>2 Init DB zzz</span></li>
    <li><span>2 Query SET NAMES 'utf8' </span></li>
    <li><span>2 Query SET </span><span class="attribute">sql_mode</span><span>=</span><span class="attribute-value">''</span><span> </span></li>
    <li class="alt"><span>2 Query SELECT count(1) as rec_sum FROM `cmseasy_friendlink` WHERE state</span><span class="tag">&gt;</span><span>0 and </span><span class="attribute">linktype</span><span>=</span><span class="attribute-value">1</span><span> </span></li>
    <li><span>2 Query SELECT * FROM `cmseasy_friendlink` WHERE state</span><span class="tag">&gt;</span><span>0 and </span><span class="attribute">linktype</span><span>=</span><span class="attribute-value">1</span><span> ORDER BY listorder asc,id limit 20 </span></li>
    <li class="alt"><span>2 Init DB&nbsp;zzz </span></li>
    <li><span>2 Query SET NAMES 'utf8' </span></li>
    <li class="alt"><span>2 Query SET </span><span class="attribute">sql_mode</span><span>=</span><span class="attribute-value">''</span><span> </span></li>
    <li><span>2 Query SELECT * FROM `cmseasy_templatetag` WHERE </span><span class="attribute">name</span><span>=</span><span class="attribute-value">'&aring;~E&not;&aring;~O&cedil;&ccedil;&reg;~@&auml;&raquo;~K'</span><span> ORDER BY 1 DESC limit 1 </span></li>
    <li class="alt"><span>2 Init DB&nbsp;zzz </span></li>
    <li><span>2 Query SET NAMES 'utf8' </span></li>
    <li class="alt"><span>2 Query SET </span><span class="attribute">sql_mode</span><span>=</span><span class="attribute-value">''</span><span> </span></li>
    <li><span>2 Query Describe cmseasy_archive </span></li>
    <li class="alt"><span>2 Query SELECT count(1) as rec_sum FROM `cmseasy_archive` WHERE typeid in (2) and </span><span class="attribute">checked</span><span>=</span><span class="attribute-value">1</span><span> and (state IS NULL or state</span><span class="tag">&lt;</span><span class="tag">&gt;</span><span>'-1') </span></li>
    <li><span>2 Query SELECT * FROM `cmseasy_archive` WHERE typeid in (2) and </span><span class="attribute">checked</span><span>=</span><span class="attribute-value">1</span><span> and (state IS NULL or state</span><span class="tag">&lt;</span><span class="tag">&gt;</span><span>'-1') ORDER BY aid desc limit 4 </span></li>
</ol>
</div>
<link rel="stylesheet" type="text/css" href="http://www.xinlogs.com/editor/fckeditor/editor/plugins/insertcode/insertcode.css" /><script language="javascript" src="http://www.xinlogs.com/editor/fckeditor/editor/plugins/insertcode/excute.js" type="text/javascript"></script></div>
<p>其实记录的都是mysql执行的一些select语句，对于正常运行的服务器，我觉得基本没有必要保留这些日志。</p>
<p>关键是怎么关闭，这个日志的开启与否，可以通过mysql里提交如下命令查看</p>
<div class="codeText"><span class="copyCodeText" onclick="copyIdText('code_8683');" style="cursor: pointer">复制内容到剪贴板</span>
<div id="code_8683">
<ol class="dp-xml" style="border-bottom: 0px; border-left: 0px; list-style-type: none; margin-left: 5px; border-top: 0px; border-right: 0px">
    <li class="alt"><span><span>show variables like 'log'; </span></span></li>
</ol>
</div>
<link rel="stylesheet" type="text/css" href="http://www.xinlogs.com/editor/fckeditor/editor/plugins/insertcode/insertcode.css" /><script language="javascript" src="http://www.xinlogs.com/editor/fckeditor/editor/plugins/insertcode/excute.js" type="text/javascript"></script></div>
<p>如果现实 log 的值是 ON就代码开启，如果是OFF就代表关闭</p>
<p>我们可以通过my.cnf配置文件进行配置</p>
<p>在my.cnf文件里，加入general-log = 0就关闭了这个查询日志。如果是general-log = 1就开启了这个查询日志。<br />
&nbsp;</p><br/>Tags - <a href="http://www.xinlogs.com/tags/mysql/" rel="tag">mysql</a> , <a href="http://www.xinlogs.com/tags/query/" rel="tag">query</a> , <a href="http://www.xinlogs.com/tags/log/" rel="tag">log</a>
]]>
</description>
</item><item>
<link>http://www.xinlogs.com/post/25/</link>
<title><![CDATA[如何向万网的Mysql数据库导入数据]]></title> 
<author>babo &lt;admin@yourname.com&gt;</author>
<category><![CDATA[数据库]]></category>
<pubDate>Mon, 21 Dec 2009 00:42:37 +0000</pubDate> 
<guid>http://www.xinlogs.com/post/25/</guid> 
<description>
<![CDATA[ 
	<p>昨天单位由一个网站，要放到万网的虚拟主机去。</p><p>网站是jsp写的，程序好导。直接ftp过去就可以了。</p><p>可是mysql的数据库怎么导呢？</p><p>我先用</p><p><span style="color: #0000ff">mysqldump database_name&gt;database_name.sql</span></p><p>然后把这个database_name.sql下载下来。</p><p>再给虚拟主机空间上传一个phpmyadmin来做数据库管理用。这样就可以使用phpmyadmin导入数据了。</p><p>如果网站数据小，这样就ok了。可是我的database_name.sql有60M</p><p>万网空间上的phpmyadmin只能最大支持2M</p><p>于是只能另外想办法。我先导入表格结构吧。</p><p><span style="color: #0000ff">mysqldump &ndash;d database_name&gt;database_name.sql</span></p><p><span style="color: #000000">在phpmyadmin里，选择好数据库后，用导入功能，将database_name.sql导入</span></p><p><a rel="WLPP" href="https://s9rh2g.blu.livefilestore.com/y1mHVIAi8jg7Mb5x8SUNU1jDjnYg_r7MMguFdxshoKmT0aUmojEXfXwjcFNvHU8eHb_8KPXG0p-eP8OYEy2XTumOdz3f7jLb3uv04BdOp61JfglcvJTYmfmb7tf8sOD7vNHxIRiyuMFyXHgxbiHKreVXQ/phpmyadmin_importdatabase[3].png"><img style="display: inline; border-width: 0px" src="https://s9rh2g.blu.livefilestore.com/y1mdGOU4j4UtUCi2kkdluGx-8ZVQPNAeRtME59G0m9UTAV6US6TRcXcPt8JTebpGrQYcTOoFsPV4IYVMG9y--GVWprGZPyqa_vHyXC_9QbHYa3pBdhkj8qLUuIrsqFrAmNgcFHG2PFiwlMKSOJvkoM5zg/phpmyadmin_importdatabase_thumb[1].png" border="0" alt="phpmyadmin_importdatabase" title="phpmyadmin_importdatabase" width="644" height="290" /></a> </p><p>现在有了表结构了，但是每个表都没有数据。我们再继续导入数据。</p><p>我的表里面，除了一个news表格特别大，大约51M，其他都在2M一下。所以我每个表格生成一个txt文件，然后导入到万网的数据库。</p><p>本地进入mysql&gt;提示符后，用以下命令将数据的表格数据导出。</p><p><span style="color: #0000ff">select * from admin into outfile &ldquo;/tmp/admin.txt&rdquo; fields terminated by &ldquo;&#124;&rdquo; lines terminated by &ldquo;@&rdquo;;</span></p><p>上面命令<span style="color: #000000">将本地数据库的admin表，导出到/tmp/目录下的admin.txt文件。</span></p><p><span style="color: #000000">我们有几个表格，就用这个命令导出几个txt文件。</span></p><p><span style="color: #000000">然后将txt文件用gzip压缩，因为phpmyadmin支持gzip压缩格式的。</span></p><p><span style="color: #0000ff">cd /tmp/</span></p><p><span style="color: #0000ff">gzip admin.txt</span></p><p><span style="color: #000000">最后将压缩的admin.txt.gz下载到本地，用浏览器上传给phpmyadmin导入</span></p><p><a rel="WLPP" href="https://s9rh2g.blu.livefilestore.com/y1msg_69s8DFbL3bTmdN8Snhq-nEsT4WmJW2yYTF7X1DopxMZhFDybwoKfjEHq_3KF7hUNr-48fxSiyUSre_3SoKwRGBHhIJaRA5rZFEU_NmQmyNrfSfKMHWOfX1gmPiwdAvZ9oplBEi48SCjHwwdzlWw/importtable_data[3].png"><img style="display: inline; border-width: 0px" src="https://s9rh2g.blu.livefilestore.com/y1m-uZ-E5BCedsSygMfvzdP_3ZE8yGt4SefY5j-HYLKmle2OliBI0yLTJHrzg4ve2Pm1pQkywE6zggpTlPJjkPbxAY1WDZqUPDQ2HX33b9hkJwUeKRw-kE4tYNIDLZljhtCHE_2t4mr61cHbS56GNfipw/importtable_data_thumb[1].png" border="0" alt="importtable_data" title="importtable_data" width="644" height="357" /></a> </p><p><strong><span style="color: #ff0000">解决ｎｅｗｓ表格过大问题</span></strong></p><p></p><p></p><p><span style="color: #000000">我的ｎｅｗｓ表格有５１Ｍ，就算gzip压缩后，还有7M左右，还是不能用phpmyadmin导入。</span></p><p><span style="color: #000000">我们可以将news表格的数据切分为多个txt文件，然后保证每个文件gzip后，在2M以内就可以。</span></p><p><span style="color: #000000">这个切分就要根据具体表格来判断了。</span></p><p><span style="color: #000000">我先查询了news表格一共有多少条记录</span></p><p><span style="color: #0000ff">select count(*) from news;</span></p><p><span style="color: #000000">返回1477条，表格是51M。压缩后的表格是7M。</span></p><p><span style="color: #000000">7M/2M=3.5 </span></p><p><span style="color: #000000">1477/3.5=422条。</span></p><p><span style="color: #000000">根据上面的计算，只要按照422条一个文件来分割就可以了。为了保险，因为每条记录的大小并不是一样的平均分配，我按照每个文件200条记录来切分。</span></p><p><span style="color: #0000ff">select * from news where newId&gt;0 limit 200 into outfile &ldquo;/tmp/news0.txt&rdquo; fields terminated by &ldquo;&#124;&rdquo; lines terminated by &ldquo;@&rdquo;;</span></p><p><span style="color: #000000">然后用</span></p><p><span style="color: #0000ff">select max(newId) from news where newId&gt;0 limit 200;</span></p><p><span style="color: #000000">查看下200条记录后，是到了那条记录，下次分割就从那条开始</span></p><p><span style="color: #000000">这样分割出来的8个文件，一次压缩后，上传到phpmyadmin导入。就完成了全部表格的导入工作。</span></p><p><strong>总结</strong></p><p>其实如果数据本身不复杂，直接用navicat也可以远程连接导入的。但是navicat不支持定义 lines terminated。我的news表格里面存在的都是html代码，经常出现换行符，所以只能选择用phpmyadmin了。</p>
]]>
</description>
</item><item>
<link>http://www.xinlogs.com/post/24/</link>
<title><![CDATA[Mysql设置my.cnf来记录下全部sql请求]]></title> 
<author>babo &lt;admin@yourname.com&gt;</author>
<category><![CDATA[数据库]]></category>
<pubDate>Mon, 21 Dec 2009 00:42:08 +0000</pubDate> 
<guid>http://www.xinlogs.com/post/24/</guid> 
<description>
<![CDATA[ 
	<p>要想记录下提交到mysql数据库的全部sql语句，可以通过修改my.cnf来实现</p><p>修改/etc/my.cnf文件</p><p>找到</p><p>[mysqld]段</p><p>加入</p><p>log=queryLog<br />log-slow-queries=showquerylog</p><p>然后就可以到/var/lib/mysql/目录下找到queryLog和showquerylog日志文件了</p><p>里面记录这每个提交到数据库执行的sql语句。</p><p>我的系统CentOS 4.4 rpm方式安装的mysql 5.0.57,如果其它系统或者其它安装方式，可能文件路径会有些不同。</p>
]]>
</description>
</item><item>
<link>http://www.xinlogs.com/post/23/</link>
<title><![CDATA[如何建立两个表间的外键]]></title> 
<author>babo &lt;admin@yourname.com&gt;</author>
<category><![CDATA[数据库]]></category>
<pubDate>Mon, 21 Dec 2009 00:41:40 +0000</pubDate> 
<guid>http://www.xinlogs.com/post/23/</guid> 
<description>
<![CDATA[ 
	<p>建立Mysql两个表间的外键,需要满足三个条件</p><p>1.两个表必须是InnoDB表类型</p><p>2.使用在外键关系的域必须为索引型(Index)</p><p>3.使用在外键关系的域必须与数据类型相似</p><p>下面举例说明</p><p>我们创建一个班级表和一个学生表,并建立一个外键</p><p>创建班级表</p><p>CREATE TABLE class (id INT NOT NULL AUTO_INCREMENT, classname VARCHAR(50) NOT NULL, PRIMARY KEY(id)) ENGINE=INNODB;</p><p>插入班级数据</p><p>INSERT INTO class VALUES (1,&quot;一班&quot;),(2,&quot;二班&quot;),(3,&quot;三班&quot;);</p><p>创建学生表</p><p>CREATE TABLE students (id INT(4) NOT NULL, name VARCHAR(50) NOT NULL, FK_class INT(4) NOT NULL, INDEX (FK_class), FOREIGN KEY (FK_class) REFERENCES class (id), PRIMARY KEY(id)) ENGINE=INNODB;</p><p>验证外键约束性,我们向students表插入一个学生数据,并让FK_class的值为一个在class表里面不存在的值.</p><p>mysql&gt; INSERT INTO students VALUES (1,&quot;zhang&quot;,5);</p><p>马上就会看到Mysql报错<br />ERROR 1452 : Cannot add or update a child row: a foreign key constraint fails (`test/students`, CONSTRAINT `students_ibfk_1` FOREIGN KEY (`FK_class`) REFERENCES `class` (`id`))</p><p>以上证明外键可以正常工作了</p><p>在Mysql下测试了以下,不建立index,并且不指定innodb格式.</p><p>版本</p><p>+----------------------+<br />&#124; version()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124;<br />+----------------------+<br />&#124; 5.0.24a-community-nt &#124;<br />+----------------------+</p><p>建立class表</p><p>CREATE TABLE class (id INT NOT NULL AUTO_INCREMENT, classname VARCHAR(50) NOT NULL, PRIMARY KEY(id));</p><p>建立students表</p><p>CREATE TABLE students (id INT(4) NOT NULL, name VARCHAR(50) NOT NULL, FK_class INT(4) NOT NULL, FOREIGN KEY (FK_class) REFERENCES class (id), PRIMARY KEY(id));</p><p>通过Navicat查看,上面语句建立的两个表,也会默认用INNODB存储,而且也在students表建立了index和外键.一切正常.</p>
]]>
</description>
</item><item>
<link>http://www.xinlogs.com/post/22/</link>
<title><![CDATA[一个在windows下很好用的MySQL工具Navicat]]></title> 
<author>babo &lt;admin@yourname.com&gt;</author>
<category><![CDATA[数据库]]></category>
<pubDate>Mon, 21 Dec 2009 00:41:12 +0000</pubDate> 
<guid>http://www.xinlogs.com/post/22/</guid> 
<description>
<![CDATA[ 
	<p>为了解决中文乱码，我的Mysql都设置了使用utf8编码</p><p>这样一来，使用SQLyog Enterprise查看表里面内容，就都不能正常显示了。可能SQLyog需要设置？反正我没有搞出来。</p><p>不过后来我换用了Navicat 7以后，感觉很好。所有中文内容都可以正确显示</p><p>比mysql front也要强很多。以后我就用这个了</p><p><img src="http://www.navicat.com/images/stories/product/mysql/product/win/win_big.jpg" border="0" width="440" height="370" /><br /></p><p>而且支持Linux,windows,mac三个平台。下面是介绍</p><p><span>PremiumSoft Navicat&trade; is a powerful MySQL database administration and development tool that is not only sophisticated enough for professional developers, but also easy to learn for new users. With an user-friendly GUI, Navicat&trade; lets you quickly and easily create, organize, access and share information in a secure and convenient way. </span></p><p><span>PremiumSoft Navicat supports multiple MySQL server connections which can be connected locally or remotely. Your remote MySQL server can be running on Linux, Unix, Mac OS X or Windows platform.<br /></span></p>
]]>
</description>
</item>
</channel>
</rss>