<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[shell操作mysql,Shell操作MySQL并导出文本文件]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Mon, 07 Dec 2009 05:18:10 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	Shell是每一个UNIX系统都有的工具,他功能强大,有很多系统启动程序是用Shell来写的.<br/><br/>在这里,我们利用Shell程序来操作MySQL数据库.<br/>约定: MySQL管理用户为root, 密码为secret.<br/><br/><div class="code"><br/># vi mysql_opt.sh<br/><br/>#!/bin/sh<br/>#</div><br/># 调用方法: mysql_opt $db_name "SQL语句"<br/><br/><br/><div class="code">sql_user=root<br/>sql_pass=secret<br/>sql_opt=&quot;-u$sql_user -p$sql_pass -s&quot;<br/><br/>mysql_opt() &#123;<br/>&nbsp;&nbsp;db_name=$1<br/>&nbsp;&nbsp;sql_lan=$2<br/>&nbsp;&nbsp;mysql $sql_opt &lt;&lt; EOF<br/>&nbsp;&nbsp;&nbsp;&nbsp;USE $db_name;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$sql_lan;<br/>&nbsp;&nbsp;&nbsp;&nbsp;QUIT<br/>EOF<br/>&#125;<br/><br/>#<br/># The file mysql_opt.sh ends here!</div><br/><br/>这样,就能通过调用mysql_opt函数来对MySQL数据库进行操作.<br/>例: 要查找数据库test_db中test_table表的所有数据<br/><br/><br/><div class="code"># vi select.sh<br/><br/>#!/bin/sh<br/>#<br/><br/>. ./mysql_opt.sh<br/><br/>echo &quot;Query...&quot;<br/>data=`mysql_opt test_db &quot;SELECT * FROM test_table WHERE 1&quot;`<br/>echo $data<br/>echo &quot;Done!&quot;<br/><br/>#<br/># The file select.sh ends here!<br/><br/>&#91;root@kevin bin&#93;# ./mysql -u root -p111111 -e &quot;use mysql;select host,user,password from user&quot;; <br/>+-----------+------+-------------------------------------------+<br/>&amp;#124; host&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;#124; user &amp;#124; password&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;&amp;#124;<br/>+-----------+------+-------------------------------------------+<br/>&amp;#124; localhost &amp;#124; root &amp;#124; *FD571203974BA9AFE270FE62151AE967ECA5E0AA &amp;#124;<br/>&amp;#124; kevin.com &amp;#124; root &amp;#124;&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; &amp;#124;<br/>&amp;#124; 127.0.0.1 &amp;#124; root &amp;#124;&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; &amp;#124;<br/>&amp;#124; localhost &amp;#124;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;#124;&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; &amp;#124;<br/>&amp;#124; kevin.com &amp;#124;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;#124;&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; &amp;#124;<br/>+-----------+------+-------------------------------------------+<br/><br/>****************************************<br/><br/><br/>#!/bin/bash<br/><br/>/usr/local/mysql-5.1.32/bin/mysql -u root -p111111 -e &quot;use mysql;select host,user,password from user&quot;; <br/><br/>exit 0;<br/><br/>****************************************</div><br/><br/>如果需要导出mysql的记录到文本文件:<br/><br/><br/><div class="code"> /usr/local/mysql-5.1.32/bin/mysql -u root -p111111 -e &quot;use mysql;select host,user,password from user into outfile &#039;/home/mysql/aa.txt&#039;;&quot;<br/>mysql -u $user -p$password -e &quot;create database test;&quot;</div><br/><br/>我知道的有如下两种方式可以在shell中访问操作mysql数据库<br/>1. mysql -uusername -ppasswd -e "command;command"<br/><br/><div class="code">&#91;root@localhost ~&#93;# mysql -uroot -p123456 -e &quot;select user,host from mysql.user&quot;<br/>+------+-----------------------+<br/>&amp;#124; user &amp;#124; host&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;#124;<br/>+------+-----------------------+<br/>&amp;#124; root &amp;#124; %&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp;#124;<br/>&amp;#124; root &amp;#124; 127.0.0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp;#124;<br/>&amp;#124; php&nbsp;&nbsp;&amp;#124; localhost&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp;#124;<br/>&amp;#124; root &amp;#124; localhost&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp;#124;<br/>&amp;#124; root &amp;#124; localhost.localdomain &amp;#124;<br/>+------+-----------------------+</div>请看下面这段文字：（引自mysql参考手册）<br/>对mysql偶尔有用的另一个选项是-e或--execute选项，可用来将SQL语句传递给服务器。该语句必须<br/><br/>用引号引起来(单引号或双引号)。(然而，如果想要在查询中将值引起来，则对于查询应使用双引号<br/><br/>，查询中引用的值应使用单引号）。当使用该选项时，语句被执行，然后mysql立即退出命令外壳。<br/><br/>例如，你可以用下面的命令获得用户账户列表：<br/><br/>shell> mysql -u root -p -e "SELECT User, Host FROM User" mysql<br/><br/>请注意mysql数据库名作为一个独立的参量传递。然而，相同的查询可能已经使用mysql -u root -p<br/><br/>-e "SELECT User，Host FROM mysql.User"从外壳中执行。<br/><br/>可以按这种方式传递多个SQL语句，用分号隔开：<br/><br/><br/><div class="code">shell&gt; mysql -u root -p --execute=&quot;SELECT Name FROM Country WHERE Name LIKE<br/><br/>&#039;AU%&#039;;SELECT COUNT(*) FROM City&quot; world</div><br/><br/>2. 如果sql语句比较多，可使用如下方式：<br/><br/><div class="code">&#91;root@localhost ~&#93;# mysql -uroot -p123456 &lt;&lt; EOF<br/>&gt; use mysql;<br/>&gt; select user,host from user;<br/>&gt; EOF<br/>user&nbsp;&nbsp;&nbsp;&nbsp;host<br/>root&nbsp;&nbsp;&nbsp;&nbsp;%<br/>root&nbsp;&nbsp;&nbsp;&nbsp;127.0.0.1<br/>php&nbsp;&nbsp;&nbsp;&nbsp; localhost<br/>root&nbsp;&nbsp;&nbsp;&nbsp;localhost<br/>root&nbsp;&nbsp;&nbsp;&nbsp;localhost.localdomain</div><br/><br/>从查询结果中可以看出，两者的输出结果格式不一样，前一种方式保留了mysql的输出格式。<br/>另外，与此篇文章有关的shell 重定向知识，可以查阅ABS guide第16章节“I/O重定向”和第17章节“Here Documents”<br/><br/>重定向示意:<br/><br/><div class="code">mysql -uroot -p123qwe &lt;&quot;/opt/sqlinfo.sql&quot; &gt;&quot;a.txt&quot;</div><br/><br/>自动登录mysql（root:root,passwd:123456),查询test库，test1表里的user=aa的记录.<br/>#!/bin/sh<br/>mysql -uroot -p123456 <<EOF<br/>use test;<br/>select * from testaa while a=10000;&nbsp;&nbsp;&nbsp;&nbsp; ###1000 not usr single quote mark,because a is int type,only char type need single quote mark.<br/>EOF
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] shell操作mysql,Shell操作MySQL并导出文本文件]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>