<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[我们的生活充满阳光 - 技术文章]]></title>
<link>http://www.net0577.com/</link>
<description><![CDATA[让我们的生活充满阳光,心情永远愉快!]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog2 v2.4]]></copyright>
<webMaster><![CDATA[xdf1159@126.com(孤竹无名)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>我们的生活充满阳光</title> 
	<url>http://www.net0577.com/images/logos.gif</url> 
	<link>http://www.net0577.com/</link> 
	<description>我们的生活充满阳光</description> 
</image>

			<item>
			<link>http://www.net0577.com/default.asp?id=160</link>
			<title><![CDATA[Windows下apache限制ip并发数]]></title>
			<author>xdf1159@126.com(admin)</author>
			<category><![CDATA[技术文章]]></category>
			<pubDate>Wed,24 Feb 2010 14:47:35 +0800</pubDate>
			<guid>http://www.net0577.com/default.asp?id=160</guid>	
		<description><![CDATA[&nbsp;&nbsp;Apache最大的优点在于它是个模块化的程序，缺乏什么样的功能就可以单独开发相应的功能模块，然后加到Apache上就可以了.&nbsp;^_^<br/>&nbsp;&nbsp;目前很多人都用多线程下载工具下载，导致服务器负载很大，于是便想到了限制IP的连接数，(如果Apache是2.x版本的，那么从<a href="http://dominia.org/djao/limitipconn2.html" target="_blank">http://dominia.org/djao/limitipconn2.html</a>下载Linux的或者Windows的)&nbsp;如果是windows服务器的，把下载的的mod_limitipconn.dll放到Apache的安装目录的modules目录下；<br/>&nbsp;&nbsp;然后修改Apache的配置文件httpd.conf，这里不管Linux还是Windows都是一样的，如果是2.0首先找到httpd.conf中的LoadModule&nbsp;status_module&nbsp;modules/mod_status.so，把这句话前面的#去掉，然后加入如下内容<br/><br/>ExtendedStatus&nbsp;On<br/>LoadModule&nbsp;limitipconn_module&nbsp;modules\mod_limitipconn.dll<br/>&lt;IfModule&nbsp;mod_limitipconn.c&gt;<br/>&nbsp;&lt;Location&nbsp;/resource&gt;<br/>&nbsp;MaxConnPerIP&nbsp;50<br/>&nbsp;NoIPLimit&nbsp;image/*<br/>&nbsp;&lt;/Location&gt;<br/>&nbsp;&lt;/IfModule&gt;<br/>里面/resource是制定限定IP的目录，然后MaxConnPerIP是限定每个IP的并发连接数，NoIPLimit&nbsp;image/*&nbsp;是排除resource下不限定的目录。<br/><br/>重启apache,哈哈大功告成~<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.net0577.com/default.asp?id=159</link>
			<title><![CDATA[解决IE7产生空白页的问题 ]]></title>
			<author>xdf1159@126.com(admin)</author>
			<category><![CDATA[技术文章]]></category>
			<pubDate>Wed,23 Sep 2009 10:48:53 +0800</pubDate>
			<guid>http://www.net0577.com/default.asp?id=159</guid>	
		<description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;在windows操作系统上使用IE作为浏览器时。常常会发生这样的问题：在浏览使用UTF-8编码的网页时，浏览器无法自动侦测（即没有设定&nbsp;“自动选择”编码格式时）该页面所用的编码。即使网页已经声明过编码格式：charset=UTF-8，由此造成某些含有中文UTF-8编码的页面产生空白输出。<br/>&nbsp;&nbsp;&nbsp;&nbsp;如果使用的是Mozilla、Mozilla&nbsp;Firefox、Sarafi的浏览器就不会造成这个问题。这是由于IE解析网页编码时以HTML内的标签优先，而后才是HTTP&nbsp;header内的讯息；而mozilla系列的浏览器则刚刚相反。<br/>&nbsp;&nbsp;&nbsp;&nbsp;由于UTF-8为3个字节表示一个汉字，而普通的GB2312或BIG5是两个。页面输出时，由于上述原因，使浏览器解析、输出&lt;title&gt;&lt;/title&gt;的内容时，如果在&lt;/title&gt;前有奇数个全角字符时，IE就会把UTF-8当作两个字节解析,这时会出现半个汉字的情况，该半个汉字会和&lt;/title&gt;标签结合成一个乱码字，导致IE无法读完title部分，使整个页面为空白输出。这个时候如果察看源文件的话，会发现实际上整个页面全部已经输出了。因此最简单的解决办法是把字符定义<br/>&lt;meta&nbsp;http-equiv=”Content-Type”&nbsp;content=”text/html;&nbsp;charset=UTF-8″&gt;放在&lt;title&gt;&lt;/title&gt;之前。]]></description>
		</item>
		
			<item>
			<link>http://www.net0577.com/default.asp?id=158</link>
			<title><![CDATA[svn for windows 的分枝与标记及web数据同步]]></title>
			<author>xdf1159@126.com(admin)</author>
			<category><![CDATA[技术文章]]></category>
			<pubDate>Thu,27 Aug 2009 13:57:33 +0800</pubDate>
			<guid>http://www.net0577.com/default.asp?id=158</guid>	
		<description><![CDATA[今天终于把&nbsp;SVN&nbsp;在&nbsp;windows&nbsp;下的分枝与标记及web服务器数据和版本库同步的问题解决了,高兴!现在将这一个过程记录下来.<br/>1.使用&nbsp;TSVN&nbsp;建立一个新的版本库&nbsp;如在:E:\svn\zs这个文件夹下建立.<br/>2.创建受版本库控制的文件:<br/>&nbsp;&nbsp;&nbsp;1).如在E:\server\下建立一个文件夹www.<br/>&nbsp;&nbsp;&nbsp;2).在www文件夹里检出前面建立的新版本库.<br/>&nbsp;&nbsp;&nbsp;3).进入www文件夹再建立一个名为rc的文件夹.<br/>&nbsp;&nbsp;&nbsp;4).将rc文件夹提交到版本库.<br/>&nbsp;&nbsp;&nbsp;5).使用TSVN在rc文件夹上建立分枝与标记,提示如:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;从工作副本URL(F)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://192.168.0.2:88/zs/rc" target="_blank">http://192.168.0.2:88/zs/rc</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;至URL(T)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://192.168.1.30:81/zs/rc2" target="_blank">http://192.168.1.30:81/zs/rc2</a>&nbsp;&nbsp;&nbsp;&nbsp;#这个地方就是你要建立分枝与标记名称及路径<br/>&nbsp;&nbsp;&nbsp;&nbsp;6).在工作副本复制完成后,更新,这时候E:\server\www\将自动多出一个rc2.&nbsp;&nbsp;&nbsp;#这一步很重要,我研究下来一直都是这里搞错了.<br/>&nbsp;&nbsp;&nbsp;7).分枝与标记正式建立完成了.<br/><br/>以上步骤都是在服务器上完成的.<br/><br/>分枝与标记是正式建立了,可是在本地检出文件,提交文件都是记录到服务器的版本库里,也就是说服务器的E:\server\www\这个存放真正网页的文件没有变化.<br/>如果要实现这个服务器web数据和服务器版本库同步必须要在版本库E:\svn\zs\hooks\下建立钩子.<br/>&nbsp;&nbsp;&nbsp;1.在E:\svn\zs\hooks\下,建立post-commit.bat这样的一个文件.<br/>&nbsp;&nbsp;&nbsp;2.在post-commit.bat里写如下:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@echo&nbsp;off<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;svn.exe&nbsp;up&#100;ate&nbsp;--username&nbsp;用户名&nbsp;--password&nbsp;密码&nbsp;E:/server/www/<br/>&nbsp;&nbsp;3.OK了,不信你试试.<br/><br/><br/>关于如何建立在windows上建立SVN+Apache&nbsp;&nbsp;这里就不重复了,网络多的是.]]></description>
		</item>
		
			<item>
			<link>http://www.net0577.com/default.asp?id=157</link>
			<title><![CDATA[大型网站架构演变和知识体系]]></title>
			<author>xdf1159@126.com(admin)</author>
			<category><![CDATA[技术文章]]></category>
			<pubDate>Thu,09 Apr 2009 13:56:53 +0800</pubDate>
			<guid>http://www.net0577.com/default.asp?id=157</guid>	
		<description><![CDATA[前也有一些介绍大型网站架构演变的文章，例如LiveJournal<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">的、</span><wbr></wbr>ebay<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">的，都是非常值得参考的，不过感觉他们讲的更多的是每次演变的结果，而没有很详细的讲为什么需要做这样的演变，再加上近来感觉有不少同学都很难明白为什么一个网站需要那么复杂的技术，于是有了写这篇文章的想法，在这篇文章中</span><wbr></wbr><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">将阐述一个普通的网站发展成大型网站过程中的一种较为典型的架构演变历程和所需掌握的知识体系，希望能给想从事互联网行业的同学一点初步的概念，</span><wbr></wbr>:)<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">，文中的不对之处也请各位多给点建议，让本文真正起到抛砖引玉的效果。</span><wbr></wbr><br /><br /><span style="FONT-WEIGHT: bold"><wbr></wbr><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'"><span style="LINE-HEIGHT: 1.3em"><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">架构演变第一步：物理分离</span><wbr></wbr>webserver<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">和数据库</span><wbr></wbr></span><wbr></wbr></span><wbr></wbr></span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">最开始，由于某些想法，于是在互联网上搭建了一个网站，这个时候甚至有可能主机都是租借的，但由于这篇文章我们只关注架构的演变历程，因此就假设这个时候</span><wbr></wbr><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">已经是托管了一台主机，并且有一定的带宽了，这个时候由于网站具备了一定的特色，吸引了部分人访问，逐渐你发现系统的压力越来越高，响应速度越来越慢，而这个时候比较明显的是数据库和应用互相影响，应用出问题了，数据库也很容易出现问题，而数据库出问题的时候，应用也容易出问题，于是进入了第一步演变阶段：将应用和数据库从物理上分离，变成了两台机器，这个时候技术上没有什么新的要求，但你发现确实起到效果了，系统又恢复到以前的响应速度了，并且支撑住了更高的流量，并且不会因为数据库和应用形成互相的影响。</span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">看看这一步完成后系统的图示：</span><wbr></wbr><br /><wbr></wbr><a href="http://www.blogjava.net/images/blogjava_net/bluedavy/arch/1.PNG" target="_blank" eventslistuid="e3"><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; WIDTH: 195px; HEIGHT: 99px; BORDER-RIGHT-WIDTH: 0px" src="http://www.blogjava.net/images/blogjava_net/bluedavy/arch/1.PNG" alt="" /></a><wbr></wbr><br /><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">这一步涉及到了这些知识体系：</span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">这一步架构演变对技术上的知识体系基本没有要求。</span><wbr></wbr><br /><br /><span style="FONT-WEIGHT: bold"><wbr></wbr><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'"><span style="LINE-HEIGHT: 1.3em">架构演变第二步：增加页面缓存</span><wbr></wbr></span><wbr></wbr></span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">好景不长，随着访问的人越来越多，你发现响应速度又开始变慢了，查找原因，发现是访问数据库的操作太多，导致数据连接竞争激烈，所以响应变慢，但数据库连</span><wbr></wbr><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">接又不能开太多，否则数据库机器压力会很高，因此考虑采用缓存机制来减少数据库连接资源的竞争和对数据库读的压力，这个时候首先也许会选择采用</span><wbr></wbr>squid <span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">等类似的机制来将系统中相对静态的页面（例如一两天才会有更新的页面）进行缓存（当然，也可以采用将页面静态化的方案），这样程序上可以不做修改，就能够</span><wbr></wbr><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">很好的减少对</span><wbr></wbr>webserver<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">的压力以及减少数据库连接资源的竞争，</span><wbr></wbr>OK<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">，于是开始采用</span><wbr></wbr>squid<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">来做相对静态的页面的缓存。</span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">看看这一步完成后系统的图示：</span><wbr></wbr><br /><wbr></wbr><a href="http://www.blogjava.net/images/blogjava_net/bluedavy/arch/2.PNG" target="_blank" eventslistuid="e4"><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; WIDTH: 195px; HEIGHT: 156px; BORDER-RIGHT-WIDTH: 0px" src="http://www.blogjava.net/images/blogjava_net/bluedavy/arch/2.PNG" alt="" /></a><wbr></wbr><br /><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">这一步涉及到了这些知识体系：</span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">前端页面缓存技术，例如</span><wbr></wbr>squid<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">，如想用好的话还得深入掌握下</span><wbr></wbr>squid<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">的实现方式以及缓存的失效算法等。</span><wbr></wbr><br /><br /><span style="FONT-WEIGHT: bold"><wbr></wbr><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'"><span style="LINE-HEIGHT: 1.3em">架构演变第三步：增加页面片段缓存</span><wbr></wbr></span><wbr></wbr></span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">增加了</span><wbr></wbr>squid<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">做缓存后，整体系统的速度确实是提升了，</span><wbr></wbr>webserver<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">的压力也开始下降了，但随着访问量的增加，发现系统又开始变的有些慢了，在尝</span><wbr></wbr> <span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">到了</span><wbr></wbr>squid<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">之类的动态缓存带来的好处后，开始想能不能让现在那些动态页面里相对静态的部分也缓存起来呢，因此考虑采用类似</span><wbr></wbr>ESI<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">之类的页面片段缓存策略，</span><wbr></wbr>OK<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">，于是开始采用</span><wbr></wbr>ESI<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">来做动态页面中相对静态的片段部分的缓存。</span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">看看这一步完成后系统的图示：</span><wbr></wbr><br /><wbr></wbr><a href="http://www.blogjava.net/images/blogjava_net/bluedavy/arch/3.PNG" target="_blank" eventslistuid="e5"><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; WIDTH: 337px; HEIGHT: 235px; BORDER-RIGHT-WIDTH: 0px" src="http://www.blogjava.net/images/blogjava_net/bluedavy/arch/3.PNG" alt="" /></a><wbr></wbr><br /><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">这一步涉及到了这些知识体系：</span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">页面片段缓存技术，例如</span><wbr></wbr>ESI<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">等，想用好的话同样需要掌握</span><wbr></wbr>ESI<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">的实现方式等；</span><wbr></wbr><br /><br /><span style="FONT-WEIGHT: bold"><wbr></wbr><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'"><span style="LINE-HEIGHT: 1.3em">架构演变第四步：数据缓存</span><wbr></wbr></span><wbr></wbr></span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">在采用</span><wbr></wbr>ESI<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">之类的技术再次提高了系统的缓存效果后，系统的压力确实进一步降低了，但同样，随着访问量的增加，系统还是开始变慢，经过查找，可能会发现系</span><wbr></wbr><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">统中存在一些重复获取数据信息的地方，像获取用户信息等，这个时候开始考虑是不是可以将这些数据信息也缓存起来呢，于是将这些数据缓存到本地内存，改变完毕后，完全符合预期，系统的响应速度又恢复了，数据库的压力也再度降低了不少。</span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">看看这一步完成后系统的图示：</span><wbr></wbr><br /><wbr></wbr><a href="http://www.blogjava.net/images/blogjava_net/bluedavy/arch/4.PNG" target="_blank" eventslistuid="e6"><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; WIDTH: 341px; HEIGHT: 258px; BORDER-RIGHT-WIDTH: 0px" src="http://www.blogjava.net/images/blogjava_net/bluedavy/arch/4.PNG" alt="" /></a><wbr></wbr><br /><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">这一步涉及到了这些知识体系：</span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">缓存技术，包括像</span><wbr></wbr>Map<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">数据结构、缓存算法、所选用的框架本身的实现机制等。</span><wbr></wbr><br /><br /><span style="FONT-WEIGHT: bold"><wbr></wbr><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'"><span style="LINE-HEIGHT: 1.3em"><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">架构演变第五步：</span><wbr></wbr> <span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">增加</span><wbr></wbr>webserver</span><wbr></wbr></span><wbr></wbr></span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">好景不长，发现随着系统访问量的再度增加，</span><wbr></wbr>webserver<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">机器的压力在高峰期会上升到比较高，这个时候开始考虑增加一台</span><wbr></wbr>webserver<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">，这也是为了同时解决可用性的问题，避免单台的</span><wbr></wbr>webserver down<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">机的话就没法使用了，在做了这些考虑后，决定增加一台</span><wbr></wbr>webserver<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">，增加一台</span><wbr></wbr>webserver<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">时，会碰到一些问题，典型的有：</span><wbr></wbr><br />1<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">、如何让访问分配到这两台机器上，这个时候通常会考虑的方案是</span><wbr></wbr>Apache<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">自带的负载均衡方案，或</span><wbr></wbr>LVS<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">这类的软件负载均衡方案；</span><wbr></wbr><br />2<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">、如何保持状态信息的同步，例如用户</span><wbr></wbr>session<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">等，这个时候会考虑的方案有写入数据库、写入存储、</span><wbr></wbr>cookie<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">或同步</span><wbr></wbr>session<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">信息等机制等；</span><wbr></wbr><br />3<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">、如何保持数据缓存信息的同步，例如之前缓存的用户数据等，这个时候通常会考虑的机制有缓存同步或分布式缓存；</span><wbr></wbr><br />4<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">、如何让上传文件这些类似的功能继续正常，这个时候通常会考虑的机制是使用共享文件系统或存储等；</span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">在解决了这些问题后，终于是把</span><wbr></wbr>webserver<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">增加为了两台，系统终于是又恢复到了以往的速度。</span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">看看这一步完成后系统的图示：</span><wbr></wbr><br /><wbr></wbr><a href="http://www.blogjava.net/images/blogjava_net/bluedavy/arch/5.PNG" target="_blank" eventslistuid="e7"><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; WIDTH: 341px; HEIGHT: 244px; BORDER-RIGHT-WIDTH: 0px" src="http://www.blogjava.net/images/blogjava_net/bluedavy/arch/5.PNG" alt="" /></a><wbr></wbr><br /><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">这一步涉及到了这些知识体系：</span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">负载均衡技术（包括但不限于硬件负载均衡、软件负载均衡、负载算法、</span><wbr></wbr>linux<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">转发协议、所选用的技术的实现细节等）、主备技术（包括但不限于</span><wbr></wbr>ARP<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">欺骗、</span><wbr></wbr>linuxheart-beat<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">等）、状态信息或缓存同步技术（包括但不限于</span><wbr></wbr>Cookie<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">技术、</span><wbr></wbr>UDP<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">协议、状态信息广播、所选用的缓存同步技术的实现细节等）、共享文件技术（包括但不限于</span><wbr></wbr>NFS<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">等）、存储技术（包括但不限于存储设备等）。</span><wbr></wbr><br /><br /><span style="FONT-WEIGHT: bold"><wbr></wbr><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'"><span style="LINE-HEIGHT: 1.3em">架构演变第六步：分库</span><wbr></wbr></span><wbr></wbr></span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">享受了一段时间的系统访问量高速增长的幸福后，发现系统又开始变慢了，这次又是什么状况呢，经过查找，发现数据库写入、更新的这些操作的部分数据库连接的</span><wbr></wbr><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">资源竞争非常激烈，导致了系统变慢，这下怎么办呢，此时可选的方案有数据库集群和分库策略，集群方面像有些数据库支持的并不是很好，因此分库会成为比较普遍的策略，分库也就意味着要对原有程序进行修改，一通修改实现分库后，不错，目标达到了，系统恢复甚至速度比以前还快了。</span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">看看这一步完成后系统的图示：</span><wbr></wbr><br /><wbr></wbr><a href="http://www.blogjava.net/images/blogjava_net/bluedavy/arch/6.PNG" target="_blank" eventslistuid="e8"><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; WIDTH: 341px; HEIGHT: 243px; BORDER-RIGHT-WIDTH: 0px" src="http://www.blogjava.net/images/blogjava_net/bluedavy/arch/6.PNG" alt="" /></a><wbr></wbr><br /><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">这一步涉及到了这些知识体系：</span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">这一步更多的是需要从业务上做合理的划分，以实现分库，具体技术细节上没有其他的要求；</span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">但同时随着数据量的增大和分库的进行，在数据库的设计、调优以及维护上需要做的更好，因此对这些方面的技术还是提出了很高的要求的。</span><wbr></wbr><br /><br /><span style="FONT-WEIGHT: bold"><wbr></wbr><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'"><span style="LINE-HEIGHT: 1.3em"><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">架构演变第七步：分表、</span><wbr></wbr>DAL<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">和分布式缓存</span><wbr></wbr></span><wbr></wbr></span><wbr></wbr></span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">随着系统的不断运行，数据量开始大幅度增长，这个时候发现分库后查询仍然会有些慢，于是按照分库的思想开始做分表的工作，当然，这不可避免的会需要对程序</span><wbr></wbr><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">进行一些修改，也许在这个时候就会发现应用自己要关心分库分表的规则等，还是有些复杂的，于是萌生能否增加一个通用的框架来实现分库分表的数据访问，这个在</span><wbr></wbr>ebay<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">的架构中对应的就是</span><wbr></wbr>DAL<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">，这个演变的过程相对而言需要花费较长的时间，当然，也有可能这个通用的框架会等到分表做完后才开始做，同时，在这个阶段可</span><wbr></wbr><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">能会发现之前的缓存同步方案出现问题，因为数据量太大，导致现在不太可能将缓存存在本地，然后同步的方式，需要采用分布式缓存方案了，于是，又是一通考察和折磨，终于是将大量的数据缓存转移到分布式缓存上了。</span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">看看这一步完成后系统的图示：</span><wbr></wbr><br /><wbr></wbr><a href="http://www.blogjava.net/images/blogjava_net/bluedavy/arch/7.PNG" target="_blank" eventslistuid="e9"><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; WIDTH: 342px; HEIGHT: 439px; BORDER-RIGHT-WIDTH: 0px" src="http://www.blogjava.net/images/blogjava_net/bluedavy/arch/7.PNG" alt="" /></a><wbr></wbr><br /><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">这一步涉及到了这些知识体系：</span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">分表更多的同样是业务上的划分，技术上涉及到的会有动态</span><wbr></wbr>hash<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">算法、</span><wbr></wbr>consistenthash<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">算法等；</span><wbr></wbr><br />DAL<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">涉及到比较多的复杂技术，例如数据库连接的管理（超时、异常）、数据库操作的控制（超时、异常）、分库分表规则的封装等；</span><wbr></wbr><br /><br /><span style="FONT-WEIGHT: bold"><wbr></wbr><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'"><span style="LINE-HEIGHT: 1.3em"><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">架构演变第八步：增加更多的</span><wbr></wbr>webserver</span><wbr></wbr></span><wbr></wbr></span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">在做完分库分表这些工作后，数据库上的压力已经降到比较低了，又开始过着每天看着访问量暴增的幸福生活了，突然有一天，发现系统的访问又开始有变慢的趋势</span><wbr></wbr><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">了，这个时候首先查看数据库，压力一切正常，之后查看</span><wbr></wbr>webserver<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">，发现</span><wbr></wbr>apache<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">阻塞了很多的请求，而应用服务器对每个请求也是比较快的，看来</span><wbr></wbr> <span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">是请求数太高导致需要排队等待，响应速度变慢，这还好办，一般来说，这个时候也会有些钱了，于是添加一些</span><wbr></wbr>webserver<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">服务器，在这个添加</span><wbr></wbr> webserver<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">服务器的过程，有可能会出现几种挑战：</span><wbr></wbr><br />1<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">、</span><wbr></wbr>Apache<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">的软负载或</span><wbr></wbr>LVS<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">软负载等无法承担巨大的</span><wbr></wbr>web<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">访问量（请求连接数、网络流量等）的调度了，这个时候如果经费允许的话，会采取的方案是购</span><wbr></wbr> <span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">买硬件负载，例如</span><wbr></wbr>F5<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">、</span><wbr></wbr>Netsclar<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">、</span><wbr></wbr>Athelon<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">之类的，如经费不允许的话，会采取的方案是将应用从逻辑上做一定的分类，然后分散到不同的软负载集群中；</span><wbr></wbr><br />2<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">、原有的一些状态信息同步、文件共享等方案可能会出现瓶颈，需要进行改进，也许这个时候会根据情况编写符合网站业务需求的分布式文件系统等；</span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">在做完这些工作后，开始进入一个看似完美的无限伸缩的时代，当网站流量增加时，应对的解决方案就是不断的添加</span><wbr></wbr>webserver<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">。</span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">看看这一步完成后系统的图示：</span><wbr></wbr><br /><wbr></wbr><a href="http://www.blogjava.net/images/blogjava_net/bluedavy/arch/8.PNG" target="_blank" eventslistuid="e10"><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; WIDTH: 466px; HEIGHT: 441px; BORDER-RIGHT-WIDTH: 0px" src="http://www.blogjava.net/images/blogjava_net/bluedavy/arch/8.PNG" alt="" /></a><wbr></wbr><br /><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">这一步涉及到了这些知识体系：</span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">到了这一步，随着机器数的不断增长、数据量的不断增长和对系统可用性的要求越来越高，这个时候要求对所采用的技术都要有更为深入的理解，并需要根据网站的需求来做更加定制性质的产品。</span><wbr></wbr><br /><br /><span style="FONT-WEIGHT: bold"><wbr></wbr><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'"><span style="LINE-HEIGHT: 1.3em">架构演变第九步：数据读写分离和廉价存储方案</span><wbr></wbr></span><wbr></wbr></span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">突然有一天，发现这个完美的时代也要结束了，数据库的噩梦又一次出现在眼前了，由于添加的</span><wbr></wbr>webserver<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">太多了，导致数据库连接的资源还是不够用，而这个时候又已经分库分表了，开始分析数据库的压力状况，可能会发现数据库的读写比很高，这个时候通常会想到数据读写分离的方案，当然，这个方案要实现并不</span><wbr></wbr><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">容易，另外，可能会发现一些数据存储在数据库上有些浪费，或者说过于占用数据库资源，因此在这个阶段可能会形成的架构演变是实现数据读写分离，同时编写一些更为廉价的存储方案，例如</span><wbr></wbr>BigTable<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">这种。</span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">看看这一步完成后系统的图示：</span><wbr></wbr><br /><wbr></wbr><a href="http://www.blogjava.net/images/blogjava_net/bluedavy/arch/9.PNG" target="_blank" eventslistuid="e11"><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; WIDTH: 555px; HEIGHT: 398px; BORDER-RIGHT-WIDTH: 0px" src="http://www.blogjava.net/images/blogjava_net/bluedavy/arch/9.PNG" alt="" /></a><wbr></wbr><br /><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">这一步涉及到了这些知识体系：</span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">数据读写分离要求对数据库的复制、</span><wbr></wbr>standby<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">等策略有深入的掌握和理解，同时会要求具备自行实现的技术；</span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">廉价存储方案要求对</span><wbr></wbr>OS<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">的文件存储有深入的掌握和理解，同时要求对采用的语言在文件这块的实现有深入的掌握。</span><wbr></wbr><br /><br /><span style="FONT-WEIGHT: bold"><wbr></wbr><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'"><span style="LINE-HEIGHT: 1.3em">架构演变第十步：进入大型分布式应用时代和廉价服务器群梦想时代</span><wbr></wbr></span><wbr></wbr></span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">经过上面这个漫长而痛苦的过程，终于是再度迎来了完美的时代，不断的增加</span><wbr></wbr>webserver<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">就可以支撑越来越高的访问量了，对于大型网站而言，人气的重要毋</span><wbr></wbr><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">庸置疑，随着人气的越来越高，各种各样的功能需求也开始爆发性的增长，这个时候突然发现，原来部署在</span><wbr></wbr>webserver<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">上的那个</span><wbr></wbr>web<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">应用已经非常庞大</span><wbr></wbr> <span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">了，当多个团队都开始对其进行改动时，可真是相当的不方便，复用性也相当糟糕，基本是每个团队都做了或多或少重复的事情，而且部署和维护也是相当的麻烦，</span><wbr></wbr><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">因为庞大的应用包在</span><wbr></wbr>N<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">台机器上复制、启动都需要耗费不少的时间，出问题的时候也不是很好查，另外一个更糟糕的状况是很有可能会出现某个应用上的</span><wbr></wbr>bug<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">就导</span><wbr></wbr> <span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">致了全站都不可用，还有其他的像调优不好操作（因为机器上部署的应用什么都要做，根本就无法进行针对性的调优）等因素，根据这样的分析，开始痛下决心，将</span><wbr></wbr><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">系统根据职责进行拆分，于是一个大型的分布式应用就诞生了，通常，这个步骤需要耗费相当长的时间，因为会碰到很多的挑战：</span><wbr></wbr><br />1<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">、拆成分布式后需要提供一个高性能、稳定的通信框架，并且需要支持多种不同的通信和远程调用方式；</span><wbr></wbr><br />2<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">、将一个庞大的应用拆分需要耗费很长的时间，需要进行业务的整理和系统依赖关系的控制等；</span><wbr></wbr><br />3<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">、如何运维（依赖管理、运行状况管理、错误追踪、调优、监控和报警等）好这个庞大的分布式应用。</span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">经过这一步，差不多系统的架构进入相对稳定的阶段，同时也能开始采用大量的廉价机器来支撑着巨大的访问量和数据量，结合这套架构以及这么多次演变过程吸取的经验来采用其他各种各样的方法来支撑着越来越高的访问量。</span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">看看这一步完成后系统的图示：</span><wbr></wbr><br /><wbr></wbr><a href="http://www.blogjava.net/images/blogjava_net/bluedavy/arch/10.PNG" target="_blank" eventslistuid="e12"><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; WIDTH: 554px; HEIGHT: 431px; BORDER-RIGHT-WIDTH: 0px" src="http://www.blogjava.net/images/blogjava_net/bluedavy/arch/10.PNG" alt="" /></a><wbr></wbr><br /><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">这一步涉及到了这些知识体系：</span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">这一步涉及的知识体系非常的多，要求对通信、远程调用、消息机制等有深入的理解和掌握，要求的都是从理论、硬件级、操作系统级以及所采用的语言的实现都有清楚的理解。</span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">运维这块涉及的知识体系也非常的多，多数情况下需要掌握分布式并行计算、报表、监控技术以及规则策略等等。</span><wbr></wbr><br /><span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">说起来确实不怎么费力，整个网站架构的经典演变过程都和上面比较的类似，当然，每步采取的方案，演变的步骤有可能有不同，另外，由于网站的业务不同，会有不同的专业技术的需求，这篇</span><wbr></wbr>blog<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">更多的是从架构的角度来讲解演变的过程，当然，其中还有很多的技术也未在此提及，像数据库集群、数据挖掘、搜索等，但在真实的演变过程中还会借助像提升硬件配置、网络环境、改造操作系统、</span><wbr></wbr>CDN<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">镜像等来支撑更大的流量，因此在真实的发展过程中还会有很多的不同，另外一个大型网站要做到的远远不仅仅上面这些，还有像安全、运维、运营、服务、存储等，要做好一个大型的网站真的很不容易，写这篇文章更多的是希望能够引出更多大型网站架构演变的介绍，</span><wbr></wbr>:)<span style="LINE-HEIGHT: 1.3em; FONT-FAMILY: '宋体'">。</span><wbr></wbr><br />]]></description>
		</item>
		
			<item>
			<link>http://www.net0577.com/default.asp?id=156</link>
			<title><![CDATA[完美解决Server Application Error的错误]]></title>
			<author>xdf1159@126.com(admin)</author>
			<category><![CDATA[技术文章]]></category>
			<pubDate>Fri,16 Jan 2009 12:00:28 +0800</pubDate>
			<guid>http://www.net0577.com/default.asp?id=156</guid>	
		<description><![CDATA[解决办法：&nbsp;<br/>[1]：&nbsp;<br/>检查你的DTC服务（全名：Distributed&nbsp;Transaction&nbsp;Coordinator）是否可以正常启动，&nbsp;<br/><br/>如果正常的话请你跳过此步骤；如果出错，无法正常启动，请在开始菜单的运行中&nbsp;运行：msdtc&nbsp;-resetlog&nbsp;以创建日志文件。重起机器，检查IIS是否可以正常使用，若不行继续。&nbsp;<br/><br/>[2]：&nbsp;<br/>在CMD下执行以下命令：&nbsp;<br/>cd&nbsp;%windir%\system32\inetsrv&nbsp;<br/><br/>rundll32&nbsp;wamreg.dll,&nbsp;Cr&#101;ateIISPackage&nbsp;<br/><br/>regsvr32&nbsp;asptxn.dll&nbsp;<br/><br/>(到这里我就可以用了，不用重启的)&nbsp;<br/><br/>OK,ASP页面一切正常了@!~~~^_^&nbsp;]]></description>
		</item>
		
			<item>
			<link>http://www.net0577.com/default.asp?id=155</link>
			<title><![CDATA[mysql常用命令3]]></title>
			<author>xdf1159@126.com(admin)</author>
			<category><![CDATA[技术文章]]></category>
			<pubDate>Thu,04 Dec 2008 10:09:01 +0800</pubDate>
			<guid>http://www.net0577.com/default.asp?id=155</guid>	
		<description><![CDATA[1:使用SHOW语句找出在服务器上当前存在什么数据库：<br/>mysql&gt;&nbsp;SHOW&nbsp;DATABASES;<br/>2:2、创建一个数据库MYSQLDATA<br/>mysql&gt;&nbsp;Cr&#101;ate&nbsp;DATABASE&nbsp;MYSQLDATA;<br/>3:选择你所创建的数据库<br/>mysql&gt;&nbsp;USE&nbsp;MYSQLDATA;&nbsp;(按回车键出现Database&nbsp;changed&nbsp;时说明操作成功！)<br/>4:查看现在的数据库中存在什么表<br/>mysql&gt;&nbsp;SHOW&nbsp;TABLES;<br/>5:创建一个数据库表<br/>mysql&gt;&nbsp;Cr&#101;ate&nbsp;TABLE&nbsp;MYTABLE&nbsp;(name&nbsp;VARCHAR(20),&nbsp;sex&nbsp;CHAR(1));<br/>6:显示表的结构：<br/>mysql&gt;&nbsp;DESCRIBE&nbsp;MYTABLE;<br/>7:往表中加入记录<br/>mysql&gt;&nbsp;ins&#101;rt&nbsp;into&nbsp;MYTABLE&nbsp;values&nbsp;(&#34;hyq&#34;,&#34;M&#34;);<br/>8:用文本方式将数据装入数据库表中（例如D:/mysql.txt）<br/>mysql&gt;&nbsp;LOAD&nbsp;DATA&nbsp;LOCAL&nbsp;INFILE&nbsp;&#34;D:/mysql.txt&#34;&nbsp;INTO&nbsp;TABLE&nbsp;MYTABLE;<br/>9:导入.sql文件命令（例如D:/mysql.sql）<br/>mysql&gt;use&nbsp;database;<br/>mysql&gt;source&nbsp;d:/mysql.sql;<br/>10:删除表<br/>mysql&gt;dro&#112;&nbsp;TABLE&nbsp;MYTABLE;<br/>11:清空表<br/>mysql&gt;del&#101;te&nbsp;from&nbsp;MYTABLE;<br/>12:更新表中数据<br/>mysql&gt;up&#100;ate&nbsp;MYTABLE&nbsp;set&nbsp;sex=&#34;f&#34;&nbsp;wh&#101;re&nbsp;name=hyq;<br/><br/><br/>以下是无意中在网络看到的使用MySql的管理心得,<br/>摘自:<a href="http://www1.xjtusky.com/article/htmldata/2004_12/3/57/article_1060_1.html" target="_blank">http://www1.xjtusky.com/article/htmldata/2004_12/3/57/article_1060_1.html</a>&nbsp;<br/>&nbsp;&nbsp;<br/>在windows中MySql以服务形式存在，在使用前应确保此服务已经启动，未启动可用net&nbsp;start&nbsp;mysql命令启动。而Linux中启动时可用“/etc/rc.d/init.d/mysqld&nbsp;start&#34;命令，注意启动者应具有管理员权限。<br/>刚安装好的MySql包含一个含空密码的root帐户和一个匿名帐户，这是很大的安全隐患，对于一些重要的应用我们应将安全性尽可能提高，在这里应把匿名帐户删除、&nbsp;root帐户设置密码，可用如下命令进行：<br/>use&nbsp;mysql;<br/>del&#101;te&nbsp;from&nbsp;User&nbsp;wh&#101;re&nbsp;User=&#34;&#34;;<br/>up&#100;ate&nbsp;User&nbsp;set&nbsp;Password=PASSWORD(newpassword)&nbsp;wh&#101;re&nbsp;User=root;<br/>如果要对用户所用的登录终端进行限制，可以更新User表中相应用户的Host字段，在进行了以上更改后应重新启动数据库服务，此时登录时可用如下类似命令：<br/>mysql&nbsp;-uroot&nbsp;-p;<br/>mysql&nbsp;-uroot&nbsp;-pnewpassword;<br/>mysql&nbsp;mydb&nbsp;-uroot&nbsp;-p;<br/>mysql&nbsp;mydb&nbsp;-uroot&nbsp;-pnewpassword;<br/>上面命令参数是常用参数的一部分，详细情况可参考文档。此处的mydb是要登录的数据库的名称。<br/>在进行开发和实际应用中，用户不应该只用root用户进行连接数据库，虽然使用root用户进行测试时很方便，但会给系统带来重大安全隐患，也不利于管理技术的提高。我们给一个应用中使用的用户赋予最恰当的数据库权限。如一个只进行数据插入的用户不应赋予其删除数据的权限。MySql的用户管理是通过User表来实现的，添加新用户常用的方法有两个，一是在User表插入相应的数据行，同时设置相应的权限；二是通过GRANT命令创建具有某种权限的用户。其中GRANT的常用用法如下：<br/>grant&nbsp;all&nbsp;on&nbsp;mydb.*&nbsp;to&nbsp;NewUserName@HostName&nbsp;identified&nbsp;by&nbsp;&#34;password&#34;&nbsp;;<br/>grant&nbsp;usage&nbsp;on&nbsp;*.*&nbsp;to&nbsp;NewUserName@HostName&nbsp;identified&nbsp;by&nbsp;&#34;password&#34;;<br/>grant&nbsp;sel&#101;ct,ins&#101;rt,up&#100;ate&nbsp;on&nbsp;mydb.*&nbsp;to&nbsp;NewUserName@HostName&nbsp;identified&nbsp;by&nbsp;&#34;password&#34;;<br/>grant&nbsp;up&#100;ate,del&#101;te&nbsp;on&nbsp;mydb.TestTable&nbsp;to&nbsp;NewUserName@HostName&nbsp;identified&nbsp;by&nbsp;&#34;password&#34;;<br/>若要给此用户赋予他在相应对象上的权限的管理能力，可在GRANT后面添加WITH&nbsp;GRANT&nbsp;OPTION选项。而对于用插入User表添加的用户，Password字段应用PASSWORD&nbsp;函数进行更新加密，以防不轨之人窃看密码。对于那些已经不用的用户应给予清除，权限过界的用户应及时回收权限，回收权限可以通过更新User表相应字段，也可以使用REVOKE操作。<br/>下面给出本人从其它资料(www.cn-java.com)获得的对常用权限的解释：<br/>全局管理权限：<br/>FILE:&nbsp;在MySQL服务器上读写文件。<br/>PROCESS:&nbsp;显示或杀死属于其它用户的服务线程。<br/>RELOAD:&nbsp;重载访问控制表，刷新日志等。<br/>SHUTDOWN:&nbsp;关闭MySQL服务。<br/>数据库/数据表/数据列权限：<br/>Alt&#101;r:&nbsp;修改已存在的数据表(例如增加/删除列)和索引。<br/>Cr&#101;ate:&nbsp;建立新的数据库或数据表。<br/>Del&#101;te:&nbsp;删除表的记录。<br/>Dro&#112;:&nbsp;删除数据表或数据库。<br/>INDEX:&nbsp;建立或删除索引。<br/>Ins&#101;rt:&nbsp;增加表的记录。<br/>Sel&#101;ct:&nbsp;显示/搜索表的记录。<br/>Up&#100;ate:&nbsp;修改表中已存在的记录。<br/>特别的权限：<br/>ALL:&nbsp;允许做任何事(和root一样)。<br/>USAGE:&nbsp;只允许登录--其它什么也不允许做。<br/><br/><br/>常用MYSQL命令&nbsp;<br/>启动：net&nbsp;start&nbsp;mySql;&nbsp;<br/>　　进入：mysql&nbsp;-u&nbsp;root&nbsp;-p/mysql&nbsp;-h&nbsp;localhost&nbsp;-u&nbsp;root&nbsp;-p&nbsp;databaseName;&nbsp;<br/>　　列出数据库：show&nbsp;databases;&nbsp;<br/>　　选择数据库：use&nbsp;databaseName;&nbsp;<br/>　　列出表格：show&nbsp;tables；&nbsp;<br/>　　创建数据表：mysql&gt;&nbsp;Cr&#101;ate&nbsp;TABLE&nbsp;mytable&nbsp;(name&nbsp;VARCHAR(20),&nbsp;sex&nbsp;CHAR(1),&nbsp;<br/>-&gt;&nbsp;birth&nbsp;DATE,&nbsp;birthaddr&nbsp;VARCHAR(20));&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;显示表格列的属性：show&nbsp;columns&nbsp;from&nbsp;tableName；&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;修改表的结构：DESCRIBE&nbsp;mytable;&nbsp;<br/>　　建立数据库：source&nbsp;fileName.txt;&nbsp;<br/>　　匹配字符：可以用通配符_代表任何一个字符，％代表任何字符串;&nbsp;<br/>　　增加一个字段：alt&#101;r&nbsp;table&nbsp;tabelName&nbsp;add&nbsp;column&nbsp;fieldName&nbsp;dateType;&nbsp;<br/>　　增加多个字段：alt&#101;r&nbsp;table&nbsp;tabelName&nbsp;add&nbsp;column&nbsp;fieldName1&nbsp;dateType,add&nbsp;columns&nbsp;fieldName2&nbsp;dateType;&nbsp;<br/>　　多行命令输入:注意不能将单词断开;当插入或更改数据时，不能将字段的字符串展开到多行里，否则硬回车将被储存到数据中;&nbsp;<br/>　　增加一个管理员帐户：grant&nbsp;all&nbsp;on&nbsp;*.*&nbsp;to&nbsp;user@localhost&nbsp;identified&nbsp;by&nbsp;&#34;password&#34;;&nbsp;<br/>　　每条语句输入完毕后要在末尾填加分号&#39;;&#39;，或者填加&#39;\g&#39;也可以；&nbsp;<br/>　　查询时间：sel&#101;ct&nbsp;now();&nbsp;<br/>　　查询当前用户：sel&#101;ct&nbsp;user();&nbsp;<br/>　　查询数据库版本：sel&#101;ct&nbsp;version();&nbsp;<br/>　　查询当前使用的数据库：sel&#101;ct&nbsp;database();&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;用文本方式将数据装入一个数据库表&nbsp;<br/><br/>　　如果一条一条地输入，很麻烦。我们可以用文本文件的方式将所有记录加入你的数据库表中。创建一个文本文件“mysql.txt”，每行包含一个记录，用定位符(tab)把值分开，并且以在Cr&#101;ate&nbsp;TABLE语句中列出的列次序给出，例如：&nbsp;<br/><br/>abccs&nbsp;f&nbsp;1977-07-07&nbsp;china&nbsp;　&nbsp;mary&nbsp;f&nbsp;1978-12-12&nbsp;usa&nbsp;tom&nbsp;m&nbsp;1970-09-02&nbsp;usa&nbsp;<br/><br/><br/>　　使用下面命令将文本文件“mytable.txt”装载到mytable表中:mysql&gt;&nbsp;LOAD&nbsp;DATA&nbsp;LOCAL&nbsp;INFILE&nbsp;&#34;mytable.txt&#34;&nbsp;INTO&nbsp;TABLE&nbsp;pet;&nbsp;<br/><br/>　　再使用如下命令看看是否已将数据输入到数据库表中：mysql&gt;&nbsp;sel&#101;ct&nbsp;*&nbsp;from&nbsp;mytable;&nbsp;<br/>(e129)&nbsp;　　&nbsp;<br/>　　1、删除student_course数据库中的students数据表：&nbsp;<br/>　　rm&nbsp;-f&nbsp;student_course/students.*&nbsp;<br/>　　&nbsp;<br/>　　2、备份数据库：(将数据库test备份)&nbsp;<br/>　　mysqldump&nbsp;-u&nbsp;root&nbsp;-p&nbsp;test&gt;c:\test.txt&nbsp;<br/>　　备份表格：(备份test数据库下的mytable表格)&nbsp;<br/>　　mysqldump&nbsp;-u&nbsp;root&nbsp;-p&nbsp;test&nbsp;mytable&gt;c:\test.txt&nbsp;<br/>　　将备份数据导入到数据库：(导回test数据库)&nbsp;<br/>　　mysql&nbsp;-u&nbsp;root&nbsp;-p&nbsp;test&lt;c:\test.txt&nbsp;<br/>　　&nbsp;<br/>　　3、创建临时表：(建立临时表zengchao)&nbsp;<br/>　　cr&#101;ate&nbsp;temporary&nbsp;table&nbsp;zengchao(name&nbsp;varchar(10));&nbsp;<br/>　　&nbsp;<br/>　　4、创建表是先判断表是否存在&nbsp;<br/>　　cr&#101;ate&nbsp;table&nbsp;if&nbsp;not&nbsp;exists&nbsp;students(……);&nbsp;<br/>　　&nbsp;<br/>　　5、从已经有的表中复制表的结构&nbsp;<br/>　　cr&#101;ate&nbsp;table&nbsp;table2&nbsp;sel&#101;ct&nbsp;*&nbsp;from&nbsp;table1&nbsp;wh&#101;re&nbsp;1&lt;&gt;1;&nbsp;<br/>　　&nbsp;<br/>　　6、复制表&nbsp;<br/>　　cr&#101;ate&nbsp;table&nbsp;table2&nbsp;sel&#101;ct&nbsp;*&nbsp;from&nbsp;table1;&nbsp;<br/>　　&nbsp;<br/>　　7、对表重新命名&nbsp;<br/>　　alt&#101;r&nbsp;table&nbsp;table1&nbsp;rename&nbsp;as&nbsp;table2;&nbsp;<br/>　　&nbsp;<br/>　　8、修改列的类型&nbsp;<br/>　　alt&#101;r&nbsp;table&nbsp;table1&nbsp;modify&nbsp;id&nbsp;int&nbsp;unsigned;//修改列id的类型为int&nbsp;unsigned&nbsp;<br/>　　alt&#101;r&nbsp;table&nbsp;table1&nbsp;change&nbsp;id&nbsp;sid&nbsp;int&nbsp;unsigned;//修改列id的名字为sid，而且把属性修改为int&nbsp;unsigned&nbsp;<br/>　　&nbsp;<br/>　　9、创建索引&nbsp;<br/>　　alt&#101;r&nbsp;table&nbsp;table1&nbsp;add&nbsp;index&nbsp;ind_id&nbsp;(id);&nbsp;<br/>　　cr&#101;ate&nbsp;index&nbsp;ind_id&nbsp;on&nbsp;table1&nbsp;(id);&nbsp;<br/>　　cr&#101;ate&nbsp;unique&nbsp;index&nbsp;ind_id&nbsp;on&nbsp;table1&nbsp;(id);//建立唯一性索引&nbsp;<br/>　　&nbsp;<br/>　　10、删除索引&nbsp;<br/>　　dro&#112;&nbsp;index&nbsp;idx_id&nbsp;on&nbsp;table1;&nbsp;<br/>　　alt&#101;r&nbsp;table&nbsp;table1&nbsp;dro&#112;&nbsp;index&nbsp;ind_id;&nbsp;<br/>　　&nbsp;<br/>　　11、联合字符或者多个列(将列id与&#34;:&#34;和列name和&#34;=&#34;连接)&nbsp;<br/>　　sel&#101;ct&nbsp;concat(id,&#39;:&#39;,name,&#39;=&#39;)&nbsp;from&nbsp;students;&nbsp;<br/>　　&nbsp;<br/>　　12、limit(选出10到20条)&lt;第一个记录集的编号是0&gt;&nbsp;<br/>　　sel&#101;ct&nbsp;*&nbsp;from&nbsp;students&nbsp;o&#114;der&nbsp;by&nbsp;id&nbsp;limit&nbsp;9,10;&nbsp;<br/>　　&nbsp;<br/>　　13、MySQL不支持的功能&nbsp;<br/>　　事务，视图，外键和引用完整性，存储过程和触发器&nbsp;<br/>　　&nbsp;<br/>　　&nbsp;<br/>　　14、MySQL会使用索引的操作符号&nbsp;<br/>　　&lt;,&lt;=,&gt;=,&gt;,=,between,in,不带%或者_开头的like&nbsp;<br/>　　&nbsp;<br/>　　15、使用索引的缺点&nbsp;<br/>　　1)减慢增删改数据的速度；&nbsp;<br/>　　2）占用磁盘空间；&nbsp;<br/>　　3）增加查询优化器的负担；&nbsp;<br/>　　当查询优化器生成执行计划时，会考虑索引，太多的索引会给查询优化器增加工作量，导致无法选择最优的查询方案；&nbsp;<br/>　　&nbsp;<br/>　　16、分析索引效率&nbsp;<br/>　　方法：在一般的SQL语句前加上explain；&nbsp;<br/>　　分析结果的含义：&nbsp;<br/>　　1）table：表名；&nbsp;<br/>　　2）type：连接的类型，(ALL/Range/Ref)。其中ref是最理想的；&nbsp;<br/>　　3）possible_keys：查询可以利用的索引名；&nbsp;<br/>　　4）key：实际使用的索引；&nbsp;<br/>　　5）key_len：索引中被使用部分的长度（字节）；&nbsp;<br/>　　6）ref：显示列名字或者&#34;const&#34;（不明白什么意思）；&nbsp;<br/>　　7）rows：显示MySQL认为在找到正确结果之前必须扫描的行数；&nbsp;<br/>　　8）extra：MySQL的建议；&nbsp;<br/>　　&nbsp;<br/>　　17、使用较短的定长列&nbsp;<br/>　　1）尽可能使用较短的数据类型；&nbsp;<br/>　　2）尽可能使用定长数据类型；&nbsp;<br/>　　a）用char代替varchar，固定长度的数据处理比变长的快些；&nbsp;<br/>　　b）对于频繁修改的表，磁盘容易形成碎片，从而影响数据库的整体性能；&nbsp;<br/>　　c）万一出现数据表崩溃，使用固定长度数据行的表更容易重新构造。使用固定长度的数据行，每个记录的开始位置都是固定记录长度的倍数，可以很容易被检测到，但是使用可变长度的数据行就不一定了；&nbsp;<br/>　　d）对于MyISAM类型的数据表，虽然转换成固定长度的数据列可以提高性能，但是占据的空间也大；&nbsp;<br/>　　&nbsp;<br/>　　18、使用not&nbsp;null和enum&nbsp;<br/>　　尽量将列定义为not&nbsp;null，这样可使数据的出来更快，所需的空间更少，而且在查询时，MySQL不需要检查是否存在特例，即null值，从而优化查询；&nbsp;<br/>　　如果一列只含有有限数目的特定值，如性别，是否有效或者入学年份等，在这种情况下应该考虑将其转换为enum列的值，MySQL处理的更快，因为所有的enum值在系统内都是以标识数值来表示的；&nbsp;<br/>　　&nbsp;<br/>　　19、使用optimize&nbsp;table&nbsp;<br/>　　对于经常修改的表，容易产生碎片，使在查询数据库时必须读取更多的磁盘块，降低查询性能。具有可变长的表都存在磁盘碎片问题，这个问题对blob数据类型更为突出，因为其尺寸变化非常大。可以通过使用optimize&nbsp;table来整理碎片，保证数据库性能不下降，优化那些受碎片影响的数据表。&nbsp;optimize&nbsp;table可以用于MyISAM和BDB类型的数据表。实际上任何碎片整理方法都是用mysqldump来转存数据表，然后使用转存后的文件并重新建数据表；&nbsp;<br/>　　&nbsp;<br/>　　20、使用procedure&nbsp;analyse()&nbsp;<br/>　　可以使用procedure&nbsp;analyse()显示最佳类型的建议，使用很简单，在sel&#101;ct语句后面加上procedure&nbsp;analyse()就可以了；例如：&nbsp;<br/>　　sel&#101;ct&nbsp;*&nbsp;from&nbsp;students&nbsp;procedure&nbsp;analyse();&nbsp;<br/>　　sel&#101;ct&nbsp;*&nbsp;from&nbsp;students&nbsp;procedure&nbsp;analyse(16,256);&nbsp;<br/>　　第二条语句要求procedure&nbsp;analyse()不要建议含有多于16个值，或者含有多于256字节的enum类型，如果没有限制，输出可能会很长；&nbsp;<br/>　　&nbsp;<br/>　　21、使用查询缓存&nbsp;<br/>　　1）查询缓存的工作方式：&nbsp;<br/>　　第一次执行某条sel&#101;ct语句时，服务器记住该查询的文本内容和查询结果，存储在缓存中，下次碰到这个语句时，直接从缓存中返回结果；当更新数据表后，该数据表的任何缓存查询都变成无效的，并且会被丢弃。&nbsp;<br/>　　2）配置缓存参数：&nbsp;<br/>　　变量：query_cache&nbsp;_type，查询缓存的操作模式。有3中模式，0：不缓存；1：缓存查询，除非与sel&#101;ct&nbsp;sql_no_cache开头；2：根据需要只缓存那些以sel&#101;ct&nbsp;sql_cache开头的查询；query_cache_size：设置查询缓存的最大结果集的大小，比这个值大的不会被缓存。&nbsp;<br/>　　&nbsp;<br/>　　22、调整硬件&nbsp;<br/>　　1）在机器上装更多的内存；&nbsp;<br/>　　2）增加更快的硬盘以减少I/O等待时间；&nbsp;<br/>　　寻道时间是决定性能的主要因素，逐字地移动磁头是最慢的，一旦磁头定位，从磁道读则很快；&nbsp;<br/>　　3）在不同的物理硬盘设备上重新分配磁盘活动；&nbsp;<br/>　　如果可能，应将最繁忙的数据库存放在不同的物理设备上，这跟使用同一物理设备的不同分区是不同的，因为它们将争用相同的物理资源（磁头）。<br/><br/>1、启动MySQL服务器&nbsp;<br/>　　&nbsp;<br/>　两种方法:&nbsp;一是用winmysqladmin，如果机器启动时已自动运行，则可直接进入下一步操作。&nbsp;二是在DOS方式下运行&nbsp;d:\mysql\bin\mysqld&nbsp;<br/>　(假设mysql&nbsp;安装在d:\mysql);当然也可以&nbsp;net&nbsp;start&nbsp;mysql命令启动。而Linux中启动时可用“/etc/rc.d/init.d/mysqld&nbsp;start”命令，注&nbsp;意启动者应具有管理员权限。&nbsp;<br/>　&nbsp;<br/>2、进入mysql交互操作界面&nbsp;<br/>　　&nbsp;<br/>　　在DOS方式下，运行:&nbsp;d:\mysql\bin\mysql&nbsp;<br/>　　出现:&nbsp;mysql&nbsp;的提示符”&nbsp;mysql&gt;&nbsp;“，此时已进入mysql的交互操作方式。&nbsp;<br/>　　如果出现&nbsp;“ERROR&nbsp;2003:&nbsp;Can′t&nbsp;connect&nbsp;to&nbsp;MySQL&nbsp;server&nbsp;on&nbsp;′localhost′&nbsp;(10061)“，说明你的MySQL还没有启动。&nbsp;<br/>　　&nbsp;<br/>3、退出MySQL操作界面&nbsp;<br/>　　&nbsp;<br/>　　在mysql&gt;提示符下输入quit可以随时退出交互操作界面:　　&nbsp;<br/>　　mysql&gt;&nbsp;quit&nbsp;<br/>　　Bye&nbsp;<br/>　　&nbsp;<br/>　&nbsp;<br/>4、第一条命令(多条命令用&nbsp;“,”&nbsp;分隔&nbsp;,一条命令可以分成多行输入，直到出现分号”;”为止&nbsp;<br/>　　&nbsp;<br/>　　mysql&gt;&nbsp;sel&#101;ct&nbsp;version(),current_date();&nbsp;<br/>　　mysql&gt;Sel&#101;ct&nbsp;(20+5)*4;&nbsp;<br/>　　mysql&gt;Sel&#101;ct&nbsp;(20+5)*4,sin(pi()/3);&nbsp;<br/>　　mysql&gt;Sel&#101;ct&nbsp;(20+5)*4&nbsp;AS&nbsp;Result,sin(pi()/3);&nbsp;(AS:&nbsp;指定假名为Result)&nbsp;<br/><br/>5、常用sql&nbsp;语句&nbsp;<br/><br/>1:使用SHOW语句找出在服务器上当前存在什么数据库：&nbsp;<br/>mysql&gt;&nbsp;SHOW&nbsp;DATABASES;&nbsp;<br/>2:2、创建一个数据库MYSQLDATA&nbsp;<br/>mysql&gt;&nbsp;Cr&#101;ate&nbsp;DATABASE&nbsp;MYSQLDATA;&nbsp;<br/>3:选择你所创建的数据库&nbsp;<br/>mysql&gt;&nbsp;USE&nbsp;MYSQLDATA;&nbsp;(按回车键出现Database&nbsp;changed&nbsp;时说明操作成功！)&nbsp;<br/>4:查看现在的数据库中存在什么表&nbsp;<br/>mysql&gt;&nbsp;SHOW&nbsp;TABLES;&nbsp;<br/>5:创建一个数据库表&nbsp;<br/>mysql&gt;&nbsp;Cr&#101;ate&nbsp;TABLE&nbsp;MYTABLE&nbsp;(name&nbsp;VARCHAR(20),&nbsp;sex&nbsp;CHAR(1));&nbsp;<br/>6:显示表的结构：&nbsp;<br/>mysql&gt;&nbsp;DESCRIBE&nbsp;MYTABLE;&nbsp;<br/>7:往表中加入记录&nbsp;<br/>mysql&gt;&nbsp;ins&#101;rt&nbsp;into&nbsp;MYTABLE&nbsp;values&nbsp;(”hyq”,”M”);&nbsp;<br/>8:用文本方式将数据装入数据库表中（例如D:/mysql.txt）&nbsp;<br/>mysql&gt;&nbsp;LOAD&nbsp;DATA&nbsp;LOCAL&nbsp;INFILE&nbsp;“D:/mysql.txt”&nbsp;INTO&nbsp;TABLE&nbsp;MYTABLE;&nbsp;<br/>9:导入.sql文件命令（例如D:/mysql.sql）&nbsp;<br/>mysql&gt;use&nbsp;database;&nbsp;<br/>mysql&gt;source&nbsp;d:/mysql.sql;&nbsp;<br/>10:删除表&nbsp;<br/>mysql&gt;dro&#112;&nbsp;TABLE&nbsp;MYTABLE;&nbsp;<br/>11:清空表&nbsp;<br/>mysql&gt;del&#101;te&nbsp;from&nbsp;MYTABLE;&nbsp;<br/>12:更新表中数据&nbsp;<br/>mysql&gt;up&#100;ate&nbsp;MYTABLE&nbsp;set&nbsp;sex=”f”&nbsp;wh&#101;re&nbsp;name=’hyq’;&nbsp;<br/>13:插入数据&nbsp;<br/>mysq&gt;lins&#101;rt&nbsp;into&nbsp;MYTABLE&nbsp;values&nbsp;(1,&nbsp;‘第二章’,&nbsp;0×2134545);&nbsp;<br/>14:登录后使用数据库&nbsp;mysql&nbsp;<br/>mysql&nbsp;-u&nbsp;root&nbsp;-p&nbsp;mysql&nbsp;<br/>mysql&nbsp;-u&nbsp;root&nbsp;-p&nbsp;-h&nbsp;11.11.11.11&nbsp;database&nbsp;<br/>15:mysql&nbsp;jdbc连接url&nbsp;使用中文&nbsp;<br/>jdbc:mysql://localhost/test?useUnicode=true&amp;characterEncoding=gb2312&nbsp;<br/><br/>[separator]&nbsp;<br/><br/>其它：&nbsp;<br/>show&nbsp;processlist;列出每一笔联机的信息。&nbsp;<br/>show&nbsp;varlables;列出mysql的系统设定。&nbsp;<br/>show&nbsp;tables&nbsp;from&nbsp;db_name;列出db_name中所有数据表;&nbsp;<br/>show&nbsp;[full]&nbsp;columns&nbsp;from&nbsp;table_name;列出table_name中完整信息，如栏名、类型,包括字符集编码。&nbsp;<br/>show&nbsp;index&nbsp;from&nbsp;table_name;&nbsp;列出table_name中所有的索引。&nbsp;<br/>show&nbsp;table&nbsp;status;；列出当前数据库中数据表的信息。&nbsp;<br/>show&nbsp;table&nbsp;status&nbsp;from&nbsp;db_name;；列出当前db_name中数据表的信息。&nbsp;<br/>alt&#101;r&nbsp;table&nbsp;table_name&nbsp;engine&nbsp;innodb|myisam|memory&nbsp;;更改表类型&nbsp;<br/>explain&nbsp;table_name&nbsp;/&nbsp;describe&nbsp;table_name&nbsp;;&nbsp;列出table_name完整信息，如栏名、类型。&nbsp;<br/>show&nbsp;cr&#101;ate&nbsp;table&nbsp;table_name&nbsp;显示当前表的建表语句&nbsp;<br/>alt&#101;r&nbsp;table&nbsp;table_name&nbsp;add&nbsp;primary&nbsp;key&nbsp;(picid)&nbsp;;&nbsp;向表中增加一个主键&nbsp;<br/>alt&#101;r&nbsp;table&nbsp;table_name&nbsp;add&nbsp;column&nbsp;userid&nbsp;int&nbsp;after&nbsp;picid&nbsp;修改表结构增加一个新的字段&nbsp;<br/>alt&#101;r&nbsp;table&nbsp;table_name&nbsp;character&nbsp;set&nbsp;gb2312&nbsp;改变表的编码&nbsp;<br/>sel&#101;ct&nbsp;user();&nbsp;显示当前用户。&nbsp;<br/>sel&#101;ct&nbsp;password(’root’);&nbsp;显示当前用户密码&nbsp;<br/>sel&#101;ct&nbsp;now();&nbsp;显示当前日期&nbsp;<br/>flush&nbsp;privileges&nbsp;在不重启的情况下刷新用户权限&nbsp;<br/>mysqld&nbsp;–default-character-set=gb2312&nbsp;;设置默认字符集为gb2312&nbsp;<br/><br/>6、安全&nbsp;<br/><br/>刚安装好的MySql包含一个含空密码的root帐户和一个匿名帐户，这是很大的安全隐患，对于一些重要的应用我们应将安全性尽可能提高，在这里应把匿名帐户删除、&nbsp;root帐户设置密码，可用如下命令进行：&nbsp;<br/><br/>use&nbsp;mysql;&nbsp;<br/>del&#101;te&nbsp;from&nbsp;User&nbsp;wh&#101;re&nbsp;User=”&#34;;&nbsp;<br/>up&#100;ate&nbsp;User&nbsp;set&nbsp;Password=PASSWORD(’newpassword’)&nbsp;wh&#101;re&nbsp;User=’root’;&nbsp;<br/><br/>改完重启&nbsp;mysql&nbsp;才能生效.&nbsp;<br/><br/>上面命令参数是常用参数的一部分，详细情况可参考文档。此处的mydb是要登录的数据库的名称。&nbsp;<br/>在进行开发和实际应用中，用户不应该只用root用户进行连接数据库，虽然使用root用户进行测试时很方便，但会给系统带来重大安全隐患，也不利于管理技术的提高。我们给一个应用中使用的用户赋予最恰当的数据库权限。如一个只进行数据插入的用户不应赋予其删除数据的权限。MySql的用户管理是通过&nbsp;User表来实现的，添加新用户常用的方法有两个，一是在User表插入相应的数据行，同时设置相应的权限；二是通过GRANT命令创建具有某种权限的用户。其中GRANT的常用用法如下：&nbsp;<br/><br/>grant&nbsp;all&nbsp;on&nbsp;mydb.*&nbsp;to&nbsp;NewUserName@HostName&nbsp;identified&nbsp;by&nbsp;“password”&nbsp;;&nbsp;<br/>grant&nbsp;usage&nbsp;on&nbsp;*.*&nbsp;to&nbsp;NewUserName@HostName&nbsp;identified&nbsp;by&nbsp;“password”;&nbsp;<br/>grant&nbsp;sel&#101;ct,ins&#101;rt,up&#100;ate&nbsp;on&nbsp;mydb.*&nbsp;to&nbsp;NewUserName@HostName&nbsp;identified&nbsp;by&nbsp;“password”;&nbsp;<br/>grant&nbsp;up&#100;ate,del&#101;te&nbsp;on&nbsp;mydb.TestTable&nbsp;to&nbsp;NewUserName@HostName&nbsp;identified&nbsp;by&nbsp;“password”;&nbsp;<br/>grant&nbsp;all&nbsp;privileges&nbsp;on&nbsp;*.*&nbsp;to&nbsp;root@localhost&nbsp;<br/>grant&nbsp;sel&#101;ct,ins&#101;rt,del&#101;te,up&#100;ate,alt&#101;r,cr&#101;ate,dro&#112;&nbsp;on&nbsp;lybbs.*&nbsp;to&nbsp;NewUserName@”%”&nbsp;identified&nbsp;by&nbsp;“lybbs”;&nbsp;<br/><br/>若要给此用户赋予他在相应对象上的权限的管理能力，可在GRANT后面添加WITH&nbsp;GRANT&nbsp;OPTION选项。而对于用插入User表添加的用户，Password字段应用PASSWORD&nbsp;函数进行更新加密，以防不轨之人窃看密码。对于那些已经不用的用户应给予清除，权限过界的用户应及时回收权限，回收权限可以通过更新User表相应字段，也可以使用REVOKE操作。&nbsp;<br/><br/>全局管理权限：&nbsp;<br/>FILE:&nbsp;在MySQL服务器上读写文件。&nbsp;<br/>PROCESS:&nbsp;显示或杀死属于其它用户的服务线程。&nbsp;<br/>RELOAD:&nbsp;重载访问控制表，刷新日志等。&nbsp;<br/>SHUTDOWN:&nbsp;关闭MySQL服务。&nbsp;<br/>数据库/数据表/数据列权限：&nbsp;<br/>Alt&#101;r:&nbsp;修改已存在的数据表(例如增加/删除列)和索引。&nbsp;<br/>Cr&#101;ate:&nbsp;建立新的数据库或数据表。&nbsp;<br/>Del&#101;te:&nbsp;删除表的记录。&nbsp;<br/>Dro&#112;:&nbsp;删除数据表或数据库。&nbsp;<br/>INDEX:&nbsp;建立或删除索引。&nbsp;<br/>Ins&#101;rt:&nbsp;增加表的记录。&nbsp;<br/>Sel&#101;ct:&nbsp;显示/搜索表的记录。&nbsp;<br/>Up&#100;ate:&nbsp;修改表中已存在的记录。&nbsp;<br/>特别的权限：&nbsp;<br/>ALL:&nbsp;允许做任何事(和root一样)。&nbsp;<br/>USAGE:&nbsp;只允许登录–其它什么也不允许做。&nbsp;<br/><br/><br/><br/>修改默认密码：&nbsp;<br/>cd&nbsp;d:\mysql\bin&nbsp;<br/>mysqladmin&nbsp;-u&nbsp;root&nbsp;-p&nbsp;password&nbsp;123456&nbsp;<br/>回车出现&nbsp;<br/>Enter&nbsp;password:&nbsp;(&nbsp;注:这是叫你输入原密码.&nbsp;刚安装时密码为空,所以直接回车即可)&nbsp;<br/>此时mysql&nbsp;中账号&nbsp;root&nbsp;的密码&nbsp;被改为&nbsp;123456&nbsp;安装完毕<br/><br/>一、引言&nbsp;<br/><br/>　　&nbsp;想使用Linux已经很长时间了，由于没有硬性任务一直也没有系统学习，近日由于工作需要必须使用Linux下的MySQL。本以为有Windows下使用SQL&nbsp;Server的经验，觉得在Linux下安装MySql应该是易如反掌的事，可在真正安装和使用MySQL时走了很多弯路，遇见很多问题，毕竟Linux和Windows本身就有很大区别。为了让和我一样的初学者在学习的过程中少走弯路，尽快入门，写了此文，希望对您有所帮助。本文的Linux环境是Red&nbsp;Hat&nbsp;9.0，MySQL是4.0.16。&nbsp;<br/><br/>　　&nbsp;二、安装Mysql&nbsp;<br/><br/>　　&nbsp;1、下载MySQL的安装文件&nbsp;<br/>　　&nbsp;安装MySQL需要下面两个文件：&nbsp;<br/>　　&nbsp;MySQL-server-4.0.16-0.i386.rpm　　　&nbsp;<br/>　　&nbsp;MySQL-client-4.0.16-0.i386.rpm&nbsp;<br/>　　&nbsp;下载地址为：<a href="http://www.mysql.com/downloads/mysql-4.0.html" target="_blank">http://www.mysql.com/downloads/mysql-4.0.html</a>，&nbsp;打开此网页，下拉网页找到“Linux&nbsp;x86&nbsp;RPM&nbsp;downloads”项，找到“Server”和“Client&nbsp;programs”项，下载需要的上述两个rpm文件。&nbsp;<br/><br/>　　&nbsp;2、安装MySQL&nbsp;<br/>　　&nbsp;rpm文件是Red&nbsp;Hat公司开发的软件安装包，rpm可让Linux在安装软件包时免除许多复杂的手续。该命令在安装时常用的参数是&nbsp;–ivh&nbsp;,其中i表示将安装指定的rmp软件包，V表示安装时的详细信息，h表示在安装期间出现“#”符号来显示目前的安装过程。这个符号将持续到安装完成后才停止。&nbsp;<br/>　　&nbsp;1）安装服务器端&nbsp;<br/>　　&nbsp;在有两个rmp文件的目录下运行如下命令：&nbsp;<br/>　　&nbsp;[root@test1&nbsp;local]#&nbsp;rpm&nbsp;-ivh&nbsp;MySQL-server-4.0.16-0.i386.rpm&nbsp;<br/>　　&nbsp;显示如下信息。&nbsp;<br/>　　　&nbsp;warning:&nbsp;MySQL-server-4.0.16-0.i386.rpm:&nbsp;V3&nbsp;DSA&nbsp;signature:&nbsp;NOKEY,&nbsp;key&nbsp;ID&nbsp;5072e1f5&nbsp;<br/>　　&nbsp;Preparing...　　　　　　　###########################################&nbsp;[100%]&nbsp;<br/>　　&nbsp;1:MySQL-server　　　　　###########################################&nbsp;[100%]&nbsp;<br/>　　　&nbsp;。。。。。。（省略显示）&nbsp;<br/>　　&nbsp;/usr/bin/mysqladmin&nbsp;-u&nbsp;root&nbsp;password&nbsp;&#39;new-password&#39;&nbsp;<br/>　　&nbsp;/usr/bin/mysqladmin&nbsp;-u&nbsp;root&nbsp;-h&nbsp;test1&nbsp;password&nbsp;&#39;new-password&#39;&nbsp;<br/>　　　&nbsp;。。。。。。（省略显示）&nbsp;<br/>　　&nbsp;Starting&nbsp;mysqld&nbsp;daemon&nbsp;with&nbsp;databases&nbsp;from&nbsp;/var/lib/mysql&nbsp;<br/>　　&nbsp;如出现如上信息，服务端安装完毕。测试是否成功可运行netstat看Mysql端口是否打开，如打开表示服务已经启动，安装成功。Mysql默认的端口是3306。&nbsp;<br/>　　&nbsp;[root@test1&nbsp;local]#&nbsp;netstat&nbsp;-nat&nbsp;<br/>　　&nbsp;Active&nbsp;Internet&nbsp;connections&nbsp;(servers&nbsp;and&nbsp;established)&nbsp;<br/>　　&nbsp;Proto&nbsp;Recv-Q&nbsp;Send-Q&nbsp;Local&nbsp;Address　　　　　&nbsp;Foreign&nbsp;Address　　　　&nbsp;State　　　&nbsp;<br/>　　&nbsp;tcp　　0　　0&nbsp;0.0.0.0:3306　　　　&nbsp;0.0.0.0:*　　　　　&nbsp;LISTEN　　　&nbsp;<br/>　　&nbsp;上面显示可以看出MySQL服务已经启动。&nbsp;<br/>　　&nbsp;2）安装客户端&nbsp;<br/>　　&nbsp;运行如下命令：&nbsp;<br/>　　&nbsp;[root@test1&nbsp;local]#&nbsp;rpm&nbsp;-ivh&nbsp;MySQL-client-4.0.16-0.i386.rpm&nbsp;<br/>　　&nbsp;warning:&nbsp;MySQL-client-4.0.16-0.i386.rpm:&nbsp;V3&nbsp;DSA&nbsp;signature:&nbsp;NOKEY,&nbsp;key&nbsp;ID&nbsp;5072e1f5&nbsp;<br/>　　&nbsp;Preparing...　　　　###########################################&nbsp;[100%]&nbsp;<br/>　　&nbsp;1:MySQL-client　&nbsp;###########################################&nbsp;[100%]&nbsp;<br/>　　&nbsp;显示安装完毕。&nbsp;<br/>　　&nbsp;用下面的命令连接mysql,测试是否成功。&nbsp;<br/>　&nbsp;三、登录MySQL&nbsp;<br/><br/>　　&nbsp;登录MySQL的命令是mysql，&nbsp;mysql&nbsp;的使用语法如下：&nbsp;<br/>　　&nbsp;mysql&nbsp;[-u&nbsp;username]&nbsp;[-h&nbsp;host]&nbsp;[-p[password]]&nbsp;[dbname]&nbsp;<br/>　　&nbsp;username&nbsp;与&nbsp;password&nbsp;分别是&nbsp;MySQL&nbsp;的用户名与密码，mysql的初始管理帐号是root，没有密码，注意：这个root用户不是Linux的系统用户。MySQL默认用户是root，由于初始没有密码，第一次进时只需键入mysql即可。&nbsp;<br/>　　&nbsp;[root@test1&nbsp;local]#&nbsp;mysql&nbsp;<br/>　　&nbsp;Welcome&nbsp;to&nbsp;the&nbsp;MySQL&nbsp;monitor.　Commands&nbsp;end&nbsp;with&nbsp;;&nbsp;o&#114;&nbsp;\g.&nbsp;<br/>　　&nbsp;Your&nbsp;MySQL&nbsp;connection&nbsp;id&nbsp;is&nbsp;1&nbsp;to&nbsp;server&nbsp;version:&nbsp;4.0.16-standard&nbsp;<br/>　　&nbsp;Type&nbsp;&#39;help;&#39;&nbsp;o&#114;&nbsp;&#39;\h&#39;&nbsp;for&nbsp;help.&nbsp;Type&nbsp;&#39;\c&#39;&nbsp;to&nbsp;clear&nbsp;the&nbsp;buffer.&nbsp;<br/>　　&nbsp;mysql&gt;&nbsp;<br/>　　&nbsp;出现了“mysql&gt;”提示符，恭喜你，安装成功！&nbsp;<br/>　　&nbsp;增加了密码后的登录格式如下：&nbsp;<br/>　　&nbsp;mysql&nbsp;-u&nbsp;root&nbsp;-p&nbsp;<br/>　　&nbsp;Enter&nbsp;password:&nbsp;(输入密码)&nbsp;<br/>　　&nbsp;其中-u后跟的是用户名，-p要求输入密码，回车后在输入密码处输入密码。&nbsp;<br/><br/>　　&nbsp;注意：这个mysql文件在/usr/bin目录下，与后面讲的启动文件/etc/init.d/mysql不是一个文件。&nbsp;<br/><br/>　　&nbsp;四、MySQL的几个重要目录&nbsp;<br/><br/>　　&nbsp;MySQL安装完成后不象SQL&nbsp;Server默认安装在一个目录，它的数据库文件、配置文件和命令文件分别在不同的目录，了解这些目录非常重要，尤其对于Linux的初学者，因为Linux本身的目录结构就比较复杂，如果搞不清楚MySQL的安装目录那就无从谈起深入学习。&nbsp;<br/><br/>　　&nbsp;下面就介绍一下这几个目录。&nbsp;<br/><br/>　　&nbsp;1、数据库目录&nbsp;<br/>　　&nbsp;/var/lib/mysql/&nbsp;<br/><br/>　　&nbsp;2、配置文件&nbsp;<br/>　　&nbsp;/usr/share/mysql（mysql.server命令及配置文件）&nbsp;<br/><br/>　　&nbsp;3、相关命令&nbsp;<br/>　　&nbsp;/usr/bin(mysqladmin&nbsp;mysqldump等命令)&nbsp;<br/><br/>　　&nbsp;4、启动脚本&nbsp;<br/>　　&nbsp;/etc/rc.d/init.d/（启动脚本文件mysql的目录）&nbsp;<br/>　&nbsp;五、修改登录密码&nbsp;<br/><br/>　　&nbsp;MySQL默认没有密码，安装完毕增加密码的重要性是不言而喻的。&nbsp;<br/><br/>　　&nbsp;1、命令&nbsp;<br/>　　&nbsp;usr/bin/mysqladmin&nbsp;-u&nbsp;root&nbsp;password&nbsp;&#39;new-password&#39;&nbsp;<br/>　　&nbsp;格式：mysqladmin&nbsp;-u用户名&nbsp;-p旧密码&nbsp;password&nbsp;新密码&nbsp;<br/><br/>　　&nbsp;2、例子&nbsp;<br/>　　&nbsp;例1：给root加个密码123456。&nbsp;<br/>　　&nbsp;键入以下命令&nbsp;：&nbsp;<br/>　　&nbsp;[root@test1&nbsp;local]#&nbsp;/usr/bin/mysqladmin&nbsp;-u&nbsp;root&nbsp;password&nbsp;123456&nbsp;<br/>　　&nbsp;注：因为开始时root没有密码，所以-p旧密码一项就可以省略了。&nbsp;<br/><br/>　　&nbsp;3、测试是否修改成功&nbsp;<br/>　　&nbsp;1）不用密码登录&nbsp;<br/>　　&nbsp;[root@test1&nbsp;local]#&nbsp;mysql&nbsp;<br/>　　&nbsp;ERROR&nbsp;1045:&nbsp;Access&nbsp;denied&nbsp;for&nbsp;user:&nbsp;&#39;root@localhost&#39;&nbsp;(Using&nbsp;password:&nbsp;NO)&nbsp;<br/>　　&nbsp;显示错误，说明密码已经修改。&nbsp;<br/>　　&nbsp;2）用修改后的密码登录&nbsp;<br/>　　&nbsp;[root@test1&nbsp;local]#&nbsp;mysql&nbsp;-u&nbsp;root&nbsp;-p&nbsp;<br/>　　&nbsp;Enter&nbsp;password:&nbsp;(输入修改后的密码123456)&nbsp;<br/>　　&nbsp;Welcome&nbsp;to&nbsp;the&nbsp;MySQL&nbsp;monitor.　Commands&nbsp;end&nbsp;with&nbsp;;&nbsp;o&#114;&nbsp;\g.&nbsp;<br/>　　&nbsp;Your&nbsp;MySQL&nbsp;connection&nbsp;id&nbsp;is&nbsp;4&nbsp;to&nbsp;server&nbsp;version:&nbsp;4.0.16-standard&nbsp;<br/>　　&nbsp;Type&nbsp;&#39;help;&#39;&nbsp;o&#114;&nbsp;&#39;\h&#39;&nbsp;for&nbsp;help.&nbsp;Type&nbsp;&#39;\c&#39;&nbsp;to&nbsp;clear&nbsp;the&nbsp;buffer.&nbsp;<br/>　　&nbsp;mysql&gt;&nbsp;<br/>　　&nbsp;成功！&nbsp;<br/>　　&nbsp;这是通过mysqladmin命令修改口令，也可通过修改库来更改口令。&nbsp;<br/><br/>　　&nbsp;六、启动与停止&nbsp;<br/><br/>　　&nbsp;1、启动&nbsp;<br/>　　&nbsp;MySQL安装完成后启动文件mysql在/etc/init.d目录下，在需要启动时运行下面命令即可。&nbsp;<br/>　　&nbsp;[root@test1&nbsp;init.d]#&nbsp;/etc/init.d/mysql&nbsp;start&nbsp;<br/><br/>　　&nbsp;2、停止&nbsp;<br/>　　&nbsp;/usr/bin/mysqladmin&nbsp;-u&nbsp;root&nbsp;-p&nbsp;shutdown&nbsp;<br/><br/>　　&nbsp;3、自动启动&nbsp;<br/>　　&nbsp;1）察看mysql是否在自动启动列表中&nbsp;<br/>　　&nbsp;[root@test1&nbsp;local]#　/sbin/chkconfig&nbsp;–list&nbsp;<br/>　　&nbsp;2）把MySQL添加到你系统的启动服务组里面去&nbsp;<br/>　　&nbsp;[root@test1&nbsp;local]#　/sbin/chkconfig　–&nbsp;add　mysql&nbsp;<br/>　　&nbsp;3）把MySQL从启动服务组里面删除。&nbsp;<br/>　　&nbsp;[root@test1&nbsp;local]#　/sbin/chkconfig　–&nbsp;del　mysql&nbsp;<br/>七、更改MySQL目录&nbsp;<br/><br/>　　&nbsp;MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步：&nbsp;<br/><br/>　　&nbsp;1、home目录下建立data目录&nbsp;<br/>　　&nbsp;cd&nbsp;/home&nbsp;<br/>　　&nbsp;mkdir&nbsp;data&nbsp;<br/><br/>　　&nbsp;2、把MySQL服务进程停掉：&nbsp;<br/>　　&nbsp;mysqladmin&nbsp;-u&nbsp;root&nbsp;-p&nbsp;shutdown&nbsp;<br/><br/>　　&nbsp;3、把/var/lib/mysql整个目录移到/home/data&nbsp;<br/>　　&nbsp;mv&nbsp;/var/lib/mysql　/home/data/&nbsp;<br/>　　&nbsp;这样就把MySQL的数据文件移动到了/home/data/mysql下&nbsp;<br/><br/>　　&nbsp;4、找到my.cnf配置文件&nbsp;<br/>　　&nbsp;如果/etc/目录下没有my.cnf配置文件，请到/usr/share/mysql/下找到*.cnf文件，拷贝其中一个到/etc/并改名为my.cnf)中。命令如下：&nbsp;<br/>　　&nbsp;[root@test1&nbsp;mysql]#&nbsp;cp&nbsp;/usr/share/mysql/my-medium.cnf　/etc/my.cnf&nbsp;<br/><br/>　　&nbsp;5、编辑MySQL的配置文件/etc/my.cnf&nbsp;<br/>　　&nbsp;为保证MySQL能够正常工作，需要指明mysql.sock文件的产生位置。&nbsp;修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为：/home/mysql/mysql.sock&nbsp;。操作如下：&nbsp;<br/>　　&nbsp;vi　&nbsp;my.cnf　　　&nbsp;(用vi工具编辑my.cnf文件，找到下列数据修改之)&nbsp;<br/>　　&nbsp;#&nbsp;The&nbsp;MySQL&nbsp;server&nbsp;<br/>　　　&nbsp;[mysqld]&nbsp;<br/>　　　&nbsp;port　　　=&nbsp;3306&nbsp;<br/>　　　&nbsp;#socket　&nbsp;=&nbsp;/var/lib/mysql/mysql.sock（原内容，为了更稳妥用“#”注释此行）&nbsp;<br/>　　　&nbsp;socket　&nbsp;=&nbsp;/home/data/mysql/mysql.sock　　　（加上此行）&nbsp;<br/><br/>　　&nbsp;6、修改MySQL启动脚本/etc/rc.d/init.d/mysql&nbsp;<br/>　　&nbsp;最后，需要修改MySQL启动脚本/etc/rc.d/init.d/mysql，把其中datadir=/var/lib/mysql一行中，等号右边的路径改成你现在的实际存放路径：home/data/mysql。&nbsp;<br/>　　&nbsp;[root@test1&nbsp;etc]#&nbsp;vi　/etc/rc.d/init.d/mysql&nbsp;<br/>　　&nbsp;#datadir=/var/lib/mysql　　　　（注释此行）&nbsp;<br/>　　&nbsp;datadir=/home/data/mysql　　&nbsp;（加上此行）&nbsp;<br/><br/>　　&nbsp;7、重新启动MySQL服务&nbsp;<br/>　　&nbsp;/etc/rc.d/init.d/mysql　start&nbsp;<br/>　　&nbsp;或用reboot命令重启Linux&nbsp;<br/>　　&nbsp;如果工作正常移动就成功了，否则对照前面的7步再检查一下。&nbsp;<br/><br/>　　&nbsp;八、MySQL的常用操作&nbsp;<br/><br/>　　&nbsp;注意：MySQL中每个命令后都要以分号；结尾。&nbsp;<br/><br/>　　&nbsp;1、显示数据库&nbsp;<br/>　　&nbsp;mysql&gt;&nbsp;show&nbsp;databases;&nbsp;<br/>　　&nbsp;+----------+&nbsp;<br/>　　&nbsp;|&nbsp;Database&nbsp;|&nbsp;<br/>　　&nbsp;+----------+&nbsp;<br/>　　&nbsp;|&nbsp;mysql　　|&nbsp;<br/>　　&nbsp;|&nbsp;test　　&nbsp;|&nbsp;<br/>　　&nbsp;+----------+&nbsp;<br/>　　&nbsp;2&nbsp;rows&nbsp;in&nbsp;set&nbsp;(0.04&nbsp;sec)&nbsp;<br/>　　&nbsp;Mysql刚安装完有两个数据库：mysql和test。mysql库非常重要，它里面有MySQL的系统信息，我们改密码和新增用户，实际上就是用这个库中的相关表进行操作。&nbsp;<br/><br/>　　&nbsp;2、显示数据库中的表&nbsp;<br/>　　&nbsp;mysql&gt;&nbsp;use&nbsp;mysql;&nbsp;（打开库，对每个库进行操作就要打开此库，类似于foxpro&nbsp;）&nbsp;<br/>　　&nbsp;Database&nbsp;changed&nbsp;<br/><br/>　　&nbsp;mysql&gt;&nbsp;show&nbsp;tables;&nbsp;<br/>　　&nbsp;+-----------------+&nbsp;<br/>　　&nbsp;|&nbsp;Tables_in_mysql&nbsp;|&nbsp;<br/>　　&nbsp;+-----------------+&nbsp;<br/>　　&nbsp;|&nbsp;columns_priv　　|&nbsp;<br/>　　&nbsp;|&nbsp;db　　　　　　　|&nbsp;<br/>　　&nbsp;|&nbsp;func　　　　　　|&nbsp;<br/>　　&nbsp;|&nbsp;host　　　　　　|&nbsp;<br/>　　&nbsp;|&nbsp;tables_priv　　&nbsp;|&nbsp;<br/>　　&nbsp;|&nbsp;user　　　　　　|&nbsp;<br/>　　&nbsp;+-----------------+&nbsp;<br/>　　&nbsp;6&nbsp;rows&nbsp;in&nbsp;set&nbsp;(0.01&nbsp;sec)&nbsp;<br/><br/>　　&nbsp;3、显示数据表的结构：&nbsp;<br/>　　&nbsp;describe&nbsp;表名;&nbsp;<br/><br/>　　&nbsp;4、显示表中的记录：&nbsp;<br/>　　&nbsp;sel&#101;ct&nbsp;*&nbsp;from&nbsp;表名;&nbsp;<br/>　　&nbsp;例如：显示mysql库中user表中的纪录。所有能对MySQL用户操作的用户都在此表中。&nbsp;<br/>　　&nbsp;Sel&#101;ct&nbsp;*&nbsp;from&nbsp;user;&nbsp;<br/><br/>　　&nbsp;5、建库：&nbsp;<br/>　　&nbsp;cr&#101;ate&nbsp;database&nbsp;库名;&nbsp;<br/>　　&nbsp;例如：创建一个名字位aaa的库&nbsp;<br/>　　&nbsp;mysql&gt;&nbsp;cr&#101;ate&nbsp;databases&nbsp;aaa;&nbsp;<br/>6、建表：&nbsp;<br/>　　&nbsp;use&nbsp;库名；&nbsp;<br/>　　&nbsp;cr&#101;ate&nbsp;table&nbsp;表名&nbsp;(字段设定列表)；&nbsp;<br/>　　&nbsp;例如：在刚创建的aaa库中建立表name,表中有id(序号，自动增长)，xm（姓名）,xb（性别）,csny（出身年月）四个字段&nbsp;<br/>　　&nbsp;use&nbsp;aaa;&nbsp;<br/>　　&nbsp;mysql&gt;&nbsp;cr&#101;ate&nbsp;table&nbsp;name&nbsp;(id&nbsp;int(3)&nbsp;auto_increment&nbsp;not&nbsp;null&nbsp;primary&nbsp;key,&nbsp;xm&nbsp;char(8),xb&nbsp;char(2),csny&nbsp;date);&nbsp;<br/>　　&nbsp;可以用describe命令察看刚建立的表结构。&nbsp;<br/>　　&nbsp;mysql&gt;&nbsp;describe&nbsp;name;&nbsp;<br/><br/>　　&nbsp;+-------+---------+------+-----+---------+----------------+&nbsp;<br/>　　&nbsp;|&nbsp;Field&nbsp;|&nbsp;Type　　|&nbsp;Null&nbsp;|&nbsp;Key&nbsp;|&nbsp;Default&nbsp;|&nbsp;Extra　　　　　|&nbsp;<br/>　　&nbsp;+-------+---------+------+-----+---------+----------------+&nbsp;<br/>　　&nbsp;|&nbsp;id　　|&nbsp;int(3)　|　　　|&nbsp;PRI&nbsp;|&nbsp;NULL　　|&nbsp;auto_increment&nbsp;|&nbsp;<br/>　　&nbsp;|&nbsp;xm　　|&nbsp;char(8)&nbsp;|&nbsp;YES　|　　&nbsp;|&nbsp;NULL　　|　　　　　　　　|&nbsp;<br/>　　&nbsp;|&nbsp;xb　　|&nbsp;char(2)&nbsp;|&nbsp;YES　|　　&nbsp;|&nbsp;NULL　　|　　　　　　　　|&nbsp;<br/>　　&nbsp;|&nbsp;csny　|&nbsp;date　　|&nbsp;YES　|　　&nbsp;|&nbsp;NULL　　|　　　　　　　　|&nbsp;<br/>　　&nbsp;+-------+---------+------+-----+---------+----------------+&nbsp;<br/><br/>　　&nbsp;7、增加记录&nbsp;<br/>　　&nbsp;例如：增加几条相关纪录。&nbsp;<br/>　　&nbsp;mysql&gt;&nbsp;ins&#101;rt&nbsp;into&nbsp;name&nbsp;values(&#39;&#39;,&#39;张三&#39;,&#39;男&#39;,&#39;1971-10-01&#39;);&nbsp;<br/>　　&nbsp;mysql&gt;&nbsp;ins&#101;rt&nbsp;into&nbsp;name&nbsp;values(&#39;&#39;,&#39;白云&#39;,&#39;女&#39;,&#39;1972-05-20&#39;);&nbsp;<br/>　　&nbsp;可用sel&#101;ct命令来验证结果。&nbsp;<br/>　　&nbsp;mysql&gt;&nbsp;sel&#101;ct&nbsp;*&nbsp;from&nbsp;name;&nbsp;<br/>　　&nbsp;+----+------+------+------------+&nbsp;<br/>　　&nbsp;|&nbsp;id&nbsp;|&nbsp;xm　&nbsp;|&nbsp;xb　&nbsp;|&nbsp;csny　　　&nbsp;|&nbsp;<br/>　　&nbsp;+----+------+------+------------+&nbsp;<br/>　　&nbsp;|　1&nbsp;|&nbsp;张三&nbsp;|&nbsp;男　&nbsp;|&nbsp;1971-10-01&nbsp;|&nbsp;<br/>　　&nbsp;|　2&nbsp;|&nbsp;白云&nbsp;|&nbsp;女　&nbsp;|&nbsp;1972-05-20&nbsp;|&nbsp;<br/>　　&nbsp;+----+------+------+------------+&nbsp;<br/><br/>　　&nbsp;8、修改纪录&nbsp;<br/>　　&nbsp;例如：将张三的出生年月改为1971-01-10&nbsp;<br/>　　&nbsp;mysql&gt;&nbsp;up&#100;ate&nbsp;name&nbsp;set&nbsp;csny=&#39;1971-01-10&#39;&nbsp;wh&#101;re&nbsp;xm=&#39;张三&#39;;&nbsp;<br/><br/>　　&nbsp;9、删除纪录&nbsp;<br/>　　&nbsp;例如：删除张三的纪录。&nbsp;<br/>　　&nbsp;mysql&gt;&nbsp;del&#101;te&nbsp;from&nbsp;name&nbsp;wh&#101;re&nbsp;xm=&#39;张三&#39;;&nbsp;<br/><br/>　　&nbsp;10、删库和删表&nbsp;<br/>　　&nbsp;dro&#112;&nbsp;database&nbsp;库名;&nbsp;<br/>　　&nbsp;dro&#112;&nbsp;table&nbsp;表名；&nbsp;<br/><br/>　　&nbsp;九、增加MySQL用户&nbsp;<br/><br/>　　&nbsp;格式：grant&nbsp;sel&#101;ct&nbsp;on&nbsp;数据库.*&nbsp;to&nbsp;用户名@登录主机&nbsp;identified&nbsp;by&nbsp;&#34;密码&#34;&nbsp;<br/>例1、增加一个用户user_1密码为123，让他可以在任何主机上登录，并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MySQL，然后键入以下命令：&nbsp;<br/><br/>　　&nbsp;mysql&gt;&nbsp;grant&nbsp;sel&#101;ct,ins&#101;rt,up&#100;ate,del&#101;te&nbsp;on&nbsp;*.*&nbsp;to&nbsp;user_1@&#34;%&#34;&nbsp;Identified&nbsp;by&nbsp;&#34;123&#34;;&nbsp;<br/>例1增加的用户是十分危险的，如果知道了user_1的密码，那么他就可以在网上的任何一台电脑上登录你的MySQL数据库并对你的数据为所欲为了，解决办法见例2。&nbsp;<br/><br/>　　&nbsp;例2、增加一个用户user_2密码为123,让此用户只可以在localhost上登录，并可以对数据库aaa进行查询、插入、修改、删除的操作（localhost指本地主机，即MySQL数据库所在的那台主机），这样用户即使用知道user_2的密码，他也无法从网上直接访问数据库，只能通过MYSQL主机来操作aaa库。&nbsp;<br/><br/>　　&nbsp;mysql&gt;grant&nbsp;sel&#101;ct,ins&#101;rt,up&#100;ate,del&#101;te&nbsp;on&nbsp;aaa.*&nbsp;to&nbsp;user_2@localhost&nbsp;identified&nbsp;by&nbsp;&#34;123&#34;;&nbsp;<br/><br/>　　&nbsp;用新增的用户如果登录不了MySQL，在登录时用如下命令：&nbsp;<br/><br/>　　&nbsp;mysql&nbsp;-u&nbsp;user_1&nbsp;-p　-h&nbsp;192.168.113.50　（-h后跟的是要登录主机的ip地址）&nbsp;<br/><br/>　　&nbsp;十、备份与恢复&nbsp;<br/><br/>　　&nbsp;1、备份&nbsp;<br/><br/>　　&nbsp;例如：将上例创建的aaa库备份到文件back_aaa中&nbsp;<br/><br/>　　&nbsp;[root@test1&nbsp;root]#&nbsp;cd　/home/data/mysql　(进入到库目录，本例库已由val/lib/mysql转到/home/data/mysql，见上述第七部分内容)&nbsp;<br/>　　&nbsp;[root@test1&nbsp;mysql]#&nbsp;mysqldump&nbsp;-u&nbsp;root&nbsp;-p&nbsp;--opt&nbsp;aaa&nbsp;&gt;&nbsp;back_aaa&nbsp;<br/><br/>　　&nbsp;2、恢复&nbsp;<br/><br/>　　&nbsp;[root@test&nbsp;mysql]#&nbsp;mysql&nbsp;-u&nbsp;root&nbsp;-p&nbsp;ccc&nbsp;&lt;&nbsp;back_aaa<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.net0577.com/default.asp?id=154</link>
			<title><![CDATA[mysql常用命令2]]></title>
			<author>xdf1159@126.com(admin)</author>
			<category><![CDATA[技术文章]]></category>
			<pubDate>Thu,04 Dec 2008 10:08:16 +0800</pubDate>
			<guid>http://www.net0577.com/default.asp?id=154</guid>	
		<description><![CDATA[mysql常用命令&nbsp;<br/>&nbsp;<br/>一、总结一下linux下使用mysql一些常用命令：<br/><br/>1.linux下启动mysql的命令：<br/>&nbsp;&nbsp;&nbsp;mysqladmin&nbsp;start<br/>/ect/init.d/mysql&nbsp;start&nbsp;(前面为mysql的安装路径)<br/><br/>2.linux下重启mysql的命令：<br/>&nbsp;&nbsp;&nbsp;mysqladmin&nbsp;restart<br/>/ect/init.d/mysql&nbsp;restart&nbsp;(前面为mysql的安装路径)<br/><br/>3.linux下关闭mysql的命令：<br/>&nbsp;&nbsp;&nbsp;mysqladmin&nbsp;shutdown<br/>&nbsp;&nbsp;&nbsp;/ect/init.d/mysql&nbsp;&nbsp;&nbsp;shutdown&nbsp;(前面为mysql的安装路径)<br/><br/>4.连接本机上的mysql：<br/>进入目录mysql\bin，再键入命令mysql&nbsp;-uroot&nbsp;-p，&nbsp;回车后提示输入密码。<br/>退出mysql命令：exit（回车）<br/><br/>5.修改mysql密码：<br/>mysqladmin&nbsp;-u用户名&nbsp;-p旧密码&nbsp;password&nbsp;新密码<br/>或进入mysql命令行SET&nbsp;PASSWORD&nbsp;FOR&nbsp;root=PASSWORD(&#34;root&#34;);<br/><br/>6.增加新用户。（注意：mysql环境中的命令后面都带一个分号作为命令结束符）<br/>grant&nbsp;sel&#101;ct&nbsp;on&nbsp;数据库.*&nbsp;to&nbsp;用户名@登录主机&nbsp;identified&nbsp;by&nbsp;&#34;密码&#34;<br/>如增加一个用户test密码为123，让他可以在任何主机上登录，&nbsp;并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql，然后键入以下命令：<br/>grant&nbsp;sel&#101;ct,ins&#101;rt,up&#100;ate,del&#101;te&nbsp;on&nbsp;*.*&nbsp;to&nbsp;&#34;&nbsp;Identified&nbsp;by&nbsp;&#34;123&#34;;<br/><br/>二、有关mysql数据库方面的操作<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;必须首先登录到mysql中，有关操作都是在mysql的提示符下进行，而且每个命令以分号结束<br/><br/>1、显示数据库列表。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show&nbsp;databases;<br/>2、显示库中的数据表：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;use&nbsp;mysql；&nbsp;／／打开库<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show&nbsp;tables;<br/>3、显示数据表的结构：<br/>&nbsp;&nbsp;&nbsp;&nbsp;describe&nbsp;表名;<br/>4、建库：<br/>&nbsp;&nbsp;&nbsp;&nbsp;cr&#101;ate&nbsp;database&nbsp;库名;<br/>5、建表：<br/>&nbsp;&nbsp;&nbsp;&nbsp;use&nbsp;库名；<br/>&nbsp;&nbsp;&nbsp;&nbsp;cr&#101;ate&nbsp;table&nbsp;表名(字段设定列表)；<br/>6、删库和删表:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dro&#112;&nbsp;database&nbsp;库名;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dro&#112;&nbsp;table&nbsp;表名；<br/>7、将表中记录清空：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;del&#101;te&nbsp;from&nbsp;表名;<br/>8、显示表中的记录：<br/>&nbsp;&nbsp;&nbsp;&nbsp;sel&#101;ct&nbsp;*&nbsp;from&nbsp;表名;<br/><br/>9、编码的修改<br/>如果要改变整个mysql的编码格式：&nbsp;<br/>启动mysql的时候，mysqld_safe命令行加入&nbsp;<br/>--default-character-set=gbk&nbsp;<br/><br/>如果要改变某个库的编码格式：在mysql提示符后输入命令&nbsp;<br/>alt&#101;r&nbsp;database&nbsp;db_name&nbsp;default&nbsp;character&nbsp;set&nbsp;gbk;<br/><br/>补充：<br/><br/>10、查看字符编码<br/><br/>show&nbsp;variables&nbsp;like&nbsp;&#39;%character%&#39;;<br/><br/>11、查询连接mysql服务器的进程列表<br/><br/>show&nbsp;full&nbsp;processlist;<br/><br/>12、杀掉连接mysql服务器的进程<br/><br/>kill&nbsp;[11中查出来的进程id]<br/><br/>三、数据的导入导出<br/><br/>1、文本数据转到数据库中<br/>&nbsp;&nbsp;&nbsp;&nbsp;文本数据应符合的格式：字段数据之间用tab键隔开，null值用来代替。例：<br/>&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;name&nbsp;duty&nbsp;2006-11-23<br/>&nbsp;&nbsp;&nbsp;&nbsp;数据传入命令&nbsp;load&nbsp;data&nbsp;local&nbsp;infile&nbsp;&#34;文件名&#34;&nbsp;into&nbsp;table&nbsp;表名;<br/><br/>2、导出数据库和表<br/>&nbsp;&nbsp;&nbsp;&nbsp;mysqldump&nbsp;--opt&nbsp;news&nbsp;&gt;&nbsp;news.sql（将数据库news中的所有表备份到news.sql文件，news.sql是一个文本文件，文件名任取。）<br/>&nbsp;&nbsp;&nbsp;&nbsp;mysqldump&nbsp;--opt&nbsp;news&nbsp;author&nbsp;article&nbsp;&gt;&nbsp;author.article.sql（将数据库news中的author表和article表备份到author.article.sql文件，author.article.sql是一个文本文件，文件名任取。）<br/>&nbsp;&nbsp;&nbsp;&nbsp;mysqldump&nbsp;--databases&nbsp;db1&nbsp;db2&nbsp;&gt;&nbsp;news.sql（将数据库dbl和db2备份到news.sql文件，news.sql是一个文本文件，文件名任取。）<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mysqldump&nbsp;-h&nbsp;host&nbsp;-u&nbsp;user&nbsp;-p&nbsp;pass&nbsp;--databases&nbsp;dbname&nbsp;&gt;&nbsp;file.dump<br/>就是把host上的以名字user，口令pass的数据库dbname导入到文件file.dump中<br/>&nbsp;&nbsp;&nbsp;&nbsp;mysqldump&nbsp;--all-databases&nbsp;&gt;&nbsp;all-databases.sql（将所有数据库备份到all-databases.sql文件，all-databases.sql是一个文本文件，文件名任取。）<br/><br/>3、导入数据<br/>&nbsp;&nbsp;&nbsp;&nbsp;mysql&nbsp;&lt;&nbsp;all-databases.sql（导入数据库）<br/>&nbsp;&nbsp;&nbsp;&nbsp;mysql&gt;source&nbsp;news.sql;（在mysql命令下执行，可导入表）<br/>&nbsp;<br/>&nbsp;<br/>&nbsp;<br/>1.增加一个字段(一列)&nbsp;<br/><br/>alt&#101;r&nbsp;table&nbsp;table_name&nbsp;add&nbsp;column&nbsp;column_name&nbsp;type&nbsp;default&nbsp;value;&nbsp;type指该字段的类型,value指该字段的默认值&nbsp;<br/><br/>例如:alt&#101;r&nbsp;table&nbsp;mybook&nbsp;add&nbsp;column&nbsp;publish_house&nbsp;varchar(10)&nbsp;default&nbsp;&#39;&#39;;&nbsp;<br/><br/>2.更改一个字段名字(也可以改变类型和默认值)&nbsp;<br/><br/>alt&#101;r&nbsp;table&nbsp;table_name&nbsp;change&nbsp;sorce_col_name&nbsp;dest_col_name&nbsp;type&nbsp;default&nbsp;value;&nbsp;source_col_name指原来的字段名称,dest_col_name指改后的字段名称&nbsp;<br/><br/>例如:alt&#101;r&nbsp;table&nbsp;Board_Info&nbsp;change&nbsp;IsMobile&nbsp;IsTelphone&nbsp;int(3)&nbsp;unsigned&nbsp;default&nbsp;1;&nbsp;<br/><br/>3.改变一个字段的默认值&nbsp;<br/><br/>alt&#101;r&nbsp;table&nbsp;table_name&nbsp;alt&#101;r&nbsp;column_name&nbsp;set&nbsp;default&nbsp;value;&nbsp;<br/><br/>例如:alt&#101;r&nbsp;table&nbsp;book&nbsp;alt&#101;r&nbsp;flag&nbsp;set&nbsp;default&nbsp;&#39;0&#39;;&nbsp;<br/><br/>4.改变一个字段的数据类型&nbsp;<br/><br/>alt&#101;r&nbsp;table&nbsp;table_name&nbsp;change&nbsp;column&nbsp;column_name&nbsp;column_name&nbsp;type;&nbsp;<br/><br/>例如:alt&#101;r&nbsp;table&nbsp;userinfo&nbsp;change&nbsp;column&nbsp;username&nbsp;username&nbsp;varchar(20);&nbsp;<br/><br/>5.向一个表中增加一个列做为主键&nbsp;<br/><br/>alt&#101;r&nbsp;table&nbsp;table_name&nbsp;add&nbsp;column&nbsp;column_name&nbsp;type&nbsp;auto_increment&nbsp;PRIMARY&nbsp;KEY;&nbsp;<br/><br/>例如:alt&#101;r&nbsp;table&nbsp;book&nbsp;add&nbsp;column&nbsp;id&nbsp;int(10)&nbsp;auto_increment&nbsp;PRIMARY&nbsp;KEY;&nbsp;<br/><br/>6.数据库某表的备份,在命令行中输入:&nbsp;<br/><br/>mysqldump&nbsp;-u&nbsp;root&nbsp;-p&nbsp;database_name&nbsp;table_name&nbsp;&gt;&nbsp;bak_file_name&nbsp;<br/><br/>例如:mysqldump&nbsp;-u&nbsp;root&nbsp;-p&nbsp;f_info&nbsp;user_info&nbsp;&gt;&nbsp;user_info.dat&nbsp;<br/><br/>7.导出数据&nbsp;<br/><br/>sel&#101;ct_statment&nbsp;into&nbsp;outfile&#34;dest_file&#34;;&nbsp;<br/><br/>例如:sel&#101;ct&nbsp;cooperatecode,cr&#101;atetime&nbsp;from&nbsp;publish&nbsp;limit&nbsp;10&nbsp;into&nbsp;outfile&#34;/home/mzc/temp/tempbad.txt&#34;;&nbsp;<br/><br/>8.导入数据&nbsp;<br/><br/>load&nbsp;data&nbsp;infile&#34;file_name&#34;&nbsp;into&nbsp;table&nbsp;table_name;&nbsp;<br/><br/>例如:load&nbsp;data&nbsp;infile&#34;/home/mzc/temp/tempbad.txt&#34;&nbsp;into&nbsp;table&nbsp;pad;&nbsp;<br/><br/>9.将两个表里的数据拼接后插入到另一个表里。下面的例子说明将t1表中的com2和t2表中的com1字段的值拼接后插入到tx表对应的字段里。&nbsp;<br/><br/>例如:ins&#101;rt&nbsp;into&nbsp;tx&nbsp;sel&#101;ct&nbsp;t1.com1,concat(t1.com2,t2.com1)&nbsp;from&nbsp;t1,t2;]]></description>
		</item>
		
			<item>
			<link>http://www.net0577.com/default.asp?id=153</link>
			<title><![CDATA[mysql常用命令1]]></title>
			<author>xdf1159@126.com(admin)</author>
			<category><![CDATA[技术文章]]></category>
			<pubDate>Thu,04 Dec 2008 10:07:20 +0800</pubDate>
			<guid>http://www.net0577.com/default.asp?id=153</guid>	
		<description><![CDATA[1、系统管理<br/><br/>mysql&nbsp;-h主机地址&nbsp;-u&nbsp;用户名&nbsp;-p&nbsp;<br/>连接MYSQL（在mysql/bin）<br/><br/>exit&nbsp;<br/>退出MYSQL命令<br/><br/>mysqladmin&nbsp;-u用户名&nbsp;-p旧密码&nbsp;password新密码&nbsp;<br/>修改密码（在mysql/bin）<br/><br/>grantsel&#101;ct[ins&#101;rt][,up&#100;ate][,del&#101;te]on数据库.*to用户名@localhost（&#34;%&#34;，&nbsp;表示任何主机）identifiedby&nbsp;&#34;密码&#34;&nbsp;<br/>增加用户<br/><br/>mysqldump&nbsp;–u&nbsp;root&nbsp;–p&nbsp;­­opt数据库名&gt;备份文件名&nbsp;<br/>备份数据库（在mysql/bin）<br/><br/>mysql&nbsp;–u&nbsp;root&nbsp;–p&nbsp;&lt;&nbsp;batch­file&nbsp;（例如备份文件名）&nbsp;<br/>使用批处理<br/><br/>mysql.server&nbsp;start&nbsp;<br/>启动服务器<br/><br/>mysql.server&nbsp;stop&nbsp;<br/>停止服务器<br/><br/>msql.server­­log<br/><br/><br/>2、查询命令<br/><br/>sel&#101;ct&nbsp;version()&nbsp;<br/>查询版本号<br/><br/>sel&#101;ct&nbsp;current_date&nbsp;<br/>查询当前日期<br/><br/><br/>3、显示命令<br/><br/>show&nbsp;databases&nbsp;<br/>显示数据库列表<br/><br/>show&nbsp;tables&nbsp;显示库中的数据表<br/><br/>describe&nbsp;表名&nbsp;显示数据表的结构<br/><br/>sel&#101;ct&nbsp;*&nbsp;from&nbsp;表名&nbsp;显示表中的记录<br/><br/>sel&#101;ct&nbsp;what_to_sel&#101;ct&nbsp;from&nbsp;which&nbsp;table&nbsp;[wh&#101;reconditions_to_satisfy&nbsp;and&nbsp;(or)&nbsp;wh&#101;re&nbsp;conditions_to_satisfy]&nbsp;从一个表中检索数据『满足条件』<br/><br/>sel&#101;ct&nbsp;字段1,字段2,…&nbsp;from&nbsp;表名&nbsp;显示特定列的值<br/><br/>sel&#101;ct&nbsp;*&nbsp;from&nbsp;表名&nbsp;o&#114;der&nbsp;by&nbsp;字段名&nbsp;排序行<br/><br/>sel&#101;ct&nbsp;字段1,包含字段2的运算式as&nbsp;新字段&nbsp;from&nbsp;表名&nbsp;字段值运算操作<br/><br/>sel&#101;ct&nbsp;字段1&nbsp;is&nbsp;null（is&nbsp;not&nbsp;null）&nbsp;空值操作<br/><br/>Sel&#101;ct*from表名wh&#101;re字段名like（not&nbsp;like）&nbsp;“&nbsp;字符”&nbsp;<br/>注：&nbsp;允许使用“_”匹配任何单个字符，&nbsp;而“％”&nbsp;匹配任意数目字符&nbsp;模式匹配<br/><br/>Sel&#101;ct&nbsp;*&nbsp;from表名wh&#101;re字段名regexp（not&nbsp;regexp）或者rlike（not&nbsp;rlike）&nbsp;“.”匹配任何单个的字符&nbsp;一个字符类[…]匹配方框内任何字符。例如[a]，[asd]，[az]&nbsp;匹配任何小写字母，[09]&nbsp;匹配任何数<br/><br/>字。&nbsp;“*”匹配零个或者多个在它前面的东西。&nbsp;正则表达式区分大小写[aA]&nbsp;。&nbsp;如果它出现在被测试值的任何地方，模式都匹配。&nbsp;定位，在模式开始处用“^”，结尾处用“$”，例如“^b”&nbsp;<br/>扩展正则表达式<br/><br/>Sel&#101;ct&nbsp;count(*)&nbsp;from&nbsp;表名&nbsp;<br/>Sel&#101;ct&nbsp;字段名，count(*)&nbsp;from&nbsp;表名&nbsp;group&nbsp;by&nbsp;字段名&nbsp;行计数<br/><br/><br/>4、编辑命令<br/><br/>use&nbsp;database&nbsp;库名&nbsp;<br/>使用的数据库<br/><br/>cr&#101;ate&nbsp;database&nbsp;库名&nbsp;<br/>创建数据库<br/><br/>cr&#101;ate&nbsp;table&nbsp;表名&nbsp;<br/>在数据库中创建表<br/><br/>ins&#101;rt&nbsp;into表名values&nbsp;(“data”,”data”)&nbsp;<br/>向表中添加记录<br/><br/>Load&nbsp;data&nbsp;infile&nbsp;“/path/filename”&nbsp;intotable&nbsp;表名&nbsp;<br/>从文件中向表添加数据，&nbsp;文件每行包括一条记录，&nbsp;用定位符（tab）&nbsp;把值分开。<br/><br/>dro&#112;&nbsp;database&nbsp;库名&nbsp;<br/>删除数据库<br/><br/>dro&#112;&nbsp;table&nbsp;表名&nbsp;<br/>删除数据库中的表<br/><br/>del&#101;te&nbsp;from表名wh&#101;re&nbsp;<br/>删除数据库表中的记录<br/><br/>Up&#100;ate表名set字段＝”值”&nbsp;wh&#101;rewh&#101;reconditions_to_satisfy&nbsp;<br/>更新数据库表中记录的值<br/><br/><br/>Mysql数据库是一个多用户，多线程的关系型数据库，是一个客户机/服务器结构的应用程序。它是对个人用户和商业用户是免费的.<br/><br/><br/>Mysql数据库具有以下优点：<br/><br/><br/>1.同时访问数据库的用户的数量不受限制<br/><br/>2.可以保存超过5千万条的记录<br/><br/>3.是目前市场上现有数据库产品中运行速度最快的数据库系统<br/><br/>4.用户权限设置简单、有效。<br/><br/><br/>Mysql数据库常用命令：<br/><br/><br/>启动Mysql数据库<br/><br/><br/>C:\&gt;cd&nbsp;Mysql5.0\bin<br/><br/>C:\Mysql5.0\bin&gt;mysqld&nbsp;–install&nbsp;安装Mysql服务<br/><br/>C:\Mysql5.0\bin&gt;net&nbsp;start&nbsp;mysql&nbsp;启动Mysql服务<br/><br/>请求的服务已经启动。<br/><br/><br/>连接mysql<br/><br/>用户需要提供Mysql的用户名和密码来连接服务器，如果服务器不是在本机，则还需要一个主机名或IP来指定服务器的位置。<br/><br/>C:\Mysql5.0\bin&gt;mysql&nbsp;-h&nbsp;localhost&nbsp;-u&nbsp;root&nbsp;-p<br/><br/>Enter&nbsp;password:&nbsp;****<br/><br/>Welcome&nbsp;to&nbsp;the&nbsp;MySQL&nbsp;monitor.&nbsp;Commands&nbsp;end&nbsp;with&nbsp;;&nbsp;o&#114;&nbsp;\g.<br/><br/>Your&nbsp;MySQL&nbsp;connection&nbsp;id&nbsp;is&nbsp;6&nbsp;to&nbsp;server&nbsp;version:&nbsp;5.0.18-nt<br/><br/><br/>Type&nbsp;&#39;help;&#39;&nbsp;o&#114;&nbsp;&#39;\h&#39;&nbsp;for&nbsp;help.&nbsp;Type&nbsp;&#39;\c&#39;&nbsp;to&nbsp;clear&nbsp;the&nbsp;buffer.<br/><br/><br/>mysql&gt;<br/><br/>使用一条简单的查询语句<br/><br/><br/>mysql&gt;&nbsp;sel&#101;ct&nbsp;version(),current_date;<br/><br/>mysql&gt;&nbsp;sel&#101;ct&nbsp;version();sel&#101;ct&nbsp;now();<br/><br/><br/>新建或删除一个数据库<br/><br/><br/>Mysql&gt;cr&#101;ate&nbsp;database&nbsp;mydb;<br/><br/>Mysql&gt;&nbsp;dro&#112;&nbsp;database&nbsp;mydb;<br/><br/><br/>打开的数据库的命令<br/><br/><br/>mysql&gt;&nbsp;use&nbsp;mysql<br/><br/>Database&nbsp;changed<br/><br/><br/>查看数据库的命令<br/><br/><br/>mysql&gt;&nbsp;show&nbsp;databases;<br/><br/><br/>查看数据表的详细结构<br/><br/><br/>mysql&gt;&nbsp;desc&nbsp;func;<br/><br/><br/>新建数据库<br/><br/><br/>mysql&gt;&nbsp;cr&#101;ate&nbsp;database&nbsp;school;<br/><br/>Query&nbsp;OK,&nbsp;1&nbsp;row&nbsp;affected&nbsp;(0.00&nbsp;sec)<br/><br/><br/>新建表<br/><br/><br/>mysql&gt;&nbsp;cr&#101;ate&nbsp;table&nbsp;user01(<br/><br/>-&gt;&nbsp;id&nbsp;varchar(20)&nbsp;NOT&nbsp;NULL,<br/><br/>-&gt;&nbsp;userName&nbsp;varchar(10)&nbsp;NOT&nbsp;NULL,<br/><br/>-&gt;&nbsp;age&nbsp;int(11)&nbsp;default&#39;0&#39;,<br/><br/>-&gt;&nbsp;sex&nbsp;char(2)&nbsp;NOT&nbsp;NULL&nbsp;default&#39;m&#39;,<br/><br/>-&gt;&nbsp;PRIMARY&nbsp;KEY&nbsp;(id)<br/><br/>-&gt;&nbsp;)TYPE=InnoDB;<br/><br/>Query&nbsp;OK,&nbsp;0&nbsp;rows&nbsp;affected,&nbsp;1&nbsp;warning&nbsp;(0.02&nbsp;sec)mysql&gt;desc&nbsp;student;<br/><br/><br/>插入和删除表中的数据<br/><br/><br/>Cr&#101;ate&nbsp;table&nbsp;student(stuName&nbsp;varchar(20),age&nbsp;varchar(20),id&nbsp;varchar(20),set0&nbsp;char(1));<br/><br/><br/>插入<br/><br/><br/>mysql&gt;&nbsp;ins&#101;rt&nbsp;into&nbsp;student(id,stuName)&nbsp;values(&#39;1&#39;,&#39;tomcat&#39;);<br/><br/>Query&nbsp;OK,&nbsp;1&nbsp;row&nbsp;affected&nbsp;(0.00&nbsp;sec)<br/><br/><br/>删除<br/><br/><br/>mysql&gt;&nbsp;del&#101;te&nbsp;from&nbsp;student&nbsp;wh&#101;re&nbsp;id=&#39;1&#39;;<br/><br/>Query&nbsp;OK,&nbsp;1&nbsp;row&nbsp;affected&nbsp;(0.01&nbsp;sec)<br/><br/><br/>删除表中所有数据<br/><br/><br/>mysql&gt;&nbsp;truncate&nbsp;table&nbsp;student;<br/><br/>Query&nbsp;OK,&nbsp;1&nbsp;row&nbsp;affected&nbsp;(0.01&nbsp;sec)<br/><br/><br/>删除表<br/><br/><br/>mysql&gt;&nbsp;cr&#101;ate&nbsp;table&nbsp;temp(t&nbsp;varchar(1));<br/><br/>Query&nbsp;OK,&nbsp;0&nbsp;rows&nbsp;affected&nbsp;(0.00&nbsp;sec)<br/><br/><br/>mysql&gt;&nbsp;dro&#112;&nbsp;table&nbsp;temp;<br/><br/>Query&nbsp;OK,&nbsp;0&nbsp;rows&nbsp;affected&nbsp;(0.00&nbsp;sec)<br/><br/><br/>创建新用户并给予权限<br/><br/><br/>mysql&gt;&nbsp;grant&nbsp;all&nbsp;privileges&nbsp;on&nbsp;*.*&nbsp;to&nbsp;dbuser@localhost&nbsp;identified&nbsp;by&nbsp;&#39;1234&#39;<br/><br/>with&nbsp;grant&nbsp;option;<br/><br/><br/>更改Mysql用户密码<br/><br/><br/>c:\Mysql5.0\bin&gt;mysqladmin&nbsp;-u&nbsp;root&nbsp;-p&nbsp;password&nbsp;1234<br/><br/>Enter&nbsp;password:&nbsp;****<br/><br/><br/>备份数据库及表<br/><br/><br/>我们用mysqldump命令来备份数据库<br/><br/>c:\mysql\bin\&gt;mysqldump&nbsp;–u&nbsp;root&nbsp;–p&nbsp;3306&nbsp;mysql&gt;d:\backup.sql<br/><br/>执行此语句将把mydb&nbsp;备份到D盘的backup.sql文件中<br/><br/><br/>备份多个数据库表<br/><br/><br/>c:\mysql\bin\&gt;mysqldump&nbsp;–u&nbsp;root&nbsp;–p&nbsp;3306&nbsp;school&nbsp;user01&nbsp;user&nbsp;&gt;d:\backup.sql<br/><br/>此句的意思是把school库中的user01表和user表的内容和表的定义备份到D盘backup.sql文件中。<br/><br/><br/>备份所有的数据库<br/><br/><br/>c:\myql\bin&gt;mysqldump&nbsp;–u&nbsp;root&nbsp;–p&nbsp;3306&nbsp;–all&nbsp;–database&gt;d:backup.sql<br/><br/><br/>还原Mysql数据库<br/><br/>c:\mysql\bin\mysql&nbsp;–u&nbsp;root&nbsp;–p&nbsp;3306&nbsp;school&nbsp;<br/><br/>还原其中的一个表<br/><br/><br/>mysql&gt;&nbsp;source&nbsp;d:\books.sql;<br/><br/>ERROR:<br/><br/>Unknown&nbsp;command&nbsp;&#39;\b&#39;.<br/><br/>Query&nbsp;OK,&nbsp;0&nbsp;rows&nbsp;affected&nbsp;(0.00&nbsp;sec)<br/><br/>Query&nbsp;OK,&nbsp;1&nbsp;row&nbsp;affected&nbsp;(0.00&nbsp;sec)<br/><br/><br/>退出Mysql连接<br/><br/><br/>mysql&gt;quit(exit)<br/><br/><br/>关闭mysql服务<br/><br/><br/>C:\mysql\bin&gt;net&nbsp;mysql<br/><br/>1、启动MySQL服务器<br/><br/>实际上上篇已讲到如何启动MySQL。两种方法：&nbsp;一是用winmysqladmin，如果机器启动时已自动运行，则可直接进入下一步操作。&nbsp;二是在DOS方式下运行&nbsp;d:mysqlbinmysqld<br/><br/>2、进入mysql交互操作界面<br/><br/>在DOS方式下，运行：&nbsp;d:mysqlbinmysql<br/><br/>出现:&nbsp;mysql&nbsp;的提示符，此时已进入mysql的交互操作方式。<br/><br/>如果出现&nbsp;&#34;ERROR&nbsp;2003:&nbsp;Can′t&nbsp;connect&nbsp;to&nbsp;MySQL&nbsp;server&nbsp;on&nbsp;′localhost′&nbsp;(10061)“，<br/><br/>说明你的MySQL还没有启动。<br/><br/>3、退出MySQL操作界面<br/><br/>在mysql&gt;提示符下输入quit可以随时退出交互操作界面：<br/><br/>mysql&gt;&nbsp;quit<br/><br/>Bye<br/><br/>你也可以用control-D退出。<br/><br/><br/>4、第一条命令<br/><br/>mysql&gt;&nbsp;sel&#101;ct&nbsp;version(),current_date();<br/><br/>+----------------+-----------------+<br/><br/>|&nbsp;version()&nbsp;|&nbsp;current_date()&nbsp;|<br/><br/>+----------------+-----------------+<br/><br/>|&nbsp;3.23.25a-debug&nbsp;|&nbsp;2001-05-17&nbsp;|<br/><br/>+----------------+-----------------+<br/><br/>1&nbsp;row&nbsp;in&nbsp;set&nbsp;(0.01&nbsp;sec)<br/><br/>mysql&gt;<br/><br/>此命令要求mysql服务器告诉你它的版本号和当前日期。尝试用不同大小写操作上述命令，看结果如何。结果说明mysql命令的大小写结果是一致的。<br/><br/>练习如下操作：<br/><br/>mysql&gt;Sel&#101;ct&nbsp;(20+5)*4;<br/><br/>mysql&gt;Sel&#101;ct&nbsp;(20+5)*4,sin(pi()/3);<br/><br/>mysql&gt;Sel&#101;ct&nbsp;(20+5)*4&nbsp;AS&nbsp;Result,sin(pi()/3);&nbsp;(AS:&nbsp;指定假名为Result)<br/><br/>5、多行语句<br/><br/>一条命令可以分成多行输入，直到出现分号“；”为止：<br/><br/><br/>bordercolorlight&nbsp;=&nbsp;&#34;black&#34;&nbsp;bordercolordark&nbsp;=&nbsp;&#34;#FFFFFF&#34;&nbsp;align=&#34;center&#34;&gt;&nbsp;<br/><br/>mysql&gt;&nbsp;sel&#101;ct&nbsp;<br/>-&gt;&nbsp;USER()&nbsp;<br/>-&gt;&nbsp;,&nbsp;<br/>-&gt;&nbsp;now()&nbsp;<br/>-&gt;;&nbsp;<br/>+--------------------+---------------------+&nbsp;<br/>|&nbsp;USER()&nbsp;|&nbsp;now()&nbsp;|&nbsp;<br/>+--------------------+---------------------+&nbsp;<br/>|&nbsp;ODBC@localhost&nbsp;|&nbsp;2001-05-17&nbsp;22:59:15&nbsp;|&nbsp;<br/>+--------------------+---------------------+&nbsp;<br/>1&nbsp;row&nbsp;in&nbsp;set&nbsp;(0.06&nbsp;sec)&nbsp;<br/>mysql&gt;<br/><br/>注意中间的逗号和最后的分号的使用方法。<br/><br/>6、一行多命令<br/><br/>输入如下命令：<br/><br/>mysql&gt;&nbsp;Sel&#101;ct&nbsp;USER();&nbsp;Sel&#101;ct&nbsp;NOW();&nbsp;<br/>+------------------+&nbsp;<br/>|&nbsp;USER()&nbsp;|&nbsp;<br/>+------------------+&nbsp;<br/>|&nbsp;ODBC@localhost&nbsp;|&nbsp;<br/>+------------------+&nbsp;<br/>1&nbsp;row&nbsp;in&nbsp;set&nbsp;(0.00&nbsp;sec)<br/><br/>+---------------------+&nbsp;<br/>|&nbsp;NOW()&nbsp;|&nbsp;<br/>+---------------------+&nbsp;<br/>|&nbsp;2001-05-17&nbsp;23:06:15&nbsp;|&nbsp;<br/>+---------------------+&nbsp;<br/>1&nbsp;row&nbsp;in&nbsp;set&nbsp;(0.00&nbsp;sec)&nbsp;<br/>mysql&gt;<br/><br/>注意中间的分号，命令之间用分号隔开。<br/><br/>7、显示当前存在的数据库<br/><br/>mysql&gt;&nbsp;show&nbsp;databases;&nbsp;<br/>+----------+&nbsp;<br/>|&nbsp;Database&nbsp;|&nbsp;<br/>+----------+&nbsp;<br/>|&nbsp;mysql&nbsp;|&nbsp;<br/>|&nbsp;test&nbsp;|&nbsp;<br/>+----------+&nbsp;<br/>2&nbsp;row&nbsp;in&nbsp;set&nbsp;(0.06&nbsp;sec)&nbsp;<br/>mysql&gt;<br/><br/>8、选择数据库并显示当前选择的数据库<br/><br/>mysql&gt;&nbsp;USE&nbsp;mysql&nbsp;<br/>Database&nbsp;changed&nbsp;<br/>mysql&gt;&nbsp;<br/>(USE&nbsp;和&nbsp;QUIT&nbsp;命令不需要分号结束。）&nbsp;<br/>mysql&gt;&nbsp;sel&#101;ct&nbsp;database();&nbsp;<br/>+---------------+&nbsp;<br/>|&nbsp;database()&nbsp;|&nbsp;<br/>+---------------+&nbsp;<br/>|&nbsp;mysql&nbsp;|&nbsp;<br/>+---------------+&nbsp;<br/>1&nbsp;row&nbsp;in&nbsp;set&nbsp;(0.00&nbsp;sec)<br/><br/>9、显示当前数据库中存在的表&nbsp;<br/>mysql&gt;&nbsp;SHOW&nbsp;TABLES;<br/><br/>10、显示表(db)的内容&nbsp;<br/>mysql&gt;sel&#101;ct&nbsp;*&nbsp;from&nbsp;db;<br/><br/>11、命令的取消<br/><br/>当命令输入错误而又无法改变（多行语句情形）时，只要在分号出现前就可以用&nbsp;c来取消该条命令<br/><br/>mysql&gt;&nbsp;sel&#101;ct&nbsp;<br/>-&gt;&nbsp;user()&nbsp;<br/>-&gt;&nbsp;c&nbsp;<br/>mysql<br/><br/><br/>1、MySQL常用命令<br/>cr&#101;ate&nbsp;database&nbsp;name;&nbsp;创建数据库<br/>use&nbsp;databasename;&nbsp;选择数据库<br/>dro&#112;&nbsp;database&nbsp;name&nbsp;直接删除数据库，不提醒<br/>show&nbsp;tables;&nbsp;显示表<br/>describe&nbsp;tablename;&nbsp;表的详细描述<br/>sel&#101;ct&nbsp;中加上distinct去除重复字段<br/>mysqladmin&nbsp;dro&#112;&nbsp;databasename&nbsp;删除数据库前，有提示。<br/>显示当前mysql版本和当前日期<br/>sel&#101;ct&nbsp;version(),current_date;<br/><br/>2、修改mysql中root的密码：<br/>shell&gt;mysql&nbsp;-u&nbsp;root&nbsp;-p<br/>mysql&gt;&nbsp;up&#100;ate&nbsp;user&nbsp;set&nbsp;password=password(”xueok654123″)&nbsp;wh&#101;re&nbsp;user=’root’;<br/>mysql&gt;&nbsp;flush&nbsp;privileges&nbsp;//刷新数据库<br/>mysql&gt;use&nbsp;dbname；&nbsp;打开数据库：<br/>mysql&gt;show&nbsp;databases;&nbsp;显示所有数据库<br/>mysql&gt;show&nbsp;tables;&nbsp;显示数据库mysql中所有的表：先use&nbsp;mysql；然后<br/>mysql&gt;describe&nbsp;user;&nbsp;显示表mysql数据库中user表的列信息）；<br/><br/>3、grant<br/>创建一个可以从任何地方连接服务器的一个完全的超级用户，但是必须使用一个口令something做这个<br/><br/>mysql&gt;&nbsp;grant&nbsp;all&nbsp;privileges&nbsp;on&nbsp;*.*&nbsp;to&nbsp;user@localhost&nbsp;identified&nbsp;by&nbsp;’something’&nbsp;with<br/>增加新用户<br/>格式：grant&nbsp;sel&#101;ct&nbsp;on&nbsp;数据库.*&nbsp;to&nbsp;用户名@登录主机&nbsp;identified&nbsp;by&nbsp;“密码”<br/><br/>GRANT&nbsp;ALL&nbsp;PRIVILEGES&nbsp;ON&nbsp;*.*&nbsp;TO&nbsp;monty@localhost&nbsp;IDENTIFIED&nbsp;BY&nbsp;’something’&nbsp;WITH&nbsp;GRANT&nbsp;OPTION;<br/>GRANT&nbsp;ALL&nbsp;PRIVILEGES&nbsp;ON&nbsp;*.*&nbsp;TO&nbsp;monty@”%”&nbsp;IDENTIFIED&nbsp;BY&nbsp;’something’&nbsp;WITH&nbsp;GRANT&nbsp;OPTION;&nbsp;<br/>删除授权：<br/><br/>mysql&gt;&nbsp;revoke&nbsp;all&nbsp;privileges&nbsp;on&nbsp;*.*&nbsp;from&nbsp;root@”%”;<br/>mysql&gt;&nbsp;del&#101;te&nbsp;from&nbsp;user&nbsp;wh&#101;re&nbsp;user=”root”&nbsp;and&nbsp;host=”%”;<br/>mysql&gt;&nbsp;flush&nbsp;privileges;&nbsp;<br/><br/>创建一个用户custom在特定客户端it363.com登录，可访问特定数据库fangchandb<br/><br/>mysql&nbsp;&gt;grant&nbsp;sel&#101;ct,&nbsp;ins&#101;rt,&nbsp;up&#100;ate,&nbsp;del&#101;te,&nbsp;cr&#101;ate,dro&#112;&nbsp;on&nbsp;fangchandb.*&nbsp;to&nbsp;custom@&nbsp;it363.com&nbsp;identified&nbsp;by&nbsp;‘&nbsp;passwd’&nbsp;<br/><br/>重命名表:<br/><br/>mysql&nbsp;&gt;&nbsp;alt&#101;r&nbsp;table&nbsp;t1&nbsp;rename&nbsp;t2;&nbsp;<br/>4、mysqldump<br/>备份数据库<br/><br/>shell&gt;&nbsp;mysqldump&nbsp;-h&nbsp;host&nbsp;-u&nbsp;root&nbsp;-p&nbsp;dbname&nbsp;&gt;dbname_backup.sql&nbsp;<br/>恢复数据库<br/><br/>shell&gt;&nbsp;mysqladmin&nbsp;-h&nbsp;myhost&nbsp;-u&nbsp;root&nbsp;-p&nbsp;cr&#101;ate&nbsp;dbname<br/>shell&gt;&nbsp;mysqldump&nbsp;-h&nbsp;host&nbsp;-u&nbsp;root&nbsp;-p&nbsp;dbname&nbsp;&lt;&nbsp;dbname_backup.sql&nbsp;<br/>如果只想卸出建表指令，则命令如下：<br/><br/>shell&gt;&nbsp;mysqladmin&nbsp;-u&nbsp;root&nbsp;-p&nbsp;-d&nbsp;databasename&nbsp;&gt;&nbsp;a.sql&nbsp;<br/>如果只想卸出插入数据的sql命令，而不需要建表命令，则命令如下：<br/><br/>shell&gt;&nbsp;mysqladmin&nbsp;-u&nbsp;root&nbsp;-p&nbsp;-t&nbsp;databasename&nbsp;&gt;&nbsp;a.sql&nbsp;<br/>那么如果我只想要数据，而不想要什么sql命令时，应该如何操作呢？<br/><br/>　　&nbsp;mysqldump&nbsp;-T./&nbsp;phptest&nbsp;driver&nbsp;<br/>其中，只有指定了-T参数才可以卸出纯文本文件，表示卸出数据的目录，./表示当前目录，即与mysqldump同一目录。如果不指定driver&nbsp;表，则将卸出整个数据库的数据。每个表会生成两个文件，一个为.sql文件，包含建表执行。另一个为.txt文件，只包含数据，且没有sql指令。<br/>5、可将查询存储在一个文件中并告诉mysql从文件中读取查询而不是等待键盘输入。可利用外壳程序键入重定向实用程序来完成这项工作。例如，如果在文件my_file.sql&nbsp;中存放有查<br/>询，可如下执行这些查询：<br/>例如，如果您想将建表语句提前写在sql.txt中:<br/><br/>mysql&nbsp;&gt;&nbsp;mysql&nbsp;-h&nbsp;myhost&nbsp;-u&nbsp;root&nbsp;-p&nbsp;database&nbsp;&lt;&nbsp;sql.txt&nbsp;<br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.net0577.com/default.asp?id=152</link>
			<title><![CDATA[内存优化9法]]></title>
			<author>xdf1159@126.com(admin)</author>
			<category><![CDATA[技术文章]]></category>
			<pubDate>Thu,06 Nov 2008 11:06:44 +0800</pubDate>
			<guid>http://www.net0577.com/default.asp?id=152</guid>	
		<description><![CDATA[　　1.&nbsp;改变页面文件的位置&nbsp;<br/><br/>　　其目的主要是为了保持虚拟内存的连续性。因为硬盘读取数据是靠磁头在磁性物质上读取，页面文件放在磁盘上的不同区域，磁头就要跳来跳去，自然不利于提高效率。而且系统盘文件众多，虚拟内存肯定不连续，因此要将其放到其他盘上。改变页面文件位置的方法是:用鼠标右键点击“我的电脑”，选择“属性→高级→性能设置→高级→更改虚拟内存”，在驱动器栏里选择想要改变到的位置即可。值得注意的是，当移动好页面文件后，要将原来的文件删除(系统不会自动删除)。<br/><br/>　　2.&nbsp;改变页面文件的大小<br/><br/>　　改变了页面文件的位置后，我们还可以对它的大小进行一些调整。调整时我们需要注意，不要将最大、最小页面文件设为等值。因为通常内存不会真正“塞满”，它会在内存储量到达一定程度时，自动将一部分暂时不用的数据放到硬盘中。最小页面文件越大，所占比例就低，执行的速度也就越慢。最大页面文件是极限值，有时打开很多程序，内存和最小页面文件都已“塞满”，就会自动溢出到最大页面文件。所以将两者设为等值是不合理的。一般情况下，最小页面文件设得小些，这样能在内存中尽可能存储更多数据，效率就越高。最大页面文件设得大些，以免出现“满员”的情况。<br/><br/>　　3.&nbsp;禁用页面文件<br/><br/>　　当拥有了512MB以上的内存时，页面文件的作用将不再明显，因此我们可以将其禁用。方法是:依次进入注册表编辑器“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session&nbsp;Manager\Memory&nbsp;Management”下，在“DisablePa-ging&nbsp;Executive”(禁用页面文件)选项中将其值设为“1”即可。<br/><br/>　　4.&nbsp;清空页面文件<br/><br/>　　在同一位置上有一个“ClearPageFileAtShutdown(关机时清除页面文件)”，将该值设为“1”。这里所说的“清除”页面文件并非是指从硬盘上完全删除pagefile.sys文件，而是对其进行“清洗”和整理，从而为下次启动Windows&nbsp;XP时更好地利用虚拟内存做好准备。<br/><br/>　　我们了解了它在内存与硬盘之间的工作关系，同时认识到了虚拟内存并非越大越好，而应该根据计算机的具体配置进行合理的调整。相信大家在真正的了解并掌握了虚拟内存的作用与优化方法后，一定会使爱机在性能上有所提升。<br/><br/>　　5.&nbsp;调整高速缓存区域的大小<br/><br/>　　可以在“计算机的主要用途”选项卡中设置系统利用高速缓存的比例(针对Windows&nbsp;98)。如果系统的内存较多，可选择“网络服务器”，这样系统将用较多的内存作为高速缓存。在CD-ROM标签中，可以直接调节系统用多少内存作为CD-ROM光盘读写的高速缓存。<br/><br/>　　6.&nbsp;监视内存<br/><br/>　　系统的内存不管有多大，总是会用完的。虽然有虚拟内存，但由于硬盘的读写速度无法与内存的速度相比，所以在使用内存时，就要时刻监视内存的使用情况。Windows操作系统中提供了一个系统监视器，可以监视内存的使用情况。一般如果只有60%的内存资源可用，这时你就要注意调整内存了，不然就会严重影响电脑的运行速度和系统性能。<br/><br/>　　7.&nbsp;及时释放内存空间<br/><br/>　　如果你发现系统的内存不多了，就要注意释放内存。所谓释放内存，就是将驻留在内存中的数据从内存中释放出来。释放内存最简单有效的方法，就是重新启动计算机。另外，就是关闭暂时不用的程序。还有要注意剪贴板中如果存储了图像资料，是要占用大量内存空间的。这时只要剪贴几个字，就可以把内存中剪贴板上原有的图片冲掉，从而将它所占用的大量的内存释放出来。<br/><br/>　　8.&nbsp;优化内存中的数据<br/><br/>　　在Windows中，驻留内存中的数据越多，就越要占用内存资源。所以，桌面上和任务栏中的快捷图标不要设置得太多。如果内存资源较为紧张，可以考虑尽量少用各种后台驻留的程序。平时在操作电脑时，不要打开太多的文件或窗口。长时间地使用计算机后，如果没有重新启动计算机，内存中的数据排列就有可能因为比较混乱，从而导致系统性能的下降。这时你就要考虑重新启动计算机。<br/><br/>　　9.&nbsp;提高系统其他部件的性能<br/><br/>　　计算机其他部件的性能对内存的使用也有较大的影响，如总线类型、CPU、硬盘和显存等。如果显存太小，而显示的数据量很大，再多的内存也是不可能提高其运行速度和系统效率的。如果硬盘的速度太慢，则会严重影响整个系统的工作。]]></description>
		</item>
		
			<item>
			<link>http://www.net0577.com/default.asp?id=140</link>
			<title><![CDATA[网站关键字设置技巧关键词设置方法]]></title>
			<author>xdf1159@126.com(admin)</author>
			<category><![CDATA[技术文章]]></category>
			<pubDate>Sun,06 Jan 2008 11:37:30 +0800</pubDate>
			<guid>http://www.net0577.com/default.asp?id=140</guid>	
		<description><![CDATA[　　seo中很重要的一个内容--页面关键字,目前得出的结论是：一个页面中关键字的密度在3%-8%最为合适。关键字设置技巧你知道多少呢?如何寻找关键字给我们的网站带来流量呢?蜘蛛写过一篇文章，讲了如何寻找关键字，摘录部分如下：<br/><br/>　　(1)&nbsp;核心关键字<br/><br/>　　只要是站长应该都能说出自己的核心关键字.不过建议站长不要高估自己能力.有的朋友加了我QQ问,想把&#34;手机&#34;优化到第一页怎么办?我劝你还是把时间节省出来.因为很多热门关键字已经被一些权威站点或者百度竞价垄断.不过你可以选择其他的相关的做核心关键字.比如&#34;手机游戏&#34;,&#34;手机图片&#34;等等.<br/><br/>　　(2)&nbsp;相关关键字<br/><br/>　　这个大家不难理解,因为各个引擎都给大家提供了参考.百度,雅虎,谷歌都有相关搜索,而且雅虎还有一个热门搜索,显示近期常用的相关词语.大家可以把相关关键字词做为网站的分类栏目.做为分类栏目好处是可以突出关键字,让其他内页辅助,并且可以在网站内多次合理的出现.稍微细心的朋友都会发现,很多时候页面里无相关内容,只因为分类栏目与搜索的关键字相同,却出现在搜索结果里.<br/><br/>　　(3)&nbsp;长尾关键字<br/><br/>　　seo爱好者应该都对长尾理论有一定的了解.长尾关键字方便用户快速找到自己需要的内容,比如&#34;2007年最新蜘蛛&nbsp;seo实验&#34;就属于典型的长尾关键字.大家选择长尾关键字,不能根据自己的搜索习惯进行.首先要考虑大部分用户,分析一下他们一般如何去搜索,然后才能确定和你网站内容最符合的长尾关键字词.大家不要忽略长尾关键字词的作用,尤其是商业站点.这样的流量最有价值.<br/><br/>　　(4)&nbsp;错误关键字<br/><br/>　　有的用户使用搜索引擎时,出于无意输入的关键字是错误的,很多网站站长经常讨论这个问题,这个是个小技巧.如何合理运用才能起到作用呢?在不影响网站整体形象下,我们可以多做几个相关的页面,标题和内容里出现几次.至于选择什么关键字来做错误关键字,这个要根据自己站点来定.<br/><br/>　　(5)&nbsp;生僻关键字<br/><br/>　　你可以自己根据自己的网站内容,寻找一些相关的,但是很少被人使用的关键字.虽然这类关键字带来的流量很小,不过排名容易上去,也许一个页面,被收录后当天就能排在第一页.补充一些相关页面比制造一直垃圾页面更能带来流量.特别是对于一些地方站,行业站来说,这是个比较好的方法.我有个网站,在来路统计里看到,某个生僻关键字一个月才被搜索几十次,但是所有的生僻关键字加一起,却占据了10%.<br/><br/>　　找到了关键字之后怎么办呢?可以参考网上礼品城首页，搜索首页关键字为“网上礼品”，在设置关键字的时候有几点需要注意：不要恶意堆砌关键字;不要超过8%;不要使用隐藏的文本来堆砌关键字。<br/><br/>]]></description>
		</item>
		
</channel>
</rss>