﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-Dark Angle-随笔分类-Database</title><link>http://www.cppblog.com/niewenlong/category/4378.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 30 Mar 2017 15:59:11 GMT</lastBuildDate><pubDate>Thu, 30 Mar 2017 15:59:11 GMT</pubDate><ttl>60</ttl><item><title>Mysql Delete</title><link>http://www.cppblog.com/niewenlong/archive/2017/03/29/214793.html</link><dc:creator>聂文龙</dc:creator><author>聂文龙</author><pubDate>Wed, 29 Mar 2017 09:47:00 GMT</pubDate><guid>http://www.cppblog.com/niewenlong/archive/2017/03/29/214793.html</guid><wfw:comment>http://www.cppblog.com/niewenlong/comments/214793.html</wfw:comment><comments>http://www.cppblog.com/niewenlong/archive/2017/03/29/214793.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/niewenlong/comments/commentRss/214793.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/niewenlong/services/trackbacks/214793.html</trackback:ping><description><![CDATA[delete from TableA where id in (select * from (SELECT id from&nbsp;TableA&nbsp;where col_name is null) b )
<div><br />
</div>
<div><br />
</div>
<div><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;">1.使用mysql进行delete from操作时，若子查询的 FROM 字句和更新/删除对象使用同一张表，会出现错误。&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;">mysql&gt; DELETE FROM tab1 WHERE col1 = ( SELECT MAX( col1 ) FROM tab1 );&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;">ERROR 1093 (HY000): You can&#8217;t specify target table &#8216;tab1&#8242; for update in FROM clause&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;">针对&#8220;同一张表&#8221;这个限制，撇开效率不谈，多数情况下都可以通过多加一层select 别名表来变通解决，像这样&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;">DELETE FROM tab1&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;">WHERE col1 = (&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;">SELECT MAX( col1 )&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;">FROM (&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;">SELECT * FROM tab1&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;">) AS t&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;">);&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;">------------------------------------------------------------------------&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;">2. mysql delete from where in 时后面 的查询语句里不能加where条件&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;">Sql代码&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; delete from `t_goods` where fi_id in (select * from ( select fi_id from `t_goods` where fs_num is null and fs_name is null and fs_type is null and fs_using is null and fs_lifetime is null) b)&nbsp;&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;">Sql代码&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; delete from `t_goods` where fi_id in (select fi_id from `t_goods` where fs_num is null and fs_name is null and fs_type is null and fs_using is null and fs_lifetime is null)&nbsp;&nbsp;&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;">Sql代码&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; delete from `t_goods` where fi_id in ( select fi_id from `t_goods` )&nbsp;&nbsp;&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;">上面三种情况，只有中间的不能执行。&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;">综合起来就是mysql delete from where in 时后面 的查询语句里不能加where条件&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;">---------------------------------------------------------------------------&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;">3. delete from table... 这其中table不能使用别名&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;">Sql代码&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;">&nbsp;&nbsp;&nbsp; delete from student a where a.id in (1,2);(执行失败)&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;">&nbsp;&nbsp;&nbsp;&nbsp;</span><br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<br style="font-family: Helvetica, Tahoma, Arial, sans-serif;" />
<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;">&nbsp;&nbsp;&nbsp;&nbsp; select a.* from student a where a.id in (1,2);(执行成功)</span><br />
&nbsp;
@import url(http://www.cppblog.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
<div><br />
</div>
<div><br />
</div>
<div><br />
</div>
</div><img src ="http://www.cppblog.com/niewenlong/aggbug/214793.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/niewenlong/" target="_blank">聂文龙</a> 2017-03-29 17:47 <a href="http://www.cppblog.com/niewenlong/archive/2017/03/29/214793.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Mysql 链表查询</title><link>http://www.cppblog.com/niewenlong/archive/2016/09/08/214264.html</link><dc:creator>聂文龙</dc:creator><author>聂文龙</author><pubDate>Thu, 08 Sep 2016 10:12:00 GMT</pubDate><guid>http://www.cppblog.com/niewenlong/archive/2016/09/08/214264.html</guid><wfw:comment>http://www.cppblog.com/niewenlong/comments/214264.html</wfw:comment><comments>http://www.cppblog.com/niewenlong/archive/2016/09/08/214264.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/niewenlong/comments/commentRss/214264.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/niewenlong/services/trackbacks/214264.html</trackback:ping><description><![CDATA[<div>SELECT u.user_id,u.user_name,c.ct,sub.cts &nbsp;FROM `zdh_users` u &nbsp;</div>
<div><br />
</div>
<div>LEFT JOIN &nbsp; (select admin_id,count(*) as ct FROM `zdh_users` GROUP by admin_id) as c &nbsp;</div>
<div>ON u.user_id = c.admin_id&nbsp;</div>
<div><br />
</div>
<div><br />
</div>
<div>LEFT JOIN &nbsp; (select admin_id,count(*) as cts FROM `zdh_users` where is_subscribe = 1 GROUP by admin_id) as sub&nbsp;</div>
<div><br />
</div>
<div>ON u.user_id = sub.admin_id&nbsp;</div>
<div><br />
</div>
<div>WHERE c.ct &gt;0&nbsp;</div>
<div><br />
</div>
<div>order by c.ct DESC ,sub.cts DESC,u.user_id ASC</div>
@import url(http://www.cppblog.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);<img src ="http://www.cppblog.com/niewenlong/aggbug/214264.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/niewenlong/" target="_blank">聂文龙</a> 2016-09-08 18:12 <a href="http://www.cppblog.com/niewenlong/archive/2016/09/08/214264.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mac mysql error You must reset your password using ALTER USER statement before executing this statement.</title><link>http://www.cppblog.com/niewenlong/archive/2016/05/22/213562.html</link><dc:creator>聂文龙</dc:creator><author>聂文龙</author><pubDate>Sun, 22 May 2016 03:02:00 GMT</pubDate><guid>http://www.cppblog.com/niewenlong/archive/2016/05/22/213562.html</guid><wfw:comment>http://www.cppblog.com/niewenlong/comments/213562.html</wfw:comment><comments>http://www.cppblog.com/niewenlong/archive/2016/05/22/213562.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/niewenlong/comments/commentRss/213562.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/niewenlong/services/trackbacks/213562.html</trackback:ping><description><![CDATA[<h1 class="postTitle" style="margin: 0px; padding: 0px 0px 0px 5px; float: left; line-height: 1.5; width: 987.15625px; clear: both; font-size: 14px; font-family: Verdana, Arial, Helvetica, sans-serif;"><a id="cb_post_title_url" class="postTitle2" href="http://www.cnblogs.com/debmzhang/p/5013540.html" style="margin: 0px; padding: 0px; color: #075db3; text-decoration: none;">mac mysql error You must reset your password using ALTER USER statement before executing this statement.</a></h1>
<div class="clear" style="margin: 0px; clear: both; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px;"></div>
<div class="postBody" style="margin: 5px 0px 0px; padding: 5px 2px 5px 5px; line-height: 1.5; font-size: 13px; font-family: Verdana, Arial, Helvetica, sans-serif;">
<div id="cnblogs_post_body" style="margin: 0px 0px 20px; word-break: break-word;">
<p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; line-height: 1.5;">安装完mysql 之后，登陆以后，不管运行任何命令，总是提示这个</p>
<p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; line-height: 1.5;">step 1:&nbsp;SET PASSWORD = PASSWORD('<span style="margin: 0px; padding: 0px; line-height: 1.5; color: #ff0000;">your new password</span>');</p>
<p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; line-height: 1.5;">step 2:&nbsp;ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;</p>
<p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; line-height: 1.5;">step 3:&nbsp;flush privileges;</p>
<p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; line-height: 1.5;">完成以上三步退出再登，使用新设置的密码就行了，以上除了红色的自己修改成新密码外，其他原样输入即可</p>
<p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; line-height: 1.5;">参考1:&nbsp;https://dev.mysql.com/doc/refman/5.6/en/alter-user.html</p>
<p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; line-height: 1.5;">参考2:&nbsp;http://dev.mysql.com/doc/refman/5.7/en/password-expiration-policy.html</p>
<p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; line-height: 1.5;">参考3:&nbsp;http://stackoverflow.com/questions/33467337/reset-mysql-root-password-using-alter-user-statement-after-install-on-mac</p>
</div>
</div>
@import url(http://www.cppblog.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);<img src ="http://www.cppblog.com/niewenlong/aggbug/213562.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/niewenlong/" target="_blank">聂文龙</a> 2016-05-22 11:02 <a href="http://www.cppblog.com/niewenlong/archive/2016/05/22/213562.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> mysql数据库备份及恢复命令mysqldump,source的用法 </title><link>http://www.cppblog.com/niewenlong/archive/2014/08/07/207927.html</link><dc:creator>聂文龙</dc:creator><author>聂文龙</author><pubDate>Wed, 06 Aug 2014 16:52:00 GMT</pubDate><guid>http://www.cppblog.com/niewenlong/archive/2014/08/07/207927.html</guid><wfw:comment>http://www.cppblog.com/niewenlong/comments/207927.html</wfw:comment><comments>http://www.cppblog.com/niewenlong/archive/2014/08/07/207927.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/niewenlong/comments/commentRss/207927.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/niewenlong/services/trackbacks/207927.html</trackback:ping><description><![CDATA[<div>       <h1>         <span><a href="http://blog.csdn.net/bxbx258/article/details/2945832"></a></span></h1></div><div><div id="article_content"> <p><strong>还原一个数据库:mysql -h localhost -u root -p123456 www&lt;c:/www.sql</strong> </p> <p><strong>备份一个数据库:mysqldump -h localhost -u root -p123456 www &gt; d:/www2008-2-26.sql</strong> </p> <p>&nbsp;</p> <p>&nbsp;</p> <p><strong>//以下是在程序中进行测试</strong> </p> <p><strong>//$command = "mysqldump --opt -h $dbhost -u $dbuser -p $dbpass $dbname | gzip &gt; $backupFile";<br /> $command="mysqldump -h localhost -u root -p123456 guestbook &gt; guestbook2-29.sql";<br /> system($command);<br /> echo "success";<br /> </strong> </p> <p><strong>************************************************</strong> </p> <p><strong>备份MySQL数据库的命令</strong> </p> <div> <div>mysqldump -hhostname -uusername -ppassword databasename &gt; backupfile.sql</div> </div> <p><strong>备份MySQL数据库为带删除表的格式</strong> <br /> 备份MySQL数据库为带删除表的格式，能够让该备份覆盖已有数据库而不需要手动删除原有数据库。</p> <div> <div>mysqldump -&#8211;add-drop-table -uusername -ppassword databasename &gt; backupfile.sql</div> </div> <p><strong>直接将MySQL数据库压缩备份</strong> </p> <div> <div>mysqldump -hhostname -uusername -ppassword databasename | gzip &gt; backupfile.sql.gz</div> </div> <p><strong>备份MySQL数据库某个(些)表</strong> </p> <div> <div>mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 &gt; backupfile.sql</div> </div> <p><strong>同时备份多个MySQL数据库</strong> </p> <div> <div>mysqldump -hhostname -uusername -ppassword &#8211;databases databasename1 databasename2 databasename3 &gt; multibackupfile.sql</div> </div> <p><strong>仅仅备份数据库结构</strong> </p> <div> <div>mysqldump &#8211;no-data &#8211;databases databasename1 databasename2 databasename3 &gt; structurebackupfile.sql</div> </div> <p><strong>备份服务器上所有数据库</strong> </p> <div> <div>mysqldump &#8211;all-databases &gt; allbackupfile.sql</div> </div> <p><strong>还原MySQL数据库的命令</strong> </p> <div> <div>mysql -hhostname -uusername -ppassword databasename &lt; backupfile.sql</div> </div> <p><strong>还原压缩的MySQL数据库</strong> </p> <div> <div>gunzip &lt; backupfile.sql.gz | mysql -uusername -ppassword databasename</div> </div> <p><strong>将数据库转移到新服务器</strong> </p> <div> <div>mysqldump -uusername -ppassword databasename | mysql &#8211;host=*.*.*.* -C databasename</div> <div>&nbsp;</div> <div>&nbsp;<strong>几个常用用例：</strong> <p>1.导出整个数据库<br /> mysqldump -u 用户名 -p 数据库名 &gt; 导出的文件名<br /> <span style="font-family: NSimsun;"><code>mysqldump -u root -p dataname &gt;dataname.sql</code> <br /> </span> 这个时候会提示要你输入root用户名的密码,输入密码后dataname数据库就成功备份在mysql/bin/目录中.</p> <p>2.导出一个表<br /> mysqldump -u 用户名 -p 数据库名 表名&gt; 导出的文件名<br /> <code><span style="font-family: 新宋体;">mysqldump -u root -p dataname users&gt; dataname_users.sql</span> </code> </p> <p>3.导出一个数据库结构<br /> <span style="font-family: NSimsun;"><code>mysqldump -u wcnc -p -d &#8211;add-drop-table smgp_apps_wcnc &gt;d:/wcnc_db.sql</code> <br /> </span> -d 没有数据 &#8211;add-drop-table 在每个create语句之前增加一个drop table</p> <p>4.导入数据库<br /> 常用source 命令<br /> 进入mysql数据库控制台，<br /> 如mysql -u root -p</p> <p>mysql&gt;use 数据库</p> <p>然后使用source命令，后面参数为脚本文件（如这里用到的.sql）<br /> mysql&gt;source d:/wcnc_db.sql</p> <p><strong>mysqldump支持下列选项：</strong> <br /> &#8211;add-locks<br /> 在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE。(为了使得更快地插入到MySQL)。</p> <p>&#8211;add-drop-table<br /> 在每个create语句之前增加一个drop table。</p> <p>&#8211;allow-keywords<br /> 允许创建是关键词的列名字。这由表名前缀于每个列名做到。</p> <p>-c, &#8211;complete-insert<br /> 使用完整的insert语句(用列名字)。</p> <p>-C, &#8211;compress<br /> 如果客户和服务器均支持压缩，压缩两者间所有的信息。</p> <p>&#8211;delayed<br /> 用INSERT DELAYED命令插入行。</p> <p>-e, &#8211;extended-insert<br /> 使用全新多行INSERT语法。（给出更紧缩并且更快的插入语句）</p> <p>-#, &#8211;debug[=option_string]<br /> 跟踪程序的使用(为了调试)。</p> <p>&#8211;help<br /> 显示一条帮助消息并且退出。</p> <p>&#8211;fields-terminated-by=&#8230;</p> <p>&#8211;fields-enclosed-by=&#8230;</p> <p>&#8211;fields-optionally-enclosed-by=&#8230;</p> <p>&#8211;fields-escaped-by=&#8230;</p> <p>&#8211;fields-terminated-by=&#8230;</p> <p>这些选择与-T选择一起使用，并且有相应的LOAD DATA INFILE子句相同的含义。<br /> LOAD DATA INFILE语法。</p> <p>-F, &#8211;flush-logs<br /> 在开始导出前，洗掉在MySQL服务器中的日志文件。</p> <p>-f, &#8211;force,<br /> 即使我们在一个表导出期间得到一个SQL错误，继续。</p> <p>-h, &#8211;host=..<br /> 从命名的主机上的MySQL服务器导出数据。缺省主机是localhost。</p> <p>-l, &#8211;lock-tables.<br /> 为开始导出锁定所有表。</p> <p>-t, &#8211;no-create-info<br /> 不写入表创建信息(CREATE TABLE语句）</p> <p>-d, &#8211;no-data<br /> 不写入表的任何行信息。如果你只想得到一个表的结构的导出，这是很有用的！</p> <p>&#8211;opt<br /> 同&#8211;quick &#8211;add-drop-table &#8211;add-locks &#8211;extended-insert &#8211;lock-tables。<br /> 应该给你为读入一个MySQL服务器的尽可能最快的导出。</p> <p>-pyour_pass, &#8211;password[=your_pass]<br /> 与服务器连接时使用的口令。如果你不指定&#8220;=your_pass&#8221;部分，mysqldump需要来自终端的口令。</p> <p>-P port_num, &#8211;port=port_num<br /> 与一台主机连接时使用的TCP/IP端口号。（这用于连接到localhost以外的主机，因为它使用 Unix套接字。）</p> <p>-q, &#8211;quick<br /> 不缓冲查询，直接导出至stdout；使用mysql_use_result()做它。</p> <p>-S /path/to/socket, &#8211;socket=/path/to/socket<br /> 与localhost连接时（它是缺省主机)使用的套接字文件。</p> <p>-T, &#8211;tab=path-to-some-directory<br /> 对于每个给定的表，创建一个table_name.sql文件，它包含SQL CREATE 命令，和一个table_name.txt文件，它包含数据。注意：这只有在mysqldump运行在mysqld守护进程运行的同一台机器上的时候才工 作。.txt文件的格式根据&#8211;fields-xxx和 &#8211;lines&#8211;xxx选项来定。</p> <p>-u user_name, &#8211;user=user_name<br /> 与服务器连接时，MySQL使用的用户名。缺省值是你的Unix登录名。</p> <p>-O var=option, &#8211;set-variable var=option<br /> 设置一个变量的值。可能的变量被列在下面。</p> <p>-v, &#8211;verbose<br /> 冗长模式。打印出程序所做的更多的信息。</p> <p>-V, &#8211;version<br /> 打印版本信息并且退出。</p> <p>-w, &#8211;where=&#8217;where-condition&#8217;<br /> 只导出被选择了的记录；注意引号是强制的！<br /> &#8220;&#8211;where=user=&#8217;jimf&#8217;&#8221; &#8220;-wuserid&gt;1&#8243; &#8220;-wuserid&lt;1&#8243;</p> <p>最常见的mysqldump使用可能制作整个数据库的一个备份：<br /> mysqldump &#8211;opt database &gt; backup-file.sql</p> <p>但是它对用来自于一个数据库的信息充实另外一个MySQL数据库也是有用的：<br /> mysqldump &#8211;opt database | mysql &#8211;host=remote-host -C database<br /> 由于mysqldump导出的是完整的SQL语句，所以用mysql客户程序很容易就能把数据导入了：</p> <p>shell&gt; mysqladmin create target_db_name<br /> shell&gt; mysql target_db_name &lt; backup-file.sql<br /> 就是<br /> shell&gt; mysql 库名 &lt; 文件名</p> </div> </div> </div></div><br /><br /><br /><div><div id="article_content">  <div>mysqldump--导出工具</div> <div>&nbsp;</div> <div> <p>mysqldump备份还原和mysqldump导入导出语句大全详解</p> <p><strong>mysqldump备份</strong>：</p> <p>mysqldump -u用户名 -p密码 -h主机 数据库 a -w "sql条件" --lock-all-tables &gt; 路径</p> <p>案例：</p> <p>mysqldump -uroot -p1234 -hlocalhost db1 a -w "id in (select id from b)" --lock-all-tables &gt; c:\aa.txt</p> <p><strong>mysqldump还原</strong>：</p> <p>mysqldump -u用户名 -p密码 -h主机 数据库 &lt; 路径</p> <p>案例：</p> <p>mysql -uroot -p1234 db1 &lt; c:\aa.txt</p> <p><strong>mysqldump按条件导出</strong>：</p> <p>mysqldump -u用户名 -p密码 -h主机 数据库&nbsp; a --where "条件语句" --no-建表&gt; 路径</p> <p>mysqldump -uroot -p1234 dbname a --where "tag='88'" --no-create-info&gt; c:\a.sql</p> <p><strong>mysqldump按导入</strong>：</p> <p>mysqldump -u用户名 -p密码 -h主机 数据库 &lt; 路径</p> <p>案例：</p> <p>mysql -uroot -p1234 db1 &lt; c:\a.txt</p>  <p><strong>mysqldump导出表</strong>：</p> <p>mysqldump -u用户名 -p密码 -h主机 数据库 表</p> <p>案例：</p> <p>mysqldump -uroot -p sqlhk9 a --no-data</p> <p>讲一下 mysqldump 的一些主要参数</p>  <p><strong>--compatible=name </strong><br /> 它告诉 mysqldump，导出的数据将和哪种数据库或哪个旧版本的 MySQL 服务器相兼容。值可以为  ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、 no_tables_options、no_field_options  等，要使用几个值，用逗号将它们隔开。当然了，它并不保证能完全兼容，而是尽量兼容。 <br /> <strong>--complete-insert，-c </strong><br /> 导出的数据采用包含字段名的完整 INSERT 方式，也就是把所有的值都写在一行。这么做能提高插入效率，但是可能会受到 max_allowed_packet 参数的影响而导致插入失败。因此，需要谨慎使用该参数，至少我不推荐。 <br /> <strong>--default-character-set=charset </strong><br /> 指定导出数据时采用何种字符集，如果数据表不是采用默认的 latin1 字符集的话，那么导出时必须指定该选项，否则再次导入数据后将产生乱码问题。<br /> <strong>--disable-keys </strong><br /> 告诉 mysqldump 在 INSERT 语句的开头和结尾增加 /*!40000 ALTER TABLE table DISABLE KEYS  */; 和 /*!40000 ALTER TABLE table ENABLE KEYS */;  语句，这能大大提高插入语句的速度，因为它是在插入完所有数据后才重建索引的。该选项只适合 MyISAM 表。<br /> <strong>--extended-insert = true|false <br /> </strong>默认情况下，mysqldump 开启 --complete-insert 模式，因此不想用它的的话，就使用本选项，设定它的值为 false 即可。 <br /> <strong>--hex-blob </strong><br /> 使用十六进制格式导出二进制字符串字段。如果有二进制数据就必须使用本选项。影响到的字段类型有 BINARY、VARBINARY、BLOB。<br /> <strong>--lock-all-tables，-x </strong><br /> 在开始导出之前，提交请求锁定所有数据库中的所有表，以保证数据的一致性。这是一个全局读锁，并且自动关闭 --single-transaction 和 --lock-tables 选项。<br /> <strong>--lock-tables </strong><br /> 它和 --lock-all-tables 类似，不过是锁定当前导出的数据表，而不是一下子锁定全部库下的表。本选项只适用于 MyISAM 表，如果是 Innodb 表可以用 --single-transaction 选项。<br /> <strong>--no-create-info，-t </strong><br /> 只导出数据，而不添加 CREATE TABLE 语句。<br /> <strong>--no-data，-d </strong><br /> 不导出任何数据，只导出数据库表结构。<br /> <strong>--opt </strong><br /> 这只是一个快捷选项，等同于同时添加 --add-drop-tables --add-locking --create-option  --disable-keys --extended-insert --lock-tables --quick --set-charset  选项。本选项能让 mysqldump 很快的导出数据，并且导出的数据能很快导回。该选项默认开启，但可以用 --skip-opt  禁用。注意，如果运行 mysqldump 没有指定 --quick 或 --opt  选项，则会将整个结果集放在内存中。如果导出大数据库的话可能会出现问题。<br /> <strong>--quick，-q </strong><br /> 该选项在导出大表时很有用，它强制 mysqldump 从服务器查询取得记录直接输出而不是取得所有记录后将它们缓存到内存中。<br /> <strong>--routines，-R </strong><br /> 导出存储过程以及自定义函数。<br /> <strong>--single-transaction </strong><br /> 该选项在导出数据之前提交一个 BEGIN SQL语句，BEGIN 不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于事务表，例如 InnoDB 和 BDB。<br /> 本选项和 --lock-tables 选项是互斥的，因为 LOCK TABLES 会使任何挂起的事务隐含提交。<br /> 要想导出大表的话，应结合使用 --quick 选项。 <br /> <strong>--triggers </strong><br /> 同时导出触发器。该选项默认启用，用 --skip-triggers 禁用它。<br /> 其他参数详情请参考手册，我通常使用以下 SQL 来备份 MyISAM 表：<br /> /usr/local/mysql/bin/mysqldump -uyejr -pyejr "<br /> --default-character-set=utf8 --opt --extended-insert=false "<br /> --triggers -R --hex-blob -x db_name &gt; db_name.sql<br /> 使用以下 SQL 来备份 Innodb 表：<br /> /usr/local/mysql/bin/mysqldump -uyejr -pyejr "<br /> --default-character-set=utf8 --opt --extended-insert=false "<br /> --triggers -R --hex-blob --single-transaction db_name &gt; db_name.sql<br /> 另外，如果想要实现在线备份，还可以使用 --master-data 参数来实现，如下：<br /> <strong>/usr/local/mysql/bin/mysqldump -uyejr -pyejr "</strong><br /> --default-character-set=utf8 --opt --master-data=1 "<br /> --single-transaction --flush-logs db_name &gt; db_name.sql<br /> 它只是在一开始的瞬间请求锁表，然后就刷新binlog了，而后在导出的文件中加入CHANGE MASTER 语句来指定当前备份的binlog位置，如果要把这个文件恢复到slave里去，就可以采用这种方法来做。</p> <p>1.2 还原<br /> 用 mysqldump 备份出来的文件是一个可以直接倒入的 SQL 脚本，有两种方法可以将数据导入。<br /> 直接用 mysql 客户端 <br /> 例如：<br /> <strong>/usr/local/mysql/bin/mysql -uyejr -pyejr db_name &lt; db_name.sql</strong><br /> 用 SOURCE 语法 （实验不成功！！！） <br /> 其实这不是标准的 SQL 语法，而是 mysql 客户端提供的功能，例如：<br /> SOURCE /tmp/db_name.sql;<br /> 这里需要指定文件的绝对路径，并且必须是 mysqld 运行用户(例如 nobody)有权限读取的文件。</p> </div> <div><br /> </div> <div>#导出某个数据库－－结构+数据</div> <div>shell&gt;mysqldump -h192.168.161.124 -uroot -pxxxxxx --opt db_name |gzip -9 &gt; /db_bakup/db_name.gz</div> <div><br /> </div> <div>#导出某个数据库的表－－结构+数据+函数+存储过程</div> <div>shell&gt;mysqldump -h192.168.161.124 -uroot -pxxxxxx --opt -R db_name |gzip -9 &gt; /db_backup/db_name.gz</div> <div><br /> </div> <div>#导出多个数据库</div> <div>shell&gt;mysqldump -h192.168.161.124 -uroot -pxxxxxx --opt  --databases db_name1 db_name2 db_name3 |gzip -9 &gt;  /db_backup/mul_db.gz </div> <div><br /> </div> <div>#导出所有的数据库</div> <div>shell&gt;mysqldump -h192.168.161.124 -uroot -pxxxxxx --opt --all-databases |gzip -9 &gt; /db_bak/all_db.gz</div> <div><br /> </div> <div>#导出某个数据库的结构</div> <div>shell&gt;mysqldump -h192.168.161.124 -uroot -pxxxxxx --opt --no-data db_name|gzip -9 &gt; /db_bak/db_name.strcut.gz</div> <div><br /> </div> <div>#导出某个数据库的数据</div> <div>shell&gt;mysqldump -h192.168.161.124 -uroot -pxxxxxx --opt --no-create-info db_name|gzip -9 &gt; /db_bak/db_naem.data.gz</div> <div><br /> </div> <div>#导出某个数据库的某张表</div> <div>shell&gt;mysqldump -h192.168.161.124 -uroot -pxxxxxx --opt db_name tbl_name |gzip -9 &gt; /db_bak/db_name.tal_name.gz</div> <div><br /> </div> <div># 导出某个数据库的某张表的结构</div> <div>shell&gt;mysqldump -h192.168.161.124 -uroot -pxxxxxx --opt  --no-data db_name tal_name | gzip -9 &gt;  /db_bak/db_name.tal_name.struct.gz</div> <div><br /> </div> <div>#导出某个数据库的某张表的数据</div> <div>shell&gt;mysqldump -h192.168.161.124 -uroot -pxxxxxx --opt  --no-create-info db_name tbl_name | gzip -9 &gt;  /db_bak/db_name.tbl_name.data.gz</div> <div><br /> </div> <div><span style="color:#f00000">##--opt==--add-drop-table + --add-locks  + --create-options + --disables-keys + --extended-insert +  --lock-tables + --quick + --set+charset</span></div> <div><span style="color:#f00000">##默认使用--opt，--skip-opt禁用--opt参数</span></div>  </div></div><img src ="http://www.cppblog.com/niewenlong/aggbug/207927.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/niewenlong/" target="_blank">聂文龙</a> 2014-08-07 00:52 <a href="http://www.cppblog.com/niewenlong/archive/2014/08/07/207927.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL 文本导入 方式 bcp OpenRowset  opendatasource BULK INSERT </title><link>http://www.cppblog.com/niewenlong/archive/2013/03/18/198558.html</link><dc:creator>聂文龙</dc:creator><author>聂文龙</author><pubDate>Mon, 18 Mar 2013 13:11:00 GMT</pubDate><guid>http://www.cppblog.com/niewenlong/archive/2013/03/18/198558.html</guid><wfw:comment>http://www.cppblog.com/niewenlong/comments/198558.html</wfw:comment><comments>http://www.cppblog.com/niewenlong/archive/2013/03/18/198558.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/niewenlong/comments/commentRss/198558.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/niewenlong/services/trackbacks/198558.html</trackback:ping><description><![CDATA[<div>select * from OpenRowset('MSDASQL', 'Driver={Microsoft Text Driver (*.txt; *.csv)};DefaultDir=C:\Users\Administrator\Desktop;','select * from Num.txt')&nbsp;</div><div></div><div>select * from opendatasource('MICROSOFT.JET.OLEDB.4.0','Text;DATABASE=C:\Users\Administrator\Desktop')...[Num.txt]</div><div></div><div>BULK INSERT master..Temp FROM 'C:\Users\Administrator\Desktop\Num.txt' WITH &nbsp;( FIELDTERMINATOR ='<span style="white-space:pre">	</span>', ROWTERMINATOR= '\n')&nbsp;<br /><br /><span style="color: #333333; font-family: verdana, Arial, Helvetica, sans-serif; line-height: 25px; background-color: #ffffff;">/** 导入文本文件</span><br style="margin: 0px; padding: 0px; color: #333333; font-family: verdana, Arial, Helvetica, sans-serif; line-height: 25px; background-color: #ffffff;" /><span style="color: #333333; font-family: verdana, Arial, Helvetica, sans-serif; line-height: 25px; background-color: #ffffff;">EXEC master..xp_cmdshell 'bcp dbname..tablename in c:\DT.txt -c -Sservername -Usa -Ppassword'</span><br style="margin: 0px; padding: 0px; color: #333333; font-family: verdana, Arial, Helvetica, sans-serif; line-height: 25px; background-color: #ffffff;" />&nbsp;<br style="margin: 0px; padding: 0px; color: #333333; font-family: verdana, Arial, Helvetica, sans-serif; line-height: 25px; background-color: #ffffff;" /><span style="color: #333333; font-family: verdana, Arial, Helvetica, sans-serif; line-height: 25px; background-color: #ffffff;">/** 导出文本文件</span><br style="margin: 0px; padding: 0px; color: #333333; font-family: verdana, Arial, Helvetica, sans-serif; line-height: 25px; background-color: #ffffff;" /><span style="color: #333333; font-family: verdana, Arial, Helvetica, sans-serif; line-height: 25px; background-color: #ffffff;">EXEC master..xp_cmdshell 'bcp dbname..tablename out c:\DT.txt -c -Sservername -Usa -Ppassword'</span><br style="margin: 0px; padding: 0px; color: #333333; font-family: verdana, Arial, Helvetica, sans-serif; line-height: 25px; background-color: #ffffff;" /><span style="color: #333333; font-family: verdana, Arial, Helvetica, sans-serif; line-height: 25px; background-color: #ffffff;">或</span><br style="margin: 0px; padding: 0px; color: #333333; font-family: verdana, Arial, Helvetica, sans-serif; line-height: 25px; background-color: #ffffff;" /><span style="color: #333333; font-family: verdana, Arial, Helvetica, sans-serif; line-height: 25px; background-color: #ffffff;">EXEC master..xp_cmdshell 'bcp "Select * from dbname..tablename" queryout c:\DT.txt -c -Sservername -Usa -Ppassword'</span><br style="margin: 0px; padding: 0px; color: #333333; font-family: verdana, Arial, Helvetica, sans-serif; line-height: 25px; background-color: #ffffff;" />&nbsp;<br style="margin: 0px; padding: 0px; color: #333333; font-family: verdana, Arial, Helvetica, sans-serif; line-height: 25px; background-color: #ffffff;" /><span style="color: #333333; font-family: verdana, Arial, Helvetica, sans-serif; line-height: 25px; background-color: #ffffff;">导出到TXT文本，用逗号分开</span><br style="margin: 0px; padding: 0px; color: #333333; font-family: verdana, Arial, Helvetica, sans-serif; line-height: 25px; background-color: #ffffff;" /><span style="color: #333333; font-family: verdana, Arial, Helvetica, sans-serif; line-height: 25px; background-color: #ffffff;">exec master..xp_cmdshell 'bcp "库名..表名" out "d:\tt.txt" -c -t ,-U sa -P password'<br /><br /></span><span style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;">在做一些web数据库管理系统的时候经常要实现将帐户批量注册的功能，今天就来讲讲如何在C#-web项目中将txt文件和excel文件导入SQL2000数据库。</span><br style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;" /><span style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;">1.数据库准备</span><br style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;" /><span style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;">在SQL2000数据库的实例数据库pubs中建立一个数据表txtInsert，字段很简单：id，name两个。</span><br style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;" /><span style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;">2.txt文本文件导入</span><br style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;" /><span style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;">对于数据文件导入与导出SQL2000提供了BULK INSERT和BCP语句，在这里可以使用BULK INSERT命令实现。假设在c盘上有一个文本文件stu.txt内容为：</span><br style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;" /><span style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;">&nbsp;&nbsp;&nbsp; 1,tom</span><br style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;" /><span style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;">&nbsp;&nbsp;&nbsp; 2,jack</span><br style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;" /><span style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;">&nbsp;&nbsp;&nbsp; 3,jhon</span><br style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;" /><span style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;">&nbsp;&nbsp;&nbsp; ......</span><br style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;" /><span style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;">实现导入的C#代码如下：</span><br style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;" /><span style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;">protected System.Web.UI.HtmlControls.HtmlInputFile fName;&nbsp;&nbsp;</span><br style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;" /><span style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;">protected System.Web.UI.WebControls.Button BtnInsert;</span><br style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;" /><span style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;">//上面两个控件自己添加</span><br style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;" /><div style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 1314.171875px; word-break: break-all; background-color: #eeeeee;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px;"  alt="" /><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;BtnInsert_Click(</span><span style="color: #0000ff;">object</span><span style="color: #000000;">&nbsp;sender,&nbsp;System.EventArgs&nbsp;e)<br /><img id="Codehighlighter1_66_1032_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;</span><span id="Codehighlighter1_66_1032_Open_Text"><span style="color: #000000;">{<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&nbsp;fPath</span><span style="color: #000000;">=</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.fName.PostedFile.FileName;</span><span style="color: #008000;">//</span><span style="color: #008000;">获得要导入的文本文件&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;"><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&nbsp;extName</span><span style="color: #000000;">=</span><span style="color: #000000;">fPath.Substring(fPath.LastIndexOf(</span><span style="color: #000000;">"</span><span style="color: #000000;">.</span><span style="color: #000000;">"</span><span style="color: #000000;">)</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">);</span><span style="color: #008000;">//</span><span style="color: #008000;">获得文件的扩展名&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;"><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SqlConnection&nbsp;con</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;SqlConnection(</span><span style="color: #000000;">"</span><span style="color: #000000;">server=.;database=pubs;uid=sa;pwd=;</span><span style="color: #000000;">"</span><span style="color: #000000;">);</span><span style="color: #008000;">//</span><span style="color: #008000;">数据库连接对象</span><span style="color: #008000;"><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;con.Open();<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;"><br /><img id="Codehighlighter1_394_871_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_394_871_Open_Text"><span style="color: #000000;">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SqlCommand&nbsp;com</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;SqlCommand(</span><span style="color: #000000;">"</span><span style="color: #000000;">BULK&nbsp;INSERT&nbsp;pubs.dbo.txtInsert&nbsp;FROM&nbsp;'</span><span style="color: #000000;">"</span><span style="color: #000000;">+</span><span style="color: #000000;">fPath</span><span style="color: #000000;">+</span><span style="color: #000000;">"</span><span style="color: #000000;">'&nbsp;WITH&nbsp;&nbsp;(FIELDTERMINATOR&nbsp;=&nbsp;',',ROWTERMINATOR=&nbsp;'\n')</span><span style="color: #000000;">"</span><span style="color: #000000;">,con);<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">其中的FIELDTERMINATOR=','指明字段间所使用的分隔符为逗号<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">其中ROWTERMINATOR=&nbsp;'\n'指明记录间所使用的分隔符为回车</span><span style="color: #008000;"><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;com.ExecuteNonQuery();<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Write(</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;script&nbsp;language=javascript&gt;alert('数据导入成功!')&lt;/script&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;"><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">&nbsp;(SqlException&nbsp;SQLexc)<br /><img id="Codehighlighter1_930_1017_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_930_1017_Open_Text"><span style="color: #000000;">{<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Write(</span><span style="color: #000000;">"</span><span style="color: #000000;">导入数据库时出错：</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;SQLexc.ToString());<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;"><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />con.Close();<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" style="border: 0px;"  alt="" />}</span></span></div><br style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;" /><span style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;">好了，这个txt文件的导入相对简单，在数据库中我也没有设置主键，我在里面也没有加出错回滚事务操作，在下面的excel文件的导入中介绍。</span><br style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;" /><span style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;">3.excel文件的导入</span><br style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;" /><span style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;">在c盘里建立一个stu.xls文件，在sheet1工作表中有两列数据如下：</span><br style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;" /><span style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;">&nbsp;&nbsp;&nbsp;&nbsp; 编号&nbsp; 姓名</span><br style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;" /><span style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;">&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tom</span><br style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;" /><span style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;">&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jack</span><br style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;" /><span style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;">&nbsp;&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; john</span><br style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;" /><span style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;">&nbsp;&nbsp;&nbsp;&nbsp; ......</span><br style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;" /><span style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;">注意，工作表的第一行是作为标题行的不会被插入到数据库中，真正导入从第二行开始。</span><br style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;" /><span style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;">为了演示事物出错回滚，在这里将txtInsert数据库表中的id字段设置为主键。实现的C#代码如下：</span><br style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;" /><div style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 1314.171875px; word-break: break-all; background-color: #eeeeee;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px;"  alt="" /><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;BtnInsert_Click(</span><span style="color: #0000ff;">object</span><span style="color: #000000;">&nbsp;sender,&nbsp;System.EventArgs&nbsp;e)<br /><img id="Codehighlighter1_66_1275_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;</span><span id="Codehighlighter1_66_1275_Open_Text"><span style="color: #000000;">{<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&nbsp;fPath</span><span style="color: #000000;">=</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.fName.PostedFile.FileName;</span><span style="color: #008000;">//</span><span style="color: #008000;">获得要导入的文本文件&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;"><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&nbsp;extName</span><span style="color: #000000;">=</span><span style="color: #000000;">fPath.Substring(fPath.LastIndexOf(</span><span style="color: #000000;">"</span><span style="color: #000000;">.</span><span style="color: #000000;">"</span><span style="color: #000000;">)</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">);</span><span style="color: #008000;">//</span><span style="color: #008000;">获得文件的扩展名&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;"><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;SqlConnection&nbsp;con</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;SqlConnection(</span><span style="color: #000000;">"</span><span style="color: #000000;">server=.;database=pubs;uid=sa;pwd=;</span><span style="color: #000000;">"</span><span style="color: #000000;">);</span><span style="color: #008000;">//</span><span style="color: #008000;">数据库连接对象</span><span style="color: #008000;"><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;con.Open();&nbsp;&nbsp;&nbsp;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">注意下面的连接字符串，是它起到了导入的作用</span><span style="color: #008000;"><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;SqlCommand&nbsp;excelCmd</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;SqlCommand(</span><span style="color: #000000;">"</span><span style="color: #000000;">insert&nbsp;into&nbsp;txtInsert&nbsp;select&nbsp;*&nbsp;from&nbsp;OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel&nbsp;5.0;HDR=YES;DATABASE=</span><span style="color: #000000;">"</span><span style="color: #000000;">+</span><span style="color: #000000;">fPath</span><span style="color: #000000;">+</span><span style="color: #000000;">"</span><span style="color: #000000;">',Sheet1$)</span><span style="color: #000000;">"</span><span style="color: #000000;">,con);<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;SqlTransaction&nbsp;myTran</span><span style="color: #000000;">=</span><span style="color: #000000;">con.BeginTransaction();</span><span style="color: #008000;">//</span><span style="color: #008000;">开始一个事务操作</span><span style="color: #008000;"><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;excelCmd.Transaction</span><span style="color: #000000;">=</span><span style="color: #000000;">myTran;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;"><br /><img id="Codehighlighter1_614_773_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_614_773_Open_Text"><span style="color: #000000;">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;excelCmd.ExecuteNonQuery();<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myTran.Commit();</span><span style="color: #008000;">//</span><span style="color: #008000;">提交事务&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;"><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Write(</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;script&nbsp;language=javascript&gt;alert('数据导入成功!')&lt;/script&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;"><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">&nbsp;(SqlException&nbsp;err)<br /><img id="Codehighlighter1_808_1252_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_808_1252_Open_Text"><span style="color: #000000;">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myTran.Rollback();&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">出错回滚事务操作<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">以下三行是去掉数据库出错信息中的非法字符单引号、回车和换行符，否则在使用时javascript代码将有语法错误<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">因为js的编码和c#的编码不同</span><span style="color: #008000;"><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&nbsp;errString</span><span style="color: #000000;">=</span><span style="color: #000000;">err.Message.Replace(</span><span style="color: #000000;">"</span><span style="color: #000000;">'</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;errString</span><span style="color: #000000;">=</span><span style="color: #000000;">errString.Replace(Convert.ToChar(</span><span style="color: #000000;">13</span><span style="color: #000000;">).ToString(),</span><span style="color: #000000;">""</span><span style="color: #000000;">);<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;errString</span><span style="color: #000000;">=</span><span style="color: #000000;">errString.Replace(Convert.ToChar(</span><span style="color: #000000;">10</span><span style="color: #000000;">).ToString(),</span><span style="color: #000000;">""</span><span style="color: #000000;">);<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">显示出错信息框</span><span style="color: #008000;"><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Write(</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;script&nbsp;language=javascript&gt;alert('导入数据库时出错!详细信息:</span><span style="color: #000000;">"</span><span style="color: #000000;">+</span><span style="color: #000000;">errString</span><span style="color: #000000;">+</span><span style="color: #000000;">"</span><span style="color: #000000;">')&lt;/script&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;con.Close();<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;}</span></span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px;"  alt="" /></span></div><span style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;">这里&#8220;显示出错信息框&#8221;开始我没有田间那三行代码，结果搞了半天，最后还是在html文件中发现javascript代码部分出现了分行，老是提示&#8220;未结束的字符串常量&#8221;，所以导致不能打开信息框，郁闷死我了，花了好多时间。</span><br style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;" /><span style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;">4.将excel中部分列导入数据库的方法</span><br style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;" /><span style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;">上面讲了关于将整个excel文件导入数据库的方法，那么在实际项目中遇到将excel文件中若干列导入数据库怎么办的呢，原理差不多，我就将代码直接给出了：</span><br style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;" /><div style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 1314.171875px; word-break: break-all; background-color: #eeeeee;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">string</font><span style="color: #000000;">&nbsp;</span>&nbsp;fPath=this.fName.PostedFile.FileName;//获得要导入的文本文件&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">string</font><span style="color: #000000;">&nbsp;</span>&nbsp;extName=fPath.Substring(fPath.LastIndexOf(".")+1);//获得文件的扩展名&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SqlConnection con=new SqlConnection("server=.;database=pubs;uid=sa;pwd=;");//数据库连接对象<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; con.Open();<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px;"  alt="" /><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #0000ff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string</span><span style="color: #000000;">&nbsp;mystring</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Provider&nbsp;=&nbsp;Microsoft.Jet.OLEDB.4.0&nbsp;;&nbsp;Data&nbsp;Source&nbsp;=&nbsp;'</span><span style="color: #000000;">"</span><span style="color: #000000;">+</span><span style="color: #000000;">fPath</span><span style="color: #000000;">+</span><span style="color: #000000;">"</span><span style="color: #000000;">';Extended&nbsp;Properties=Excel&nbsp;8.0</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OleDbConnection&nbsp;cnnxls&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;OleDbConnection&nbsp;(mystring);<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OleDbDataAdapter&nbsp;myDa&nbsp;</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;OleDbDataAdapter(</span><span style="color: #000000;">"</span><span style="color: #000000;">select&nbsp;*&nbsp;from&nbsp;[Sheet1$]</span><span style="color: #000000;">"</span><span style="color: #000000;">,cnnxls);<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataSet&nbsp;myDs&nbsp;</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;DataSet();<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myDa.Fill(myDs);<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(myDs.Tables[</span><span style="color: #000000;">0</span><span style="color: #000000;">].Rows.Count&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">)<br /><img id="Codehighlighter1_356_1330_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_356_1330_Open_Text"><span style="color: #000000;">{<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&nbsp;strSql&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">""</span><span style="color: #000000;">;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&nbsp;CnnString</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Provider=SQLOLEDB;database=pubs;server=.;uid=sa;pwd=</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OleDbConnection&nbsp;conn&nbsp;</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;OleDbConnection(CnnString);<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.Open&nbsp;();<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OleDbCommand&nbsp;myCmd&nbsp;</span><span style="color: #000000;">=</span><span style="color: #0000ff;">null</span><span style="color: #000000;">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;&nbsp;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">myDs.Tables[</span><span style="color: #000000;">0</span><span style="color: #000000;">].Rows.Count;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)</span><span style="color: #008000;">//</span><span style="color: #008000;">第一个工作表中行数，不包括第一行，</span><span style="color: #008000;"><br /><img id="Codehighlighter1_650_1310_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" style="border: 0px;"  alt="" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_650_1310_Open_Text"><span style="color: #000000;">{<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">strSql</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">insert&nbsp;into&nbsp;txtInsert(id,name)&nbsp;values&nbsp;(</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strSql&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;myDs.Tables[</span><span style="color: #000000;">0</span><span style="color: #000000;">].Rows[i].ItemArray[</span><span style="color: #000000;">0</span><span style="color: #000000;">].ToString()&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;'</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strSql&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;myDs.Tables[</span><span style="color: #000000;">0</span><span style="color: #000000;">].Rows[i].ItemArray[</span><span style="color: #000000;">1</span><span style="color: #000000;">].ToString()&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">')</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myCmd</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;OleDbCommand(strSql,conn);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" /></span><span style="color: #0000ff;">try</span><span style="color: #000000;"><br /><img id="Codehighlighter1_997_1155_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_997_1155_Open_Text"><span style="color: #000000;">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myCmd.ExecuteNonQuery();<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Write(</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;script&nbsp;language=javascript&gt;alert('数据导入成功!')&lt;/script&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;"><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">&nbsp;(OleDbException&nbsp;err)<br /><img id="Codehighlighter1_1196_1303_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1196_1303_Open_Text"><span style="color: #000000;">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Write(</span><span style="color: #000000;">"</span><span style="color: #000000;">导入数据库时出错：</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">err.ToString());<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">break</span><span style="color: #000000;">;<br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;"><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;"><br /><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" style="border: 0px;"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.Close();</span></span></div><span style="color: #4b4b4b; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19px; background-color: #ffffff;">其他部分代码自己加吧，这里就是出错失误回滚有点不好处理，请高手指教！！</span><span style="color: #333333; font-family: verdana, Arial, Helvetica, sans-serif; line-height: 25px; background-color: #ffffff;"><br /></span></div><img src ="http://www.cppblog.com/niewenlong/aggbug/198558.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/niewenlong/" target="_blank">聂文龙</a> 2013-03-18 21:11 <a href="http://www.cppblog.com/niewenlong/archive/2013/03/18/198558.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL Server 2005 2208 xp_cmdshell存储过程  默认禁用了，用下面的语句可以打开和禁用。</title><link>http://www.cppblog.com/niewenlong/archive/2013/03/07/198268.html</link><dc:creator>聂文龙</dc:creator><author>聂文龙</author><pubDate>Thu, 07 Mar 2013 08:00:00 GMT</pubDate><guid>http://www.cppblog.com/niewenlong/archive/2013/03/07/198268.html</guid><wfw:comment>http://www.cppblog.com/niewenlong/comments/198268.html</wfw:comment><comments>http://www.cppblog.com/niewenlong/archive/2013/03/07/198268.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/niewenlong/comments/commentRss/198268.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/niewenlong/services/trackbacks/198268.html</trackback:ping><description><![CDATA[<div style="margin: 20px 0px 26px; line-height: 2; color: #333333; font-family: Arial, SimSun, Tahoma; background-color: #ffffff;"><p style="padding: 0px; margin: 18px 0px;"><span style="line-height: 2; padding: 0px; margin: 0px; color: #008080;">--</span><span style="line-height: 2; padding: 0px; margin: 0px; color: #008080;">SQL语句开xp_cmdshell</span></p><p style="padding: 0px; margin: 18px 0px;"><span style="padding: 0px; margin: 0px; color: #000000;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #008080;">--</span><span style="padding: 0px; margin: 0px; color: #008080;">&nbsp;To allow advanced options to be changed.</span><span style="padding: 0px; margin: 0px; color: #008080;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #0000ff;">EXEC</span><span style="padding: 0px; margin: 0px; color: #000000;">&nbsp;sp_configure&nbsp;</span><span style="padding: 0px; margin: 0px; color: #ff0000;">'</span><span style="padding: 0px; margin: 0px; color: #ff0000;">show advanced options</span><span style="padding: 0px; margin: 0px; color: #ff0000;">'</span><span style="padding: 0px; margin: 0px; color: #000000;">,&nbsp;</span><span style="padding: 0px; margin: 0px; color: #800000; font-weight: bold;">1</span><span style="padding: 0px; margin: 0px; color: #000000;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #0000ff;">GO</span><span style="padding: 0px; margin: 0px; color: #000000;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #008080;">--</span><span style="padding: 0px; margin: 0px; color: #008080;">&nbsp;To update the currently configured value for advanced options.</span><span style="padding: 0px; margin: 0px; color: #008080;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #0000ff;">RECONFIGURE</span><span style="padding: 0px; margin: 0px; color: #000000;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #0000ff;">GO</span><span style="padding: 0px; margin: 0px; color: #000000;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #008080;">--</span><span style="padding: 0px; margin: 0px; color: #008080;">&nbsp;To enable the feature.</span><span style="padding: 0px; margin: 0px; color: #008080;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #0000ff;">EXEC</span><span style="padding: 0px; margin: 0px; color: #000000;">&nbsp;sp_configure&nbsp;</span><span style="padding: 0px; margin: 0px; color: #ff0000;">'</span><span style="padding: 0px; margin: 0px; color: #ff0000;">xp_cmdshell</span><span style="padding: 0px; margin: 0px; color: #ff0000;">'</span><span style="padding: 0px; margin: 0px; color: #000000;">,&nbsp;</span><span style="padding: 0px; margin: 0px; color: #800000; font-weight: bold;">1</span><span style="padding: 0px; margin: 0px; color: #000000;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #0000ff;">GO</span><span style="padding: 0px; margin: 0px; color: #000000;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #008080;">--</span><span style="padding: 0px; margin: 0px; color: #008080;">&nbsp;To update the currently configured value for this feature.</span><span style="padding: 0px; margin: 0px; color: #008080;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #0000ff;">RECONFIGURE</span><span style="padding: 0px; margin: 0px; color: #000000;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #0000ff;">GO</span><span style="padding: 0px; margin: 0px; color: #000000;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #008080;">--</span><span style="padding: 0px; margin: 0px; color: #008080;">&nbsp;To disallow advanced options to be changed.</span><span style="padding: 0px; margin: 0px; color: #008080;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #0000ff;">EXEC</span><span style="padding: 0px; margin: 0px; color: #000000;">&nbsp;sp_configure&nbsp;</span><span style="padding: 0px; margin: 0px; color: #ff0000;">'</span><span style="padding: 0px; margin: 0px; color: #ff0000;">show advanced options</span><span style="padding: 0px; margin: 0px; color: #ff0000;">'</span><span style="padding: 0px; margin: 0px; color: #000000;">,&nbsp;</span><span style="padding: 0px; margin: 0px; color: #800000; font-weight: bold;">0</span><span style="padding: 0px; margin: 0px; color: #000000;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #0000ff;">GO</span><span style="padding: 0px; margin: 0px; color: #000000;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #008080;">--</span><span style="padding: 0px; margin: 0px; color: #008080;">&nbsp;To update the currently configured value for advanced options.</span><span style="padding: 0px; margin: 0px; color: #008080;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #0000ff;">RECONFIGURE</span><span style="padding: 0px; margin: 0px; color: #000000;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #0000ff;">GO</span><span style="padding: 0px; margin: 0px; color: #000000;"><br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #008080;">--</span><span style="padding: 0px; margin: 0px; color: #008080;">如果要禁用，</span><span style="padding: 0px; margin: 0px; color: #008080;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #000000;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #008080;">--</span><span style="padding: 0px; margin: 0px; color: #008080;">&nbsp;To allow advanced options to be changed.</span><span style="padding: 0px; margin: 0px; color: #008080;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #0000ff;">EXEC</span><span style="padding: 0px; margin: 0px; color: #000000;">&nbsp;sp_configure&nbsp;</span><span style="padding: 0px; margin: 0px; color: #ff0000;">'</span><span style="padding: 0px; margin: 0px; color: #ff0000;">show advanced options</span><span style="padding: 0px; margin: 0px; color: #ff0000;">'</span><span style="padding: 0px; margin: 0px; color: #000000;">,&nbsp;</span><span style="padding: 0px; margin: 0px; color: #800000; font-weight: bold;">1</span><span style="padding: 0px; margin: 0px; color: #000000;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #0000ff;">GO</span><span style="padding: 0px; margin: 0px; color: #000000;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #008080;">--</span><span style="padding: 0px; margin: 0px; color: #008080;">&nbsp;To update the currently configured value for advanced options.</span><span style="padding: 0px; margin: 0px; color: #008080;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #0000ff;">RECONFIGURE</span><span style="padding: 0px; margin: 0px; color: #000000;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #0000ff;">GO</span><span style="padding: 0px; margin: 0px; color: #000000;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #008080;">--</span><span style="padding: 0px; margin: 0px; color: #008080;">&nbsp;To disable the feature.</span><span style="padding: 0px; margin: 0px; color: #008080;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #0000ff;">EXEC</span><span style="padding: 0px; margin: 0px; color: #000000;">&nbsp;sp_configure&nbsp;</span><span style="padding: 0px; margin: 0px; color: #ff0000;">'</span><span style="padding: 0px; margin: 0px; color: #ff0000;">xp_cmdshell</span><span style="padding: 0px; margin: 0px; color: #ff0000;">'</span><span style="padding: 0px; margin: 0px; color: #000000;">,&nbsp;</span><span style="padding: 0px; margin: 0px; color: #800000; font-weight: bold;">0</span><span style="padding: 0px; margin: 0px; color: #000000;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #0000ff;">GO</span><span style="padding: 0px; margin: 0px; color: #000000;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #008080;">--</span><span style="padding: 0px; margin: 0px; color: #008080;">&nbsp;To update the currently configured value for this feature.</span><span style="padding: 0px; margin: 0px; color: #008080;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #0000ff;">RECONFIGURE</span><span style="padding: 0px; margin: 0px; color: #000000;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #0000ff;">GO</span><span style="padding: 0px; margin: 0px; color: #000000;"><br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #008080;">--</span><span style="padding: 0px; margin: 0px; color: #008080;">&nbsp;To disallow advanced options to be changed.</span><span style="padding: 0px; margin: 0px; color: #008080;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #0000ff;">EXEC</span><span style="padding: 0px; margin: 0px; color: #000000;">&nbsp;sp_configure&nbsp;</span><span style="padding: 0px; margin: 0px; color: #ff0000;">'</span><span style="padding: 0px; margin: 0px; color: #ff0000;">show advanced options</span><span style="padding: 0px; margin: 0px; color: #ff0000;">'</span><span style="padding: 0px; margin: 0px; color: #000000;">,&nbsp;</span><span style="padding: 0px; margin: 0px; color: #800000; font-weight: bold;">0</span><span style="padding: 0px; margin: 0px; color: #000000;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #0000ff;">GO</span><span style="padding: 0px; margin: 0px; color: #000000;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #008080;">--</span><span style="padding: 0px; margin: 0px; color: #008080;">&nbsp;To update the currently configured value for advanced options.</span><span style="padding: 0px; margin: 0px; color: #008080;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #0000ff;">RECONFIGURE</span><span style="padding: 0px; margin: 0px; color: #000000;"><br style="padding: 0px; margin: 0px;" /></span><span style="padding: 0px; margin: 0px; color: #0000ff;">GO</span><span style="padding: 0px; margin: 0px; color: #000000;"><br style="padding: 0px; margin: 0px;" /></span></p><p style="padding: 0px; margin: 18px 0px;"></p><p style="padding: 0px; margin: 18px 0px;"></p><div style="margin: 0px;"></div></div><div style="margin: 5px 0px 0px; clear: both; line-height: 2.2; color: #666666; height: 50px; font-family: Arial, SimSun, Tahoma; font-size: 12px; background-color: #ffffff;"><ul style="padding: 0px; margin: 0px; list-style: none; float: left; width: 550px;"></ul></div><img src ="http://www.cppblog.com/niewenlong/aggbug/198268.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/niewenlong/" target="_blank">聂文龙</a> 2013-03-07 16:00 <a href="http://www.cppblog.com/niewenlong/archive/2013/03/07/198268.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[MySQL]查看用户权限与GRANT用法</title><link>http://www.cppblog.com/niewenlong/archive/2012/07/01/181052.html</link><dc:creator>聂文龙</dc:creator><author>聂文龙</author><pubDate>Sun, 01 Jul 2012 15:10:00 GMT</pubDate><guid>http://www.cppblog.com/niewenlong/archive/2012/07/01/181052.html</guid><wfw:comment>http://www.cppblog.com/niewenlong/comments/181052.html</wfw:comment><comments>http://www.cppblog.com/niewenlong/archive/2012/07/01/181052.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/niewenlong/comments/commentRss/181052.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/niewenlong/services/trackbacks/181052.html</trackback:ping><description><![CDATA[<p><font face="Fixedsys"><font color="#ff0000">查看用户权限</font></font></p>
<p><font face="Fixedsys"><font color="#ff0000">show</font> grants <font color="#0000ff">for</font> 你的用户<br /><br />比如：<br /><font color="#ff0000">show</font> grants <font color="#0000ff">for</font> root<font color="#0000ff">@</font><font color="#ff00ff">'localhost'</font><font color="#0000cc">;</font></font></p>
<p><font face="Fixedsys"><font color="#0000cc">Grant 用法</font></font> 
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>GRANT USAGE ON *.* TO <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#37;&#50;&#48;&#100;&#105;&#115;&#99;&#117;&#122;&#37;&#50;&#48;&#64;&#37;&#50;&#48;&#108;&#111;&#99;&#97;&#108;&#104;&#111;&#115;&#116;&#37;&#50;&#48;">'discuz'@'localhost'</a> IDENTIFIED BY PASSWORD '*C242DDD213BE9C6F8DA28D49245BF69FC79A86EB';<br />GRANT ALL PRIVILEGES ON `discuz`.* TO <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#37;&#50;&#48;&#100;&#105;&#115;&#99;&#117;&#122;&#37;&#50;&#48;&#64;&#37;&#50;&#48;&#108;&#111;&#99;&#97;&#108;&#104;&#111;&#115;&#116;&#37;&#50;&#48;">'discuz'@'localhost'</a>;</p>
<p>我先按我的理解解释一下上面两句的意思<br />建立一个只可以在本地登陆的 不能操作的用用户名 discuz 密码为 ***** 已经加密了的<br />然后第二句的意思是 ，给这个discuz用户操作discuz数据库的所有权限</p>
<p>使用GRANT</p>
<p>GRANT命令用来建立新用户，指定用户口令并增加用户权限。其格式如下：</p>
<p>mysql&gt; GRANT &lt;privileges&gt; ON &lt;what&gt;<br />-&gt; TO &lt;user&gt; [IDENTIFIED BY "&lt;password&gt;"]<br />-&gt; [WITH GRANT OPTION];</p>
<p><br />　　正如你看到的，在这个命令中有许多待填的内容。让我们逐一地对它们进行介绍，并最终给出一些例子以让你对它们的协同工作有一个了解。</p>
<p>　　&lt;privileges&gt;是一个用逗号分隔的你想要赋予的权限的列表。你可以指定的权限可以分为三种类型：</p>
<p>　　数据库/数据表/数据列权限： Alter: 修改已存在的数据表(例如增加/删除列)和索引。<br />Create: 建立新的数据库或数据表。<br />Delete: 删除表的记录。<br />Drop: 删除数据表或数据库。<br />INDEX: 建立或删除索引。<br />Insert: 增加表的记录。<br />Select: 显示/搜索表的记录。<br />Update: 修改表中已存在的记录。</p>
<p>　　全局管理权限：</p>
<p>file: 在MySQL服务器上读写文件。<br />PROCESS: 显示或杀死属于其它用户的服务线程。<br />RELOAD: 重载访问控制表，刷新日志等。<br />SHUTDOWN: 关闭MySQL服务。</p>
<p>　　特别的权限：</p>
<p>ALL: 允许做任何事(和root一样)。<br />USAGE: 只允许登录--其它什么也不允许做。</p>
<p><br />　　这些权限所涉及到的MySQL的特征，其中的一些我们至今还没看到，而其中的绝大部分是你所熟悉的。</p>
<p>&lt;what&gt; 定义了这些权限所作用的区域。*.*意味着权限对所有数据库和数据表有效。dbName.*意味着对名为dbName的数据库中的所有数据表有效。 dbName.tblName意味着仅对名为dbName中的名为tblName的数据表有效。你甚至还可以通过在赋予的权限后面使用圆括号中的数据列的列表以指定权限仅对这些列有效(在后面我们将看到这样的例子)。</p>
<p>　　&lt;user&gt;指定可以应用这些权限的用户。在MySQL中，一个用户通过它登录的用户名和用户使用的计算机的主机名/IP地址来指定。这两个值都可以使用%通配符(例如<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#107;&#101;&#118;&#105;&#110;&#64;&#37;">kevin@%</a>将允许使用用户名kevin从任何机器上登录以享有你指定的权限)。</p>
<p>　　&lt;password&gt;指定了用户连接MySQL服务所用的口令。它被用方括号括起，说明IDENTIFIED BY "&lt;password&gt;"在GRANT命令中是可选项。这里指定的口令会取代用户原来的密码。如果没有为一个新用户指定口令，当他进行连接时就不需要口令。</p>
<p>这个命令中可选的WITH GRANT OPTION部分指定了用户可以使用GRANT/REVOKE命令将他拥有的权限赋予其他用户。请小心使用这项功能--虽然这个问题可能不是那么明显！例如，两个都拥有这个功能的用户可能会相互共享他们的权限，这也许不是你当初想看到的。</p>
<p>　　让我们来看两个例子。建立一个名为dbmanager的用户，他可以使用口令managedb从server.host.net连接 MySQL，并仅仅可以访问名为db的数据库的全部内容(并可以将此权限赋予其他用户)，这可以使用下面的GRANT命令：</p>
<p>mysql&gt; GRANT ALL ON db.*<br />-&gt; TO <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#100;&#98;&#109;&#97;&#110;&#97;&#103;&#101;&#114;&#64;&#115;&#101;&#114;&#118;&#101;&#114;&#46;&#104;&#111;&#115;&#116;&#46;&#110;&#101;&#116;">dbmanager@server.host.net</a><br />-&gt; IDENTIFIED BY "managedb"<br />-&gt; WITH GRANT OPTION;</p>
<p><br />现在改变这个用户的口令为funkychicken，命令格式如下：<br />　　 mysql&gt; GRANT USAGE ON *.*<br />　　 -&gt; TO <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#100;&#98;&#109;&#97;&#110;&#97;&#103;&#101;&#114;&#64;&#115;&#101;&#114;&#118;&#101;&#114;&#46;&#104;&#111;&#115;&#116;&#46;&#110;&#101;&#116;">dbmanager@server.host.net</a><br />　　 -&gt; IDENTIFIED BY "funkychicken";</p>
<p>请注意我们没有赋予任何另外的权限(the USAGE权限只能允许用户登录)，但是用户已经存在的权限不会被改变。</p>
<p>　　现在让我们建立一个新的名为jessica的用户，他可以从host.net域的任意机器连接到MySQL。他可以更新数据库中用户的姓名和 email地址，但是不需要查阅其它数据库的信息。也就是说他对db数据库具有只读的权限(例如，Select)，但是他可以对Users表的name列和email列执行Update操作。命令如下：</p>
<p>mysql&gt; GRANT Select ON db.*<br />-&gt; TO <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#106;&#101;&#115;&#115;&#105;&#99;&#97;&#64;&#37;&#46;&#104;&#111;&#115;&#116;&#46;&#110;&#101;&#116;">jessica@%.host.net</a><br />-&gt; IDENTIFIED BY "jessrules";<br />mysql&gt; GRANT Update (name,email) ON db.Users<br />-&gt; TO <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#106;&#101;&#115;&#115;&#105;&#99;&#97;&#64;&#37;&#46;&#104;&#111;&#115;&#116;&#46;&#110;&#101;&#116;">jessica@%.host.net</a>;</p>
<p><br />　　请注意在第一个命令中我们在指定Jessica可以用来连接的主机名时使用了%(通配符)符号。此外，我们也没有给他向其他用户传递他的权限的能力，因为我们在命令的最后没有带上WITH GRANT OPTION。第二个命令示范了如何通过在赋予的权限后面的圆括号中用逗号分隔的列的列表对特定的数据列赋予权限。</p><img src ="http://www.cppblog.com/niewenlong/aggbug/181052.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/niewenlong/" target="_blank">聂文龙</a> 2012-07-01 23:10 <a href="http://www.cppblog.com/niewenlong/archive/2012/07/01/181052.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>安装 MySQL 5.0 </title><link>http://www.cppblog.com/niewenlong/archive/2009/01/11/71695.html</link><dc:creator>聂文龙</dc:creator><author>聂文龙</author><pubDate>Sat, 10 Jan 2009 18:14:00 GMT</pubDate><guid>http://www.cppblog.com/niewenlong/archive/2009/01/11/71695.html</guid><wfw:comment>http://www.cppblog.com/niewenlong/comments/71695.html</wfw:comment><comments>http://www.cppblog.com/niewenlong/archive/2009/01/11/71695.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/niewenlong/comments/commentRss/71695.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/niewenlong/services/trackbacks/71695.html</trackback:ping><description><![CDATA[<div class=postText>1、直接apt-get 安装：
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: rgb(0,0,0)">apt</span><span style="COLOR: rgb(0,0,0)">-</span><span style="COLOR: rgb(0,0,0)">get&nbsp;install&nbsp;mysql</span><span style="COLOR: rgb(0,0,0)">-</span><span style="COLOR: rgb(0,0,0)">server</span><span style="COLOR: rgb(0,0,0)">-</span><span style="COLOR: rgb(0,0,0)">5.0</span></div>
<br>2、安装启动后出现错误信息：（中文）<br>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: rgb(128,128,128)">*</span><span style="COLOR: rgb(0,0,0)">&nbsp;Stopping&nbsp;MySQL&nbsp;</span><span style="COLOR: rgb(0,0,255)">database</span><span style="COLOR: rgb(0,0,0)">&nbsp;server&nbsp;mysqld&nbsp;</span><span style="COLOR: rgb(255,0,0)">[</span><span style="COLOR: rgb(255,0,0)">&nbsp;OK&nbsp;</span><span style="COLOR: rgb(255,0,0)">]</span><span style="COLOR: rgb(0,0,0)"><br>安装mysql&nbsp;时出现下列错误，请教高手！<br></span><span style="COLOR: rgb(128,128,128)">*</span><span style="COLOR: rgb(0,0,0)">&nbsp;Starting&nbsp;MySQL&nbsp;</span><span style="COLOR: rgb(0,0,255)">database</span><span style="COLOR: rgb(0,0,0)">&nbsp;server&nbsp;mysqld&nbsp;</span><span style="COLOR: rgb(255,0,0)">[</span><span style="COLOR: rgb(255,0,0)">fail</span><span style="COLOR: rgb(255,0,0)">]</span><span style="COLOR: rgb(0,0,0)"><br>invoke</span><span style="COLOR: rgb(128,128,128)">-</span><span style="COLOR: rgb(0,0,0)">rc.d:&nbsp;initscript&nbsp;mysql,&nbsp;action&nbsp;"start"&nbsp;failed.<br>dpkg：处理&nbsp;mysql</span><span style="COLOR: rgb(128,128,128)">-</span><span style="COLOR: rgb(0,0,0)">server</span><span style="COLOR: rgb(128,128,128)">-</span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">5.0</span><span style="COLOR: rgb(0,0,0)">&nbsp;(</span><span style="COLOR: rgb(0,128,128)">--</span><span style="COLOR: rgb(0,128,128)">configure)时出错：</span><span style="COLOR: rgb(0,128,128)"><br></span><span style="COLOR: rgb(0,0,0)">子进程&nbsp;post</span><span style="COLOR: rgb(128,128,128)">-</span><span style="COLOR: rgb(0,0,0)">installation&nbsp;script&nbsp;返回了错误号&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">1</span><span style="COLOR: rgb(0,0,0)"><br>dpkg：依赖关系问题使得&nbsp;mysql</span><span style="COLOR: rgb(128,128,128)">-</span><span style="COLOR: rgb(0,0,0)">server&nbsp;的配置工作不能继续：<br>mysql</span><span style="COLOR: rgb(128,128,128)">-</span><span style="COLOR: rgb(0,0,0)">server&nbsp;依赖于&nbsp;mysql</span><span style="COLOR: rgb(128,128,128)">-</span><span style="COLOR: rgb(0,0,0)">server</span><span style="COLOR: rgb(128,128,128)">-</span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">5.0</span><span style="COLOR: rgb(0,0,0)">；然而：<br>软件包&nbsp;mysql</span><span style="COLOR: rgb(128,128,128)">-</span><span style="COLOR: rgb(0,0,0)">server</span><span style="COLOR: rgb(128,128,128)">-</span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">5.0</span><span style="COLOR: rgb(0,0,0)">&nbsp;还没有被配置。<br>dpkg：处理&nbsp;mysql</span><span style="COLOR: rgb(128,128,128)">-</span><span style="COLOR: rgb(0,0,0)">server&nbsp;(</span><span style="COLOR: rgb(0,128,128)">--</span><span style="COLOR: rgb(0,128,128)">configure)时出错：</span><span style="COLOR: rgb(0,128,128)"><br></span><span style="COLOR: rgb(0,0,0)">依赖关系问题&nbsp;</span><span style="COLOR: rgb(128,128,128)">-</span><span style="COLOR: rgb(0,0,0)">&nbsp;仍未被配置<br>Processing&nbsp;triggers&nbsp;</span><span style="COLOR: rgb(0,0,255)">for</span><span style="COLOR: rgb(0,0,0)">&nbsp;libc6&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"><br>ldconfig&nbsp;deferred&nbsp;processing&nbsp;now&nbsp;taking&nbsp;place<br>在处理时有错误发生：<br>mysql</span><span style="COLOR: rgb(128,128,128)">-</span><span style="COLOR: rgb(0,0,0)">server</span><span style="COLOR: rgb(128,128,128)">-</span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">5.0</span><span style="COLOR: rgb(0,0,0)"><br>mysql</span><span style="COLOR: rgb(128,128,128)">-</span><span style="COLOR: rgb(0,0,0)">server<br>E:&nbsp;Sub</span><span style="COLOR: rgb(128,128,128)">-</span><span style="COLOR: rgb(0,0,0)">process&nbsp;</span><span style="COLOR: rgb(128,128,128)">/</span><span style="COLOR: rgb(0,0,0)">usr</span><span style="COLOR: rgb(128,128,128)">/</span><span style="COLOR: rgb(0,0,0)">bin</span><span style="COLOR: rgb(128,128,128)">/</span><span style="COLOR: rgb(0,0,0)">dpkg&nbsp;returned&nbsp;an&nbsp;error&nbsp;code&nbsp;(</span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">1</span><span style="COLOR: rgb(0,0,0)">)</span></div>
<br>英文错误信息是：<br>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: rgb(0,0,0)">invoke</span><span style="COLOR: rgb(0,0,0)">-</span><span style="COLOR: rgb(0,0,0)">rc.d:&nbsp;initscript&nbsp;apparmor,&nbsp;action&nbsp;</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">force-reload</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">&nbsp;failed.<br></span><span style="COLOR: rgb(0,0,0)">*</span><span style="COLOR: rgb(0,0,0)">&nbsp;Starting&nbsp;MySQL&nbsp;database&nbsp;server&nbsp;mysqld<br><img src="http://www.blogjava.net/Images/dot.gif">fail</span><span style="COLOR: rgb(0,0,0)">!</span><span style="COLOR: rgb(0,0,0)"><br>invoke</span><span style="COLOR: rgb(0,0,0)">-</span><span style="COLOR: rgb(0,0,0)">rc.d:&nbsp;initscript&nbsp;mysql,&nbsp;action&nbsp;</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">start</span><span style="COLOR: rgb(0,0,0)">"</span><span style="COLOR: rgb(0,0,0)">&nbsp;failed.<br>dpkg:&nbsp;error&nbsp;processing&nbsp;mysql</span><span style="COLOR: rgb(0,0,0)">-</span><span style="COLOR: rgb(0,0,0)">server</span><span style="COLOR: rgb(0,0,0)">-</span><span style="COLOR: rgb(0,0,0)">5.0</span><span style="COLOR: rgb(0,0,0)">&nbsp;(</span><span style="COLOR: rgb(0,0,0)">--</span><span style="COLOR: rgb(0,0,0)">configure):<br>subprocess&nbsp;post</span><span style="COLOR: rgb(0,0,0)">-</span><span style="COLOR: rgb(0,0,0)">installation&nbsp;script&nbsp;returned&nbsp;error&nbsp;exit&nbsp;status&nbsp;</span><span style="COLOR: rgb(0,0,0)">1</span><span style="COLOR: rgb(0,0,0)"><br>dpkg:&nbsp;dependency&nbsp;problems&nbsp;prevent&nbsp;configuration&nbsp;of&nbsp;mysql</span><span style="COLOR: rgb(0,0,0)">-</span><span style="COLOR: rgb(0,0,0)">server:<br>mysql</span><span style="COLOR: rgb(0,0,0)">-</span><span style="COLOR: rgb(0,0,0)">server&nbsp;depends&nbsp;on&nbsp;mysql</span><span style="COLOR: rgb(0,0,0)">-</span><span style="COLOR: rgb(0,0,0)">server</span><span style="COLOR: rgb(0,0,0)">-</span><span style="COLOR: rgb(0,0,0)">5.0</span><span style="COLOR: rgb(0,0,0)">;&nbsp;however:<br>Package&nbsp;mysql</span><span style="COLOR: rgb(0,0,0)">-</span><span style="COLOR: rgb(0,0,0)">server</span><span style="COLOR: rgb(0,0,0)">-</span><span style="COLOR: rgb(0,0,0)">5.0</span><span style="COLOR: rgb(0,0,0)">&nbsp;is&nbsp;not&nbsp;configured&nbsp;yet.<br>dpkg:&nbsp;error&nbsp;processing&nbsp;mysql</span><span style="COLOR: rgb(0,0,0)">-</span><span style="COLOR: rgb(0,0,0)">server&nbsp;(</span><span style="COLOR: rgb(0,0,0)">--</span><span style="COLOR: rgb(0,0,0)">configure):<br>dependency&nbsp;problems&nbsp;</span><span style="COLOR: rgb(0,0,0)">-</span><span style="COLOR: rgb(0,0,0)">&nbsp;leaving&nbsp;unconfigured<br>Errors&nbsp;were&nbsp;encountered&nbsp;</span><span style="COLOR: rgb(0,0,255)">while</span><span style="COLOR: rgb(0,0,0)">&nbsp;processing:<br>mysql</span><span style="COLOR: rgb(0,0,0)">-</span><span style="COLOR: rgb(0,0,0)">server</span><span style="COLOR: rgb(0,0,0)">-</span><span style="COLOR: rgb(0,0,0)">5.0</span><span style="COLOR: rgb(0,0,0)"><br>mysql</span><span style="COLOR: rgb(0,0,0)">-</span><span style="COLOR: rgb(0,0,0)">server<br>E:&nbsp;Sub</span><span style="COLOR: rgb(0,0,0)">-</span><span style="COLOR: rgb(0,0,0)">process&nbsp;</span><span style="COLOR: rgb(0,0,0)">/</span><span style="COLOR: rgb(0,0,0)">usr</span><span style="COLOR: rgb(0,0,0)">/</span><span style="COLOR: rgb(0,0,0)">bin</span><span style="COLOR: rgb(0,0,0)">/</span><span style="COLOR: rgb(0,0,0)">dpkg&nbsp;returned&nbsp;an&nbsp;error&nbsp;code&nbsp;(</span><span style="COLOR: rgb(0,0,0)">1</span><span style="COLOR: rgb(0,0,0)">)</span></div>
出现错误的原因是我修改了ubuntu的默认网络设置（<span class=postbody>/etc/network/interfaces ）</span>，删除了ubuntu的<span class=postbody>loopback接口，我的解决方法如下：</span><br><span class=postbody>ubuntu原来默认设置：</span><br><span class=postbody>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: rgb(0,0,0)">auto&nbsp;lo<br>iface&nbsp;lo&nbsp;inet&nbsp;loopback <br></span></div>
被我修改成静态ip：<br>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: rgb(0,0,0)">auto&nbsp;eth0<br>iface&nbsp;eth0&nbsp;inet&nbsp;static<br>address&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">10.100</span><span style="COLOR: rgb(0,0,0)">.</span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">24.31</span><span style="COLOR: rgb(0,0,0)"><br>netmask&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">255.255</span><span style="COLOR: rgb(0,0,0)">.</span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">255.0</span><span style="COLOR: rgb(0,0,0)"><br>gateway&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">10.100</span><span style="COLOR: rgb(0,0,0)">.</span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">24.254</span><span style="COLOR: rgb(0,0,0)"><br></span></div>
</span>将上面两部分合起来就可以增加一个Loopback接口<br>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: rgb(0,0,0)">auto&nbsp;eth0<br>iface&nbsp;eth0&nbsp;inet&nbsp;static<br>address&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">10.100</span><span style="COLOR: rgb(0,0,0)">.</span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">24.31</span><span style="COLOR: rgb(0,0,0)"><br>netmask&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">255.255</span><span style="COLOR: rgb(0,0,0)">.</span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">255.0</span><span style="COLOR: rgb(0,0,0)"><br>gateway&nbsp;</span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">10.100</span><span style="COLOR: rgb(0,0,0)">.</span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">24.254</span><span style="COLOR: rgb(0,0,0)"><br><br>auto&nbsp;lo<br>iface&nbsp;lo&nbsp;inet&nbsp;loopback&nbsp;</span></div>
重启系统，这时再安装mysql-server就ok了~<br><br>3、允许其他机器连接、访问到数据库：<br>修改文件 /etc/mysql/my.cnf，将<br>
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: rgb(0,0,0)">bind</span><span style="COLOR: rgb(128,128,128)">-</span><span style="COLOR: rgb(0,0,0)">address</span><span style="COLOR: rgb(128,128,128)">=</span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">127.0</span><span style="COLOR: rgb(0,0,0)">.</span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">0.1</span></div>
改为
<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: rgb(0,0,0)">bind</span><span style="COLOR: rgb(128,128,128)">-</span><span style="COLOR: rgb(0,0,0)">address</span><span style="COLOR: rgb(128,128,128)">=</span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">0.0</span><span style="COLOR: rgb(0,0,0)">.</span><span style="FONT-WEIGHT: bold; COLOR: rgb(128,0,0)">0.0</span></div>
这样将允许所有ip访问数据库<br><br>参考资料：<a href="http://forum.ubuntu.org.cn/viewtopic.php?p=757703"><font color=#000080>http://forum.ubuntu.org.cn/viewtopic.php?p=757703</font></a><br><a href="http://blog.csdn.net/redvalley/archive/2008/04/27/2333702.aspx"><font color=#000080>&nbsp;http://blog.csdn.net/redvalley/archive/2008/04/27/2333702.aspx</font></a><br>问题2也可以参考一下<a href="http://blog.csdn.net/redvalley/archive/2008/04/27/2333702.aspx"><font color=#000080>这里</font></a>的方法，似乎更简单，也不用改动network设置，不过不知可不可以，没验证过~<br></div>
<img src ="http://www.cppblog.com/niewenlong/aggbug/71695.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/niewenlong/" target="_blank">聂文龙</a> 2009-01-11 02:14 <a href="http://www.cppblog.com/niewenlong/archive/2009/01/11/71695.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql数据文件破坏后的修复方法</title><link>http://www.cppblog.com/niewenlong/archive/2008/08/19/59336.html</link><dc:creator>聂文龙</dc:creator><author>聂文龙</author><pubDate>Tue, 19 Aug 2008 05:57:00 GMT</pubDate><guid>http://www.cppblog.com/niewenlong/archive/2008/08/19/59336.html</guid><wfw:comment>http://www.cppblog.com/niewenlong/comments/59336.html</wfw:comment><comments>http://www.cppblog.com/niewenlong/archive/2008/08/19/59336.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/niewenlong/comments/commentRss/59336.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/niewenlong/services/trackbacks/59336.html</trackback:ping><description><![CDATA[<div id=article_main _element_extended_="true"><span>由于临时断电，使用<span>kill&nbsp;-9</span>中止<span>MySQL</span>服务进程，所有的这些都可能会毁坏<span>MySQL</span>的数据文件。如果在被干扰时，服务正在改变文件，文件可能会留下错误的或不一致的状态。因为这样的毁坏有时是不容易被发现的，当你发现这个错误时可能是很久以后的事了。于是，当你发现这个问题时，也许所有的备份都有同样的错误。<span>&nbsp;<br><br>MySQL</span>参考手册的第十五章讲述了<span>MySQL</span>自带的<span>myisamchk</span>的功能，以及如何使用它检查和修复你的<span>MySQL</span>数据文件。虽然这一章对于每个想要搭建一个强壮的<span>MySQL</span>服务的人都是推荐阅读的，我们还是有必要在这里对其中的要点进行讨论。<span><br><br></span>在我们继续之前，你必须意识到<span>myisamchk</span>程序对用来检查和修改的<span>MySQL</span>数据文件的访问应该是唯一的。如果<span>MySQL</span>服务正在使用某一文件，并对<span>myisamchk</span>正在检查的文件进行修改，<span>myisamchk</span>会误以为发生了错误，并会试图进行修复<span>--</span>这将导致<span>MySQL</span>服务的崩溃！这样，要避免这种情况的发生，通常我们需要在工作时关闭<span>MySQL</span>服务。作为选择，你也可以暂时关闭服务以制作一个文件的拷贝，然后在这个拷贝上工作。当你做完了以后，重新关闭服务并使用新的文件取代原来的文件<span>(</span>也许你还需要使用期间的变更日志<span>)</span>。<span><br>MySQL</span>数据目录不是太难理解的。每一个数据库对应一个子目录，每个子目录中包含了对应于这个数据库中的数据表的文件。每一个数据表对应三个文件，它们和表名相同，但是具有不同的扩展名。<span>tblName.frm</span>文件是表的定义，它保存了表中包含的数据列的内容和类型。<span>tblName.MYD</span>文件包含了表中的数据。<span>tblName.MYI</span>文件包含了表的索引<span>(</span>例如，它可能包含<span>lookup</span>表以帮助提高对表的主键列的查询<span>)</span>。<span><br><br></span>要检查一个表的错误，只需要运行<span>myisamchk(</span>在<span>MySQL</span>的<span>bin</span>目录下<span>)</span>并提供文件的位置和表名，或者是表的索引文件名：</span><span>&nbsp;myisamchk&nbsp;/usr/local/mysql/var/dbName/tblName<br>&nbsp;myisamchk&nbsp;/usr/local/mysql/var/dbName/tblName.MYI</span><span><br><br></span><span>上面的两个命令都可以执行对指定表的检查。要检查数据库中所有的表，可以使用通配符：</span><span>&nbsp;myisamchk&nbsp;/usr/local/mysql/var/dbName/*.MYI&nbsp;</span><span><br></span><span>要检查所有数据库中的所有表，可以使用两个通配符：</span><span>&nbsp;myisamchk&nbsp;/usr/local/mysql/var/*/*.MYI&nbsp;</span><span><br></span><span>如果不带任何选项，<span>myisamchk</span>将对表文件执行普通的检查。如果你对一个表有怀疑，但是普通的检查不能发现任何错误，你可以执行更彻底的检查<span>(</span>但是也更慢！<span>)</span>，这需要使用<span>--extend-check</span>选项：<span><br>&nbsp; </span></span><span>myisamchk&nbsp;--extend-check&nbsp;/path/to/tblName</span>
<p><span><br></span><span>对错误的检查是没有破坏性的，这意味着你不必担心执行对你的数据文件的检查会使已经存在的问题变得更糟。另一方面，修复选项，虽然通常也是安全的，但是它对你的数据文件的更改是无法撤消的。因为这个原因，我们强烈推荐你试图修复一个被破坏的表文件时首先做个备份，并确保在制作这个备份之前你的<span>MySQL</span>服务是关闭的。<span><br><br></span>当你试图修复一个被破坏的表的问题时，有三种修复类型。如果你得到一个错误信息指出一个临时文件不能建立，删除信息所指出的文件并再试一次<span>--</span>这通常是上一次修复操作遗留下来的。<span><br></span>这三种修复方法如下所示：<span><br><br>&nbsp;myisamchk&nbsp;--recover&nbsp;--quick&nbsp;/path/to/tblName<br>&nbsp;myisamchk&nbsp;--recover&nbsp;/path/to/tblName<br>&nbsp;myisamchk&nbsp;--safe-recover&nbsp;/path/to/tblName<br>&nbsp;<br><br></span>第一种是最快的，用来修复最普通的问题；而最后一种是最慢的，用来修复一些其它方法所不能修复的问题。<span><br><br></span><strong>检查和修复<span>MySQL</span>数据文件</strong><span><br></span>如果上面的方法无法修复一个被损坏的表，在你放弃之前，你还可以试试下面这两个技巧：<span><br></span>如果你怀疑表的索引文件<span>(*.MYI)</span>发生了不可修复的错误，甚至是丢失了这个文件，你可以使用数据文件<span>(*.MYD)</span>和数据格式文件<span>(*.frm)</span>重新生成它。首先制作一个数据文件<span>(tblName.MYD)</span>的拷贝。重启你的<span>MySQL</span>服务并连接到这个服务上，使用下面的命令删除表的内容：<span>&nbsp;<br>mysql&nbsp;DELETE&nbsp;FROM&nbsp;tblName;<br></span>在删除表的内容的同时，会建立一个新的索引文件。退出登录并重新关闭服务，然后用你刚才保存的数据文件<span>(tblName.MYD)</span>覆盖新的<span>(</span>空<span>)</span>数据文件。最后，使用<span>myisamchk</span>执行标准的修复<span>(</span>上面的第二种方法<span>)</span>，根据表的数据的内容和表的格式文件重新生成索引数据。<span><br><br></span>如果你的表的格式文件<span>(tblName.frm)</span>丢失了或者是发生了不可修复的错误，但是你清楚如何使用相应的<span>CREATE&nbsp;TABLE</span>语句来重新生成这张表，你可以重新生成一个新的<span>.frm</span>文件并和你的数据文件和索引文件<span>(</span>如果索引文件有问题，使用上面的方法重建一个新的<span>)</span>一起使用。首先制作一个数据和索引文件的拷贝，然后删除原来的文件<span>(</span>删除数据目录下有关这个表的所有记录<span>)</span>。<span><br><br></span>启动<span>MySQL</span>服务并使用当初的<span>CREATE&nbsp;TABLE</span>文件建立一个新的表。新的<span>.frm</span>文件应该可以正常工作了，但是最好你还是执行一下标准的修复<span>(</span>上面的第二种方法<span>)</span>。</span></p>
</div>
<p><br>&nbsp;</p>
<p><br><span class=tpc_content><font size=2>可以使用mysql语句,用 CHECK TABLE $table; &nbsp; //其中$table代表数据表的名字，检测表是否损坏，如果损坏可以REPAIR TABLE $table 来修复，如果一次不行，可以多修复几次！<br><br>如果使用WIN服务器,可以先登陆DB服务器，进入此路径，不用进mysql里<br>D:\CD MYSQL<br><br>D:\mysql&gt;CD BIN<br><br>D:\mysql\bin&gt;MYISAMCHK -r d:\mysql\data\guild\msg_table.myi(msg_table)<br>- check key delete-chain<br>- check record delete-chain<br>- recovering (with sort) MyISAM-table 'd:\mysql\data\guild\msg_table.myi'<br>Data records: 23<br>- Fixing index 1<br><br><br>D:\mysql\bin&gt;MYISAMCHK --safe-recover d:\mysql\data\guild\msg_table.myi<br>- recovering (with keycache) MyISAM-table 'd:\mysql\data\guild\msg_table.myi'<br>Data records: 89<br><br>D:\mysql\bin&gt;<br><br>当不知道哪个表坏了，可以进入mysql数据库:<br>use guild;<br>desc msg_table; 看msg_table有没有坏<br><br>修复好了进入MYSQL数据库中打命令检查：show table;</font></span><br><!----></p>
<p><br>&nbsp;</p>
<p>&nbsp;</p>
<!-- google_ad_section_end -->
<img src ="http://www.cppblog.com/niewenlong/aggbug/59336.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/niewenlong/" target="_blank">聂文龙</a> 2008-08-19 13:57 <a href="http://www.cppblog.com/niewenlong/archive/2008/08/19/59336.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Mysql日期和时间函数不求人</title><link>http://www.cppblog.com/niewenlong/archive/2008/08/15/58900.html</link><dc:creator>聂文龙</dc:creator><author>聂文龙</author><pubDate>Thu, 14 Aug 2008 16:28:00 GMT</pubDate><guid>http://www.cppblog.com/niewenlong/archive/2008/08/15/58900.html</guid><wfw:comment>http://www.cppblog.com/niewenlong/comments/58900.html</wfw:comment><comments>http://www.cppblog.com/niewenlong/archive/2008/08/15/58900.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/niewenlong/comments/commentRss/58900.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/niewenlong/services/trackbacks/58900.html</trackback:ping><description><![CDATA[<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">对于每个类型拥有的值范围以及并且指定日期何时间值的有效格式的描述见7.3.6 日期和时间类型。&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">这里是一个使用日期函数的例子。下面的查询选择了所有记录，其date_col的值是在最后30天以内：&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">mysql&gt; SELECT something FROM table&nbsp; <br>WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) &lt;= 30;&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">DAYOFWEEK(date)&nbsp; <br>返回日期date的星期索引(1=星期天，2=星期一, &#8230;&#8230;7=星期六)。这些索引值对应于ODBC标准。&nbsp; <br>mysql&gt; select DAYOFWEEK('1998-02-03');&nbsp; <br>-&gt; 3&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">WEEKDAY(date)&nbsp; <br>返回date的星期索引(0=星期一，1=星期二, &#8230;&#8230;6= 星期天)。&nbsp; <br>mysql&gt; select WEEKDAY('1997-10-04 22:23:00');&nbsp; <br>-&gt; 5&nbsp; <br>mysql&gt; select WEEKDAY('1997-11-05');&nbsp; <br>-&gt; 2&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">DAYOFMONTH(date)&nbsp; <br>返回date的月份中日期，在1到31范围内。&nbsp; <br>mysql&gt; select DAYOFMONTH('1998-02-03');&nbsp; <br>-&gt; 3&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">DAYOFYEAR(date)&nbsp; <br>返回date在一年中的日数, 在1到366范围内。&nbsp; <br>mysql&gt; select DAYOFYEAR('1998-02-03');&nbsp; <br>-&gt; 34&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">MONTH(date)&nbsp; <br>返回date的月份，范围1到12。&nbsp; <br>mysql&gt; select MONTH('1998-02-03');&nbsp; <br>-&gt; 2&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">DAYNAME(date)&nbsp; <br>返回date的星期名字。&nbsp; <br>mysql&gt; select DAYNAME("1998-02-05");&nbsp; <br>-&gt; 'Thursday'&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">MONTHNAME(date)&nbsp; <br>返回date的月份名字。&nbsp; <br>mysql&gt; select MONTHNAME("1998-02-05");&nbsp; <br>-&gt; 'February'&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">QUARTER(date)&nbsp; <br>返回date一年中的季度，范围1到4。&nbsp; <br>mysql&gt; select QUARTER('98-04-01');&nbsp; <br>-&gt; 2&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">WEEK(date)&nbsp; <br>　&nbsp; <br>WEEK(date,first)&nbsp; <br>对于星期天是一周的第一天的地方，有一个单个参数，返回date的周数，范围在0到52。2个参数形式WEEK()允许 <br>你指定星期是否开始于星期天或星期一。如果第二个参数是0，星期从星期天开始，如果第二个参数是1， <br>从星期一开始。&nbsp; <br>mysql&gt; select WEEK('1998-02-20');&nbsp; <br>-&gt; 7&nbsp; <br>mysql&gt; select WEEK('1998-02-20',0);&nbsp; <br>-&gt; 7&nbsp; <br>mysql&gt; select WEEK('1998-02-20',1);&nbsp; <br>-&gt; 8&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">YEAR(date)&nbsp; <br>返回date的年份，范围在1000到9999。&nbsp; <br>mysql&gt; select YEAR('98-02-03');&nbsp; <br>-&gt; 1998&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">HOUR(time)&nbsp; <br>返回time的小时，范围是0到23。&nbsp; <br>mysql&gt; select HOUR('10:05:03');&nbsp; <br>-&gt; 10&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">MINUTE(time)&nbsp; <br>返回time的分钟，范围是0到59。&nbsp; <br>mysql&gt; select MINUTE('98-02-03 10:05:03');&nbsp; <br>-&gt; 5&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">SECOND(time)&nbsp; <br>回来time的秒数，范围是0到59。&nbsp; <br>mysql&gt; select SECOND('10:05:03');&nbsp; <br>-&gt; 3&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">PERIOD_ADD(P,N)&nbsp; <br>增加N个月到阶段P（以格式YYMM或YYYYMM)。以格式YYYYMM返回值。注意阶段参数P不是日期值。&nbsp; <br>mysql&gt; select PERIOD_ADD(9801,2);&nbsp; <br>-&gt; 199803&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">PERIOD_DIFF(P1,P2)&nbsp; <br>返回在时期P1和P2之间月数，P1和P2应该以格式YYMM或YYYYMM。注意，时期参数P1和P2不是日期值。&nbsp; <br>mysql&gt; select PERIOD_DIFF(9802,199703);&nbsp; <br>-&gt; 11&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">DATE_ADD(date,INTERVAL expr type)&nbsp; <br>　&nbsp; <br>DATE_SUB(date,INTERVAL expr type)&nbsp; <br>　&nbsp; <br>ADDDATE(date,INTERVAL expr type)&nbsp; <br>　&nbsp; <br>SUBDATE(date,INTERVAL expr type)&nbsp; <br>这些功能执行日期运算。对于MySQL 3.22，他们是新的。ADDDATE()和SUBDATE()是DATE_ADD()和DATE_SUB()的同义词。 <br>在MySQL 3.23中，你可以使用+和-而不是DATE_ADD()和DATE_SUB()。（见例子）date是一个指定开始日期的 <br>DATETIME或DATE值，expr是指定加到开始日期或从开始日期减去的间隔值一个表达式，expr是一个字符串；它可以以 <br>一个&#8220;-&#8221;开始表示负间隔。type是一个关键词，指明表达式应该如何被解释。EXTRACT(type FROM date)函数从日期 <br>中返回&#8220;type&#8221;间隔。下表显示了type和expr参数怎样被关联： type值 含义 期望的expr格式&nbsp; <br>SECOND 秒 SECONDS&nbsp; <br>MINUTE 分钟 MINUTES&nbsp; <br>HOUR 时间 HOURS&nbsp; <br>DAY 天 DAYS&nbsp; <br>MONTH 月 MONTHS&nbsp; <br>YEAR 年 YEARS&nbsp; <br>MINUTE_SECOND 分钟和秒 "MINUTES:SECONDS"&nbsp; <br>HOUR_MINUTE 小时和分钟 "HOURS:MINUTES"&nbsp; <br>DAY_HOUR 天和小时 "DAYS HOURS"&nbsp; <br>YEAR_MONTH 年和月 "YEARS-MONTHS"&nbsp; <br>HOUR_SECOND 小时, 分钟， "HOURS:MINUTES:SECONDS"&nbsp; <br>DAY_MINUTE 天, 小时, 分钟 "DAYS HOURS:MINUTES"&nbsp; <br>DAY_SECOND 天, 小时, 分钟, 秒 "DAYS HOURS:MINUTES:SECONDS"&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">MySQL在expr格式中允许任何标点分隔符。表示显示的是建议的分隔符。如果date参数是一个DATE值并且你的计算仅仅 <br>包含YEAR、MONTH和DAY部分(即，没有时间部分)，结果是一个DATE值。否则结果是一个DATETIME值。&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">mysql&gt; SELECT "1997-12-31 23:59:59" + INTERVAL 1 SECOND;&nbsp; <br>-&gt; 1998-01-01 00:00:00&nbsp; <br>mysql&gt; SELECT INTERVAL 1 DAY + "1997-12-31";&nbsp; <br>-&gt; 1998-01-01&nbsp; <br>mysql&gt; SELECT "1998-01-01" - INTERVAL 1 SECOND;&nbsp; <br>-&gt; 1997-12-31 23:59:59&nbsp; <br>mysql&gt; SELECT DATE_ADD("1997-12-31 23:59:59",&nbsp; <br>INTERVAL 1 SECOND);&nbsp; <br>-&gt; 1998-01-01 00:00:00&nbsp; <br>mysql&gt; SELECT DATE_ADD("1997-12-31 23:59:59",&nbsp; <br>INTERVAL 1 DAY);&nbsp; <br>-&gt; 1998-01-01 23:59:59&nbsp; <br>mysql&gt; SELECT DATE_ADD("1997-12-31 23:59:59",&nbsp; <br>INTERVAL "1:1" MINUTE_SECOND);&nbsp; <br>-&gt; 1998-01-01 00:01:00&nbsp; <br>mysql&gt; SELECT DATE_SUB("1998-01-01 00:00:00",&nbsp; <br>INTERVAL "1 1:1:1" DAY_SECOND);&nbsp; <br>-&gt; 1997-12-30 22:58:59&nbsp; <br>mysql&gt; SELECT DATE_ADD("1998-01-01 00:00:00",&nbsp; <br>INTERVAL "-1 10" DAY_HOUR);&nbsp; <br>-&gt; 1997-12-30 14:00:00&nbsp; <br>mysql&gt; SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY);&nbsp; <br>-&gt; 1997-12-02&nbsp; <br>mysql&gt; SELECT EXTRACT(YEAR FROM "1999-07-02");&nbsp; <br>-&gt; 1999&nbsp; <br>mysql&gt; SELECT EXTRACT(YEAR_MONTH FROM "1999-07-02 01:02:03");&nbsp; <br>-&gt; 199907&nbsp; <br>mysql&gt; SELECT EXTRACT(DAY_MINUTE FROM "1999-07-02 01:02:03");&nbsp; <br>-&gt; 20102&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">如果你指定太短的间隔值(不包括type关键词期望的间隔部分)，MySQL假设你省掉了间隔值的最左面部分。例如， <br>如果你指定一个type是DAY_SECOND，值expr被希望有天、小时、分钟和秒部分。如果你象"1:10"这样指定值， <br>MySQL假设日子和小时部分是丢失的并且值代表分钟和秒。换句话说，"1:10" DAY_SECOND以它等价于"1:10" MINUTE_SECOND <br>的方式解释，这对那MySQL解释TIME值表示经过的时间而非作为一天的时间的方式有二义性。如果你使用确实不正确的日期， <br>结果是NULL。如果你增加MONTH、YEAR_MONTH或YEAR并且结果日期大于新月份的最大值天数，日子在新月用最大的天调整。&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">mysql&gt; select DATE_ADD('1998-01-30', Interval 1 month);&nbsp; <br>-&gt; 1998-02-28&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">注意，从前面的例子中词INTERVAL和type关键词不是区分大小写的。&nbsp; <br>TO_DAYS(date)&nbsp; <br>给出一个日期date，返回一个天数(从0年的天数)。&nbsp; <br>mysql&gt; select TO_DAYS(950501);&nbsp; <br>-&gt; 728779&nbsp; <br>mysql&gt; select TO_DAYS('1997-10-07');&nbsp; <br>-&gt; 729669&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">TO_DAYS()不打算用于使用格列高里历(1582)出现前的值。&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">FROM_DAYS(N)&nbsp; <br>给出一个天数N，返回一个DATE值。&nbsp; <br>mysql&gt; select FROM_DAYS(729669);&nbsp; <br>-&gt; '1997-10-07'&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">TO_DAYS()不打算用于使用格列高里历(1582)出现前的值。&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">DATE_FORMAT(date,format)&nbsp; <br>根据format字符串格式化date值。下列修饰符可以被用在format字符串中： %M 月名字(January&#8230;&#8230;December)&nbsp; <br>%W 星期名字(Sunday&#8230;&#8230;Saturday)&nbsp; <br>%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。）&nbsp; <br>%Y 年, 数字, 4 位&nbsp; <br>%y 年, 数字, 2 位&nbsp; <br>%a 缩写的星期名字(Sun&#8230;&#8230;Sat)&nbsp; <br>%d 月份中的天数, 数字(00&#8230;&#8230;31)&nbsp; <br>%e 月份中的天数, 数字(0&#8230;&#8230;31)&nbsp; <br>%m 月, 数字(01&#8230;&#8230;12)&nbsp; <br>%c 月, 数字(1&#8230;&#8230;12)&nbsp; <br>%b 缩写的月份名字(Jan&#8230;&#8230;Dec)&nbsp; <br>%j 一年中的天数(001&#8230;&#8230;366)&nbsp; <br>%H 小时(00&#8230;&#8230;23)&nbsp; <br>%k 小时(0&#8230;&#8230;23)&nbsp; <br>%h 小时(01&#8230;&#8230;12)&nbsp; <br>%I 小时(01&#8230;&#8230;12)&nbsp; <br>%l 小时(1&#8230;&#8230;12)&nbsp; <br>%i 分钟, 数字(00&#8230;&#8230;59)&nbsp; <br>%r 时间,12 小时(hh:mm:ss [AP]M)&nbsp; <br>%T 时间,24 小时(hh:mm:ss)&nbsp; <br>%S 秒(00&#8230;&#8230;59)&nbsp; <br>%s 秒(00&#8230;&#8230;59)&nbsp; <br>%p AM或PM&nbsp; <br>%w 一个星期中的天数(0=Sunday &#8230;&#8230;6=Saturday ）&nbsp; <br>%U 星期(0&#8230;&#8230;52), 这里星期天是星期的第一天&nbsp; <br>%u 星期(0&#8230;&#8230;52), 这里星期一是星期的第一天&nbsp; <br>%% 一个文字&#8220;%&#8221;。&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">所有的其他字符不做解释被复制到结果中。&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">mysql&gt; select DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');&nbsp; <br>-&gt; 'Saturday October 1997'&nbsp; <br>mysql&gt; select DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');&nbsp; <br>-&gt; '22:23:00'&nbsp; <br>mysql&gt; select DATE_FORMAT('1997-10-04 22:23:00',&nbsp; <br>'%D %y %a %d %m %b %j');&nbsp; <br>-&gt; '4th 97 Sat 04 10 Oct 277'&nbsp; <br>mysql&gt; select DATE_FORMAT('1997-10-04 22:23:00',&nbsp; <br>'%H %k %I %r %T %S %w');&nbsp; <br>-&gt; '22 22 10 10:23:00 PM 22:23:00 00 6'&nbsp; <br>MySQL3.23中，在格式修饰符字符前需要%。在MySQL更早的版本中，%是可选的。&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">TIME_FORMAT(time,format)&nbsp; <br>这象上面的DATE_FORMAT()函数一样使用，但是format字符串只能包含处理小时、分钟和秒的那些格式修饰符。 <br>其他修饰符产生一个NULL值或0。&nbsp; <br>CURDATE()&nbsp; <br>　&nbsp; <br>CURRENT_DATE&nbsp; <br>以'YYYY-MM-DD'或YYYYMMDD格式返回今天日期值，取决于函数是在一个字符串还是数字上下文被使用。&nbsp; <br>mysql&gt; select CURDATE();&nbsp; <br>-&gt; '1997-12-15'&nbsp; <br>mysql&gt; select CURDATE() + 0;&nbsp; <br>-&gt; 19971215&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">CURTIME()&nbsp; <br>　&nbsp; <br>CURRENT_TIME&nbsp; <br>以'HH:MM:SS'或HHMMSS格式返回当前时间值，取决于函数是在一个字符串还是在数字的上下文被使用。&nbsp; <br>mysql&gt; select CURTIME();&nbsp; <br>-&gt; '23:50:26'&nbsp; <br>mysql&gt; select CURTIME() + 0;&nbsp; <br>-&gt; 235026&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">NOW()&nbsp; <br>　&nbsp; <br>SYSDATE()&nbsp; <br>　&nbsp; <br>CURRENT_TIMESTAMP&nbsp; <br>以'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式返回当前的日期和时间，取决于函数是在一个字符串还是在数字的 <br>上下文被使用。&nbsp; <br>mysql&gt; select NOW();&nbsp; <br>-&gt; '1997-12-15 23:50:26'&nbsp; <br>mysql&gt; select NOW() + 0;&nbsp; <br>-&gt; 19971215235026&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">UNIX_TIMESTAMP()&nbsp; <br>　&nbsp; <br>UNIX_TIMESTAMP(date)&nbsp; <br>如果没有参数调用，返回一个Unix时间戳记(从'1970-01-01 00:00:00'GMT开始的秒数)。如果UNIX_TIMESTAMP()用一 <br>个date参数被调用，它返回从'1970-01-01 00:00:00' GMT开始的秒数值。date可以是一个DATE字符串、一个DATETIME <br>字符串、一个TIMESTAMP或以YYMMDD或YYYYMMDD格式的本地时间的一个数字。&nbsp; <br>mysql&gt; select UNIX_TIMESTAMP();&nbsp; <br>-&gt; 882226357&nbsp; <br>mysql&gt; select UNIX_TIMESTAMP('1997-10-04 22:23:00');&nbsp; <br>-&gt; 875996580&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">当UNIX_TIMESTAMP被用于一个TIMESTAMP列，函数将直接接受值，没有隐含的&#8220;string-to-unix-timestamp&#8221;变换。&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">FROM_UNIXTIME(unix_timestamp)&nbsp; <br>以'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式返回unix_timestamp参数所表示的值，取决于函数是在一个字符串 <br>还是或数字上下文中被使用。&nbsp; <br>mysql&gt; select FROM_UNIXTIME(875996580);&nbsp; <br>-&gt; '1997-10-04 22:23:00'&nbsp; <br>mysql&gt; select FROM_UNIXTIME(875996580) + 0;&nbsp; <br>-&gt; 19971004222300&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">FROM_UNIXTIME(unix_timestamp,format)&nbsp; <br>返回表示 Unix 时间标记的一个字符串，根据format字符串格式化。format可以包含与DATE_FORMAT()函数列出的条 <br>目同样的修饰符。&nbsp; <br>mysql&gt; select FROM_UNIXTIME(UNIX_TIMESTAMP(),&nbsp; <br>'%Y %D %M %h:%i:%s %x');&nbsp; <br>-&gt; '1997 23rd December 03:43:30 x'&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">SEC_TO_TIME(seconds)&nbsp; <br>返回seconds参数，变换成小时、分钟和秒，值以'HH:MM:SS'或HHMMSS格式化，取决于函数是在一个字符串还是在数字 <br>上下文中被使用。&nbsp; <br>mysql&gt; select SEC_TO_TIME(2378);&nbsp; <br>-&gt; '00:39:38'&nbsp; <br>mysql&gt; select SEC_TO_TIME(2378) + 0;&nbsp; <br>-&gt; 3938&nbsp; </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">TIME_TO_SEC(time)&nbsp; <br>返回time参数，转换成秒。&nbsp; <br>mysql&gt; select TIME_TO_SEC('22:23:00');&nbsp; <br>-&gt; 80580&nbsp; <br>mysql&gt; select TIME_TO_SEC('00:39:38');&nbsp; <br>-&gt; 2378 </p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">&nbsp;</p>
<img src ="http://www.cppblog.com/niewenlong/aggbug/58900.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/niewenlong/" target="_blank">聂文龙</a> 2008-08-15 00:28 <a href="http://www.cppblog.com/niewenlong/archive/2008/08/15/58900.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何导出mysql 数据结构</title><link>http://www.cppblog.com/niewenlong/archive/2008/07/02/55119.html</link><dc:creator>聂文龙</dc:creator><author>聂文龙</author><pubDate>Wed, 02 Jul 2008 02:36:00 GMT</pubDate><guid>http://www.cppblog.com/niewenlong/archive/2008/07/02/55119.html</guid><wfw:comment>http://www.cppblog.com/niewenlong/comments/55119.html</wfw:comment><comments>http://www.cppblog.com/niewenlong/archive/2008/07/02/55119.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/niewenlong/comments/commentRss/55119.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/niewenlong/services/trackbacks/55119.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: mysqldump   -d   -uroot   -p   database>databaseStr.sql   <br>  -d   ：只要结构   <br>  -p   ：输入密码   <br>  -uroot   :   用户为root   <br>  database>databaseStr.sql   把database   数据库的结构生成为文件   databaseStr.sql&nbsp;&nbsp;<a href='http://www.cppblog.com/niewenlong/archive/2008/07/02/55119.html'>阅读全文</a><img src ="http://www.cppblog.com/niewenlong/aggbug/55119.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/niewenlong/" target="_blank">聂文龙</a> 2008-07-02 10:36 <a href="http://www.cppblog.com/niewenlong/archive/2008/07/02/55119.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>清除 空格.</title><link>http://www.cppblog.com/niewenlong/archive/2007/09/03/31450.html</link><dc:creator>聂文龙</dc:creator><author>聂文龙</author><pubDate>Mon, 03 Sep 2007 03:35:00 GMT</pubDate><guid>http://www.cppblog.com/niewenlong/archive/2007/09/03/31450.html</guid><wfw:comment>http://www.cppblog.com/niewenlong/comments/31450.html</wfw:comment><comments>http://www.cppblog.com/niewenlong/archive/2007/09/03/31450.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/niewenlong/comments/commentRss/31450.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/niewenlong/services/trackbacks/31450.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; update&nbsp; tablename set&nbsp;&nbsp; 字段名=ltrim(rtrim(字段名))</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Update tablename Set 字段名=Replace(字段名,' ','')&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;replace('字段,char(13)+char(10),'')</p>
<img src ="http://www.cppblog.com/niewenlong/aggbug/31450.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/niewenlong/" target="_blank">聂文龙</a> 2007-09-03 11:35 <a href="http://www.cppblog.com/niewenlong/archive/2007/09/03/31450.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>XP下安装SQL2000企业版本</title><link>http://www.cppblog.com/niewenlong/archive/2007/09/03/31443.html</link><dc:creator>聂文龙</dc:creator><author>聂文龙</author><pubDate>Mon, 03 Sep 2007 02:12:00 GMT</pubDate><guid>http://www.cppblog.com/niewenlong/archive/2007/09/03/31443.html</guid><wfw:comment>http://www.cppblog.com/niewenlong/comments/31443.html</wfw:comment><comments>http://www.cppblog.com/niewenlong/archive/2007/09/03/31443.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/niewenlong/comments/commentRss/31443.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/niewenlong/services/trackbacks/31443.html</trackback:ping><description><![CDATA[<br><span style="FONT-FAMILY: Comic Sans MS">SQL2000企业版本适用于WIN 2000系统，2003系统和XP一般装不了需要选用个人版，当然如果你在不清楚的前提下辛辛苦苦下载了企业版本却不能安装，是不是很失望呢？这里介绍一个XP下安装装SQL2000企业版本方法以供参考~<br><br>办法如下：<br><br>　　一．在SQL服务器的安装盘中找到MSDE这个目录，并且点击setup.exe安装它，过程简单直接下一步就ＯＫ了。<br><br>　　二. 重启系统WINDOWSXP,这下就可以看到SQL服务的图标出现了。<br><br>&nbsp; &nbsp; &nbsp;三. 再拿出SQL服务器版的安装光盘，直接安装客户端工具（这个不要多说吧？最简单的方法就是直接点击光盘根目录下的autorun.exe)<br><br>根据提示安装，自检过程中知道系统不是SERVER版，会提示只安装客户端工具。（哈哈，服务端我已有了）<br><br>&nbsp; &nbsp; &nbsp;四. 打开企业管理器，试用SA用户连一下看看，是不是发现SA用户登陆失败？因为你还没有与信任SQL SERVER连接相关联。还好这个只要对系统注册表稍加修改就可以啦：<br><br>&nbsp; &nbsp; &nbsp;在运行中输入regedit打开注册表编辑器，找到[HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\MSSQLSERVER\MSSQLSERVER]，这个项里面<br><br>有一个键值LoginMode，默认下，值是1，现在将值改为2，重启电脑。<br><br>&nbsp; &nbsp; 五. 再打开企业管理，再连接试试，是不是OK了！</span>
<img src ="http://www.cppblog.com/niewenlong/aggbug/31443.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/niewenlong/" target="_blank">聂文龙</a> 2007-09-03 10:12 <a href="http://www.cppblog.com/niewenlong/archive/2007/09/03/31443.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ascent wow</title><link>http://www.cppblog.com/niewenlong/archive/2007/08/23/30710.html</link><dc:creator>聂文龙</dc:creator><author>聂文龙</author><pubDate>Thu, 23 Aug 2007 14:55:00 GMT</pubDate><guid>http://www.cppblog.com/niewenlong/archive/2007/08/23/30710.html</guid><wfw:comment>http://www.cppblog.com/niewenlong/comments/30710.html</wfw:comment><comments>http://www.cppblog.com/niewenlong/archive/2007/08/23/30710.html#Feedback</comments><slash:comments>15</slash:comments><wfw:commentRss>http://www.cppblog.com/niewenlong/comments/commentRss/30710.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/niewenlong/services/trackbacks/30710.html</trackback:ping><description><![CDATA[update ascent.creature_names,onewowrc1.creature_names set <br>ascent.creature_names.creature_name = onewowrc1.creature_names.creature_name ,<br>ascent.creature_names.subname = onewowrc1.creature_names.subname <br>where ascent.creature_names.entry = onewowrc1.creature_names.entry <br><br><br><br>update ascent.gameobject_names,onewowrc1.gameobject_names set <br>ascent.gameobject_names.name = onewowrc1.gameobject_names.name <br>where ascent.gameobject_names.entry = onewowrc1.gameobject_names.entry <br><br><br><br><br>update creature_proto set maxlevel=minlevel, maxhealth =minhealth where entry BETWEEN 100000 and 100044 
<img src ="http://www.cppblog.com/niewenlong/aggbug/30710.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/niewenlong/" target="_blank">聂文龙</a> 2007-08-23 22:55 <a href="http://www.cppblog.com/niewenlong/archive/2007/08/23/30710.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql 编码</title><link>http://www.cppblog.com/niewenlong/archive/2007/08/23/30704.html</link><dc:creator>聂文龙</dc:creator><author>聂文龙</author><pubDate>Thu, 23 Aug 2007 14:15:00 GMT</pubDate><guid>http://www.cppblog.com/niewenlong/archive/2007/08/23/30704.html</guid><wfw:comment>http://www.cppblog.com/niewenlong/comments/30704.html</wfw:comment><comments>http://www.cppblog.com/niewenlong/archive/2007/08/23/30704.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/niewenlong/comments/commentRss/30704.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/niewenlong/services/trackbacks/30704.html</trackback:ping><description><![CDATA[1 在my.cf文件的[mysqld]段设置：<br>default-character-set=utf8<br><br>2 单独设置某个数据库：<br>alter <span class=noted id=note_temp _element_extended_="true">database testdb </span>character set utf8;<br><br>查看mysql支持的编码：<br>show character set;<br>
<img src ="http://www.cppblog.com/niewenlong/aggbug/30704.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/niewenlong/" target="_blank">聂文龙</a> 2007-08-23 22:15 <a href="http://www.cppblog.com/niewenlong/archive/2007/08/23/30704.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>update</title><link>http://www.cppblog.com/niewenlong/archive/2007/06/16/26423.html</link><dc:creator>聂文龙</dc:creator><author>聂文龙</author><pubDate>Fri, 15 Jun 2007 21:37:00 GMT</pubDate><guid>http://www.cppblog.com/niewenlong/archive/2007/06/16/26423.html</guid><wfw:comment>http://www.cppblog.com/niewenlong/comments/26423.html</wfw:comment><comments>http://www.cppblog.com/niewenlong/archive/2007/06/16/26423.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/niewenlong/comments/commentRss/26423.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/niewenlong/services/trackbacks/26423.html</trackback:ping><description><![CDATA[UPDATE b<br>SET [LEFT] = a.X1, [TOP] = a.Y1, [RIGHT] = a.X2, [bottom] = a.Y2<br>FROM ssiinfo b JOIN<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zonetriggers a ON a.zoneid = b.zoneid
<img src ="http://www.cppblog.com/niewenlong/aggbug/26423.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/niewenlong/" target="_blank">聂文龙</a> 2007-06-16 05:37 <a href="http://www.cppblog.com/niewenlong/archive/2007/06/16/26423.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Linux下安装和使用MySQL</title><link>http://www.cppblog.com/niewenlong/archive/2007/06/07/25770.html</link><dc:creator>聂文龙</dc:creator><author>聂文龙</author><pubDate>Thu, 07 Jun 2007 14:03:00 GMT</pubDate><guid>http://www.cppblog.com/niewenlong/archive/2007/06/07/25770.html</guid><wfw:comment>http://www.cppblog.com/niewenlong/comments/25770.html</wfw:comment><comments>http://www.cppblog.com/niewenlong/archive/2007/06/07/25770.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/niewenlong/comments/commentRss/25770.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/niewenlong/services/trackbacks/25770.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在Linux下安装和使用MySQL&nbsp;&nbsp;<a href='http://www.cppblog.com/niewenlong/archive/2007/06/07/25770.html'>阅读全文</a><img src ="http://www.cppblog.com/niewenlong/aggbug/25770.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/niewenlong/" target="_blank">聂文龙</a> 2007-06-07 22:03 <a href="http://www.cppblog.com/niewenlong/archive/2007/06/07/25770.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux mysql使用说明</title><link>http://www.cppblog.com/niewenlong/archive/2007/06/07/25764.html</link><dc:creator>聂文龙</dc:creator><author>聂文龙</author><pubDate>Thu, 07 Jun 2007 12:31:00 GMT</pubDate><guid>http://www.cppblog.com/niewenlong/archive/2007/06/07/25764.html</guid><wfw:comment>http://www.cppblog.com/niewenlong/comments/25764.html</wfw:comment><comments>http://www.cppblog.com/niewenlong/archive/2007/06/07/25764.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/niewenlong/comments/commentRss/25764.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/niewenlong/services/trackbacks/25764.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: linux mysql使用说明&nbsp;&nbsp;<a href='http://www.cppblog.com/niewenlong/archive/2007/06/07/25764.html'>阅读全文</a><img src ="http://www.cppblog.com/niewenlong/aggbug/25764.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/niewenlong/" target="_blank">聂文龙</a> 2007-06-07 20:31 <a href="http://www.cppblog.com/niewenlong/archive/2007/06/07/25764.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[mysql]ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)</title><link>http://www.cppblog.com/niewenlong/archive/2007/06/07/25763.html</link><dc:creator>聂文龙</dc:creator><author>聂文龙</author><pubDate>Thu, 07 Jun 2007 12:27:00 GMT</pubDate><guid>http://www.cppblog.com/niewenlong/archive/2007/06/07/25763.html</guid><wfw:comment>http://www.cppblog.com/niewenlong/comments/25763.html</wfw:comment><comments>http://www.cppblog.com/niewenlong/archive/2007/06/07/25763.html#Feedback</comments><slash:comments>11</slash:comments><wfw:commentRss>http://www.cppblog.com/niewenlong/comments/commentRss/25763.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/niewenlong/services/trackbacks/25763.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: [mysql]ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)<br><br>没启动mysql的守护进程，执行service mysqld start就行了&nbsp;&nbsp;<a href='http://www.cppblog.com/niewenlong/archive/2007/06/07/25763.html'>阅读全文</a><img src ="http://www.cppblog.com/niewenlong/aggbug/25763.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/niewenlong/" target="_blank">聂文龙</a> 2007-06-07 20:27 <a href="http://www.cppblog.com/niewenlong/archive/2007/06/07/25763.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQLite 数据库加密的一种解决方案</title><link>http://www.cppblog.com/niewenlong/archive/2007/06/01/25263.html</link><dc:creator>聂文龙</dc:creator><author>聂文龙</author><pubDate>Fri, 01 Jun 2007 03:30:00 GMT</pubDate><guid>http://www.cppblog.com/niewenlong/archive/2007/06/01/25263.html</guid><wfw:comment>http://www.cppblog.com/niewenlong/comments/25263.html</wfw:comment><comments>http://www.cppblog.com/niewenlong/archive/2007/06/01/25263.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/niewenlong/comments/commentRss/25263.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/niewenlong/services/trackbacks/25263.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 其实SQLite的两个加密函数使用起来非常的简单，下面分情况说明：<br><br>①     给一个未加密的数据库添加密码：如果想要添加密码，则可以在打开数据库文件之后，关闭数据库文件之前的任何时刻调用sqlite3_key函数即可，该函数有三个参数，其中第一个参数为数据库对象，第二个参数是要设定的密码，第三个是密码的长度。例如：sqlite3_key(db,"1q2w3e4r",8);        //给数据库设定密码1q2w3e4r<br><br>②     读取一个加密数据库中的数据：完成这个任务依然十分简单，你只需要在打开数据库之后，再次调用一下sqlite3_key函数即可，例如，但数据库密码是123456时，你只需要在代码中加入sqlite3_key(db,"123456",6);<br><br>①     更改数据库密码：首先你需要使用当前的密码正确的打开数据库，之后你可以调用sqlite3_rekey(db,"112233",6) 来更改数据库密码。<br><br>②     删除密码：也就是把数据库恢复到明文状态。这时你仍然只需要调用sqlite3_&nbsp;&nbsp;<a href='http://www.cppblog.com/niewenlong/archive/2007/06/01/25263.html'>阅读全文</a><img src ="http://www.cppblog.com/niewenlong/aggbug/25263.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/niewenlong/" target="_blank">聂文龙</a> 2007-06-01 11:30 <a href="http://www.cppblog.com/niewenlong/archive/2007/06/01/25263.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>为SQLite数据库添加加密功能</title><link>http://www.cppblog.com/niewenlong/archive/2007/06/01/25261.html</link><dc:creator>聂文龙</dc:creator><author>聂文龙</author><pubDate>Fri, 01 Jun 2007 03:27:00 GMT</pubDate><guid>http://www.cppblog.com/niewenlong/archive/2007/06/01/25261.html</guid><wfw:comment>http://www.cppblog.com/niewenlong/comments/25261.html</wfw:comment><comments>http://www.cppblog.com/niewenlong/archive/2007/06/01/25261.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cppblog.com/niewenlong/comments/commentRss/25261.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/niewenlong/services/trackbacks/25261.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:     SQLite是一个很好用的嵌入式数据库。可惜美中不足的是SQLite的免费版本不具备加密功能。曾经在网上看到一个用WinCrypt实现加密功能的版本，但我不喜欢太依赖于Windows平台。这几日有时间，自己就用XXTEA算法在 SQLite3.3.7版本的基础上实现了加密功能。选择XXTEA主要是因为这个算法速度很快，对性能造成的影响相对较小。顺便修改了网上流传的XXTEA代码的一处内存越界的BUG。<br>    用SQLite的一般是单机版软件比较多，有加密需求的一定不少，所以现在放出源代码与大家分享。代码的工程文件是用VC2005，如果用其它编译器，编译的时候不要忘记加上SQLITE_HAS_CODEC宏。代码只是粗略测试过，不保证100％无BUG和逻辑错误。 &nbsp;&nbsp;<a href='http://www.cppblog.com/niewenlong/archive/2007/06/01/25261.html'>阅读全文</a><img src ="http://www.cppblog.com/niewenlong/aggbug/25261.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/niewenlong/" target="_blank">聂文龙</a> 2007-06-01 11:27 <a href="http://www.cppblog.com/niewenlong/archive/2007/06/01/25261.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Some other's blogs</title><link>http://www.cppblog.com/niewenlong/archive/2007/06/01/25257.html</link><dc:creator>聂文龙</dc:creator><author>聂文龙</author><pubDate>Fri, 01 Jun 2007 02:53:00 GMT</pubDate><guid>http://www.cppblog.com/niewenlong/archive/2007/06/01/25257.html</guid><wfw:comment>http://www.cppblog.com/niewenlong/comments/25257.html</wfw:comment><comments>http://www.cppblog.com/niewenlong/archive/2007/06/01/25257.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/niewenlong/comments/commentRss/25257.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/niewenlong/services/trackbacks/25257.html</trackback:ping><description><![CDATA[<a href="http://blog.csdn.net/zieckey/category/198148.aspx">http://blog.csdn.net/zieckey/category/198148.aspx</a>
<img src ="http://www.cppblog.com/niewenlong/aggbug/25257.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/niewenlong/" target="_blank">聂文龙</a> 2007-06-01 10:53 <a href="http://www.cppblog.com/niewenlong/archive/2007/06/01/25257.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Windows下编译sqlite3生成动态链接库并使用之</title><link>http://www.cppblog.com/niewenlong/archive/2007/06/01/25256.html</link><dc:creator>聂文龙</dc:creator><author>聂文龙</author><pubDate>Fri, 01 Jun 2007 02:51:00 GMT</pubDate><guid>http://www.cppblog.com/niewenlong/archive/2007/06/01/25256.html</guid><wfw:comment>http://www.cppblog.com/niewenlong/comments/25256.html</wfw:comment><comments>http://www.cppblog.com/niewenlong/archive/2007/06/01/25256.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/niewenlong/comments/commentRss/25256.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/niewenlong/services/trackbacks/25256.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1). 打开VC新建一个“Win32 Dynamic-Link Library”工程，命名为:sqlite3<br>2). 在接下来的对话框中选择"An empty DLL project",点 FINISH->OK<br>3). 将源码中所有的 *.c *.h *.def 复制到工程文件夹下<br>4). 在工程的Source File中添加你下载到的SQLite源文件中所有*.c文件，<br>注意这里不要添加shell.c和tclsqlite.c这两个文件。<br>5). 将 SQLite 源文件中的 sqlite3.def 文件添加到在工程的Source File中<br>6). 在Header File中添加你下载到的SQLite源文件中所有*.h文件，<br>7). 开始编译,Build(F7)一下<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/niewenlong/archive/2007/06/01/25256.html'>阅读全文</a><img src ="http://www.cppblog.com/niewenlong/aggbug/25256.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/niewenlong/" target="_blank">聂文龙</a> 2007-06-01 10:51 <a href="http://www.cppblog.com/niewenlong/archive/2007/06/01/25256.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>