﻿<?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>BlogJava-李春生-文章分类-mysql</title><link>http://www.blogjava.net/lcs868/category/47664.html</link><description>李春生的博客</description><language>zh-cn</language><lastBuildDate>Fri, 21 Jan 2011 20:41:26 GMT</lastBuildDate><pubDate>Fri, 21 Jan 2011 20:41:26 GMT</pubDate><ttl>60</ttl><item><title>mysql 中sql 语句查询今天、昨天、7天、近30天、本月、上一月 数据</title><link>http://www.blogjava.net/lcs868/articles/343319.html</link><dc:creator>李春生</dc:creator><author>李春生</author><pubDate>Fri, 21 Jan 2011 05:40:00 GMT</pubDate><guid>http://www.blogjava.net/lcs868/articles/343319.html</guid><wfw:comment>http://www.blogjava.net/lcs868/comments/343319.html</wfw:comment><comments>http://www.blogjava.net/lcs868/articles/343319.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lcs868/comments/commentRss/343319.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lcs868/services/trackbacks/343319.html</trackback:ping><description><![CDATA[<div style="width: 100%; text-align: left"><font style="font-weight: normal; font-size: 14px; color: #5f5f5f; line-height: 24px">今天<br />
<br />
select * from 表名 where to_days(时间字段名) = to_days(now());<br />
<br />
昨天<br />
<br />
SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) &lt;= 1<br />
<br />
7天<br />
<br />
SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) &lt;= date(时间字段名)<br />
<br />
近30天<br />
<br />
SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 30 DAY) &lt;= date(时间字段名)<br />
<br />
本月<br />
<br />
SELECT * FROM 表名 WHERE DATE_FORMAT( 时间字段名, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )<br />
<br />
上一月<br />
<br />
SELECT * FROM 表名 WHERE PERIOD_DIFF( date_format( now( ) , '%Y%m' ) , date_format( 时间字段名, '%Y%m' ) ) =1<br />
</font></div>
<img src ="http://www.blogjava.net/lcs868/aggbug/343319.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lcs868/" target="_blank">李春生</a> 2011-01-21 13:40 <a href="http://www.blogjava.net/lcs868/articles/343319.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql date_format　按不同时间单位进行分组统计　</title><link>http://www.blogjava.net/lcs868/articles/343320.html</link><dc:creator>李春生</dc:creator><author>李春生</author><pubDate>Fri, 21 Jan 2011 05:40:00 GMT</pubDate><guid>http://www.blogjava.net/lcs868/articles/343320.html</guid><wfw:comment>http://www.blogjava.net/lcs868/comments/343320.html</wfw:comment><comments>http://www.blogjava.net/lcs868/articles/343320.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lcs868/comments/commentRss/343320.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lcs868/services/trackbacks/343320.html</trackback:ping><description><![CDATA[DATE_FORMAT(date,format)&nbsp;&nbsp;&nbsp; <br />
根据format字符串格式化date值。下列修饰符可以被用在format字符串中：&nbsp;&nbsp;&nbsp; <br />
%M&nbsp;&nbsp;&nbsp;&nbsp; 月名字(January&#8230;&#8230;December)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
%W&nbsp;&nbsp;&nbsp;&nbsp; 星期名字(Sunday&#8230;&#8230;Saturday)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
%D&nbsp;&nbsp;&nbsp;&nbsp; 有英语前缀的月份的日期(1st,&nbsp;&nbsp; 2nd,&nbsp;&nbsp; 3rd,&nbsp;&nbsp; 等等。）&nbsp;&nbsp;&nbsp; <br />
%Y&nbsp;&nbsp;&nbsp;&nbsp; 年,&nbsp;&nbsp; 数字,&nbsp;&nbsp; 4&nbsp;&nbsp; 位&nbsp;&nbsp;&nbsp; <br />
%y&nbsp;&nbsp;&nbsp;&nbsp; 年,&nbsp;&nbsp; 数字,&nbsp;&nbsp; 2&nbsp;&nbsp; 位&nbsp;&nbsp;&nbsp; <br />
%a&nbsp;&nbsp;&nbsp;&nbsp; 缩写的星期名字(Sun&#8230;&#8230;Sat)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
%d&nbsp;&nbsp;&nbsp;&nbsp; 月份中的天数,&nbsp;&nbsp; 数字(00&#8230;&#8230;31)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
%e&nbsp;&nbsp;&nbsp;&nbsp; 月份中的天数,&nbsp;&nbsp; 数字(0&#8230;&#8230;31)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
%m&nbsp;&nbsp;&nbsp;&nbsp; 月,&nbsp;&nbsp; 数字(01&#8230;&#8230;12)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
%c&nbsp;&nbsp;&nbsp;&nbsp; 月,&nbsp;&nbsp; 数字(1&#8230;&#8230;12)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
%b&nbsp;&nbsp;&nbsp;&nbsp; 缩写的月份名字(Jan&#8230;&#8230;Dec)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
%j&nbsp;&nbsp;&nbsp;&nbsp; 一年中的天数(001&#8230;&#8230;366)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
%H&nbsp;&nbsp;&nbsp;&nbsp; 小时(00&#8230;&#8230;23)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
%k&nbsp;&nbsp;&nbsp;&nbsp; 小时(0&#8230;&#8230;23)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
%h&nbsp;&nbsp;&nbsp;&nbsp; 小时(01&#8230;&#8230;12)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
%I&nbsp;&nbsp;&nbsp;&nbsp; 小时(01&#8230;&#8230;12)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
%l&nbsp;&nbsp;&nbsp;&nbsp; 小时(1&#8230;&#8230;12)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
%i&nbsp;&nbsp;&nbsp;&nbsp; 分钟,&nbsp;&nbsp; 数字(00&#8230;&#8230;59)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
%r&nbsp;&nbsp;&nbsp;&nbsp; 时间,12&nbsp;&nbsp; 小时(hh:mm:ss&nbsp;&nbsp; [AP]M)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
%T&nbsp;&nbsp;&nbsp;&nbsp; 时间,24&nbsp;&nbsp; 小时(hh:mm:ss)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
%S&nbsp;&nbsp;&nbsp;&nbsp; 秒(00&#8230;&#8230;59)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
%s&nbsp;&nbsp;&nbsp;&nbsp; 秒(00&#8230;&#8230;59)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
%p&nbsp;&nbsp;&nbsp;&nbsp; AM或PM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
%w&nbsp;&nbsp;&nbsp;&nbsp; 一个星期中的天数(0=Sunday&nbsp;&nbsp; &#8230;&#8230;6=Saturday&nbsp;&nbsp; ）&nbsp;&nbsp;&nbsp; <br />
%U&nbsp;&nbsp;&nbsp;&nbsp; 星期(0&#8230;&#8230;52),&nbsp;&nbsp; 这里星期天是星期的第一天&nbsp;&nbsp;&nbsp; <br />
%u&nbsp;&nbsp;&nbsp;&nbsp; 星期(0&#8230;&#8230;52),&nbsp;&nbsp; 这里星期一是星期的第一天&nbsp;&nbsp;&nbsp; <br />
%%&nbsp;&nbsp;&nbsp;&nbsp; 一个文字&#8220;%&#8221;。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp; <br />
所有的其他字符不做解释被复制到结果中。&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp; <br />
mysql&gt;&nbsp;&nbsp; select&nbsp;&nbsp; DATE_FORMAT('1997-10-04&nbsp;&nbsp; 22:23:00',&nbsp;&nbsp; '%W&nbsp;&nbsp; %M&nbsp;&nbsp; %Y'); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt;&nbsp;&nbsp; 'Saturday&nbsp;&nbsp; October&nbsp;&nbsp; 1997' <br />
mysql&gt;&nbsp;&nbsp; select&nbsp;&nbsp; DATE_FORMAT('1997-10-04&nbsp;&nbsp; 22:23:00',&nbsp;&nbsp; '%H:%i:%s'); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt;&nbsp;&nbsp; '22:23:00' <br />
mysql&gt;&nbsp;&nbsp; select&nbsp;&nbsp; DATE_FORMAT('1997-10-04&nbsp;&nbsp; 22:23:00', <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;&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; '%D&nbsp;&nbsp; %y&nbsp;&nbsp; %a&nbsp;&nbsp; %d&nbsp;&nbsp; %m&nbsp;&nbsp; %b&nbsp;&nbsp; %j'); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt;&nbsp;&nbsp; '4th&nbsp;&nbsp; 97&nbsp;&nbsp; Sat&nbsp;&nbsp; 04&nbsp;&nbsp; 10&nbsp;&nbsp; Oct&nbsp;&nbsp; 277' <br />
mysql&gt;&nbsp;&nbsp; select&nbsp;&nbsp; DATE_FORMAT('1997-10-04&nbsp;&nbsp; 22:23:00', <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;&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; '%H&nbsp;&nbsp; %k&nbsp;&nbsp; %I&nbsp;&nbsp; %r&nbsp;&nbsp; %T&nbsp;&nbsp; %S&nbsp;&nbsp; %w'); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt;&nbsp;&nbsp; '22&nbsp;&nbsp; 22&nbsp;&nbsp; 10&nbsp;&nbsp; 10:23:00&nbsp;&nbsp; PM&nbsp;&nbsp; 22:23:00&nbsp;&nbsp; 00&nbsp;&nbsp; 6' <br />
<br />
<br />
, '%Y %m'<br />
<img src ="http://www.blogjava.net/lcs868/aggbug/343320.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lcs868/" target="_blank">李春生</a> 2011-01-21 13:40 <a href="http://www.blogjava.net/lcs868/articles/343320.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql常用命令</title><link>http://www.blogjava.net/lcs868/articles/343306.html</link><dc:creator>李春生</dc:creator><author>李春生</author><pubDate>Fri, 21 Jan 2011 03:17:00 GMT</pubDate><guid>http://www.blogjava.net/lcs868/articles/343306.html</guid><wfw:comment>http://www.blogjava.net/lcs868/comments/343306.html</wfw:comment><comments>http://www.blogjava.net/lcs868/articles/343306.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lcs868/comments/commentRss/343306.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lcs868/services/trackbacks/343306.html</trackback:ping><description><![CDATA[<p>1.Linux系统下启动MySQL的命令：</p>
<p>mysqladmin start</p>
<p>/ect/init.d/mysql start (前面为mysql的安装路径)</p>
<p>2.linux下重启mysql的命令：</p>
<p>mysqladmin restart</p>
<p>/ect/init.d/mysql restart (前面为mysql的安装路径) </p>
<p>3.linux下关闭mysql的命令：</p>
<p>mysqladmin shutdown</p>
<p>/ect/init.d/mysql shutdown (前面为mysql的安装路径)</p>
<p>4.连接本机上的mysql：</p>
<p>进入目录mysql\bin，再键入命令mysql -uroot -p， 回车后提示输入密码。</p>
<p>退出mysql命令：exit（回车）</p>
<p>5.修改mysql密码：</p>
<p>mysqladmin -u用户名 -p旧密码 password 新密码</p>
<p>或进入mysql命令行SET PASSWORD FOR root=PASSWORD("root");</p>
<p>6.增加新用户。（注意：mysql环境中的命令后面都带一个分号作为命令结束符）</p>
<p>grant select on 数据库.* to 用户名@登录主机 identified by "密码"</p>
<p>如增加一个用户test密码为123，让他可以在任何主机上登录，并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql，然后键入以下命令：</p>
<p>grant select,insert,update,delete on *.* to " Identified by "123";</p>
<p>二、有关MySQL数据库方面的操作</p>
<p>必须首先登录到mysql中，有关操作都是在mysql的提示符下进行，而且每个命令以分号结束</p>
<p>1、显示数据库列表。</p>
<p>show databases;</p>
<p>2、显示库中的数据表：</p>
<p>use mysql； ／／打开库</p>
<p>show tables;</p>
<p>3、显示数据表的结构：</p>
<p>describe 表名;</p>
<p>4、建库：</p>
<p>create database 库名;</p>
<p>5、建表：</p>
<p>use 库名；</p>
<p>create table 表名(字段设定列表)；</p>
<p>6、删库和删表:</p>
<p>drop database 库名;</p>
<p>drop table 表名；</p>
<p>7、将表中记录清空：</p>
<p>delete from 表名;</p>
<p>8、显示表中的记录：</p>
<p>select * from 表名;</p>
<p>9、编码的修改</p>
<p>如果要改变整个mysql的编码格式：</p>
<p>启动mysql的时候，mysqld_safe命令行加入</p>
<p>--default-character-set=gbk</p>
<p>如果要改变某个库的编码格式：在mysql提示符后输入命令</p>
<p>alter database db_name default character set gbk; </p>
<p>三、数据的导入导出</p>
<p>1、文本数据转到数据库中</p>
<p>文本数据应符合的格式：字段数据之间用tab键隔开，null值用来代替。例：</p>
<p>1 name duty 2006-11-23</p>
<p>数据传入命令 load data local infile "文件名" into table 表名;</p>
<p>2、导出数据库和表 </p>
<p>mysqldump --opt news &gt; news.sql（将数据库news中的所有表备份到news.sql文件，news.sql是一个文本文件，文件名任取。）</p>
<p>mysqldump --opt news author article &gt; author.article.sql（将数据库news中的author表和article表备份到author.article.sql文件， author.article.sql是一个文本文件，文件名任取。）</p>
<p>mysqldump --databases db1 db2 &gt; news.sql（将数据库dbl和db2备份到news.sql文件，news.sql是一个文本文件，文件名任取。）</p>
<p>mysqldump -h host -u user -p pass --databases dbname &gt; file.dump</p>
<p>就是把host上的以名字user，口令pass的数据库dbname导入到文件file.dump中</p>
<p>mysqldump --all-databases &gt; all-databases.sql（将所有数据库备份到all-databases.sql文件，all-databases.sql是一个文本文件，文件名任取。）</p>
<p>3、导入数据</p>
<p>mysql &lt; all-databases.sql（导入数据库）</p>
<p>mysql&gt;source news.sql;（在mysql命令下执行，可导入表）</p>
<p>一、连接MySQL</p>
<p>格式： mysql -h主机地址 -u用户名 －p用户密码</p>
<p>1、例1：连接到本机上的MYSQL。</p>
<p>首先在打开DOS窗口，然后进入目录 mysqlbin，再键入命令mysql -uroot -p，回车后提示你输密码，如果刚安装好MYSQL，超级用户root是没有密码的，故直接回车即可进入到MYSQL中了，MYSQL的提示符是： mysql&gt;。</p>
<p>2、例2：连接到远程主机上的MYSQL。假设远程主机的IP为：110.110.110.110，用户名为root,密码为abcd123。则键入以下命令：</p>
<p>mysql -h110.110.110.110 -uroot -pabcd123</p>
<p>（注:u与root可以不用加空格，其它也一样）</p>
<p>3、退出MYSQL命令： exit （回车）。</p>
<p>二、修改密码</p>
<p>格式：mysqladmin -u用户名 -p旧密码 password 新密码</p>
<p>1、例1：给root加个密码ab12。首先在DOS下进入目录mysqlbin，然后键入以下命令：</p>
<p>mysqladmin -uroot -password ab12</p>
<p>注：因为开始时root没有密码，所以-p旧密码一项就可以省略了。</p>
<p>2、例2：再将root的密码改为djg345。</p>
<p>mysqladmin -uroot -pab12 password djg345</p>
<p>三、增加新用户。（注意：和上面不同，下面的因为是MySQL环境中的命令，所以后面都带一个分号作为命令结束符）</p>
<p>格式：grant select on 数据库.* to 用户名@登录主机 identified by \"密码\"</p>
<p>例1、增加一个用户test1密码为abc，让他可以在任何主机上登录，并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MySQL，然后键入以下命令：</p>
<p>grant select,insert,update,</p>
<p>delete on *.* to test1@\"%\" Identified by \"abc\";</p>
<p>但例1增加的用户是十分危险的，你想如某个人知道test1的密码，那么他就可以在internet上的任何一台电脑上登录你的MySQL数据库并对你的数据可以为所欲为了，解决办法见例2。</p>
<p>例2、增加一个用户test2密码为abc,让他只可以在localhost上登录，并可以对数据库mydb进行查询、插入、修改、删除的操作（localhost指本地主机，即MySQL数据库所在的那台主机），这样用户即使用知道test2的密码，他也无法从internet上直接访问数据库，只能通过MySQL主机上的web页来访问。</p>
<p>grant select,insert,update,</p>
<p>delete on mydb.* to test2@localhost identified by \"abc\"; </p>
<p>如果你不想test2有密码，可以再打一个命令将密码消掉。</p>
<p>grant select,insert,update,delete on mydb</p>
<p>.* to test2@localhost identified by \"\";</p>
<p>在上面讲了登录、增加用户、密码更改等问题。下面我们来看看MySQL中有关数据库方面的操作。注意：你必须首先登录到MySQL中，以下操作都是在MySQL的提示符下进行的，而且每个命令以分号结束。</p>
<p>一、操作技巧</p>
<p>1、如果你打命令时，回车后发现忘记加分号，你无须重打一遍命令，只要打个分号回车就可以了。也就是说你可以把一个完整的命令分成几行来打，完后用分号作结束标志就完成。</p>
<p>2、你可以使用光标上下键调出以前的命令。但以前我用过的一个MySQL旧版本不支持。我现在用的是mysql-3.23.27-beta-win。</p>
<p>二、显示命令</p>
<p>1、显示数据库列表：</p>
<p>show databases;</p>
<p>刚开始时才两个数据库：mysql和test。MySQL库很重要它里面有MYSQL的系统信息，我们改密码和新增用户，实际上就是用这个库进行操作。</p>
<p>2、显示库中的数据表：</p>
<p>use mysql； ／／打开库，学过FOXBASE的一定不会陌生吧</p>
<p>show tables;</p>
<p>3、显示数据表的结构：</p>
<p>describe 表名;</p>
<p>4、建库：</p>
<p>create database 库名;</p>
<p>5、建表：</p>
<p>use 库名；</p>
<p>create table 表名 (字段设定列表)；</p>
<p>6、删库和删表:</p>
<p>drop database 库名;</p>
<p>drop table 表名；</p>
<p>7、将表中记录清空：</p>
<p>delete from 表名;</p>
<p>8、显示表中的记录：</p>
<p>select * from 表名;</p>
<p>三、一个建库和建表以及插入数据的实例</p>
<p>drop database if exists school; //如果存在SCHOOL则删除</p>
<p>create database school; //建立库SCHOOL</p>
<p>use school; //打开库SCHOOL</p>
<p>create table teacher //建立表TEACHER</p>
<p>(</p>
<p>id int(3) auto_increment not null primary key,</p>
<p>name char(10) not null,</p>
<p>address varchar(50) default &#8217;深圳&#8217;,</p>
<p>year date</p>
<p>); //建表结束</p>
<p>//以下为插入字段</p>
<p>insert into teacher values(&#8217;&#8217;,&#8217;glchengang&#8217;,&#8217;深圳一中&#8217;,&#8217;1976-10-10&#8217;);</p>
<p>insert into teacher values(&#8217;&#8217;,&#8217;jack&#8217;,&#8217;深圳一中&#8217;,&#8217;1975-12-23&#8217;);</p>
<p>注：在建表中（1）将ID设为长度为3的数字字段:int(3)并让它每个记录自动加一:auto_increment并不能为空:not null而且让他成为主字段primary key（2）将NAME设为长度为10的字符字段（3）将ADDRESS设为长度50的字符字段，而且缺省值为深圳。varchar和char有什么区别呢，只有等以后的文章再说了。（4）将YEAR设为日期字段。</p>
<p>如果你在MySQL提示符键入上面的命令也可以，但不方便调试。你可以将以上命令原样写入一个文本文件中假设为school.sql，然后复制到c:\\下，并在DOS状态进入目录\\mysql\\bin，然后键入以下命令：</p>
<p>mysql -uroot -p密码 &lt; c:\\school.sql</p>
<p>如果成功，空出一行无任何显示；如有错误，会有提示。（以上命令已经调试，你只要将//的注释去掉即可使用）。</p>
<p>四、将文本数据转到数据库中</p>
<p>1、文本数据应符合的格式：字段数据之间用tab键隔开，null值用\\n来代替。</p>
<p>例：</p>
<p>3 rose 深圳二中 1976-10-10</p>
<p>4 mike 深圳一中 1975-12-23</p>
<p>2、数据传入命令 load data local infile \"文件名\" into table 表名。</p>
<p>注意：你最好将文件复制到\\mysql\\bin目录下，并且要先用use命令打表所在的库。</p>
<p>五、备份数据库：</p>
<p>1、mysqldump --opt school&gt;school.bbb</p>
<p>mysqldump --opt school&gt;school.bbb</p>
<p>（命令在DOS的\\mysql\\bin目录下执行）</p>
<p>注释:将数据库school备份到school.bbb文件，school.bbb是一个文本文件，文件名任取，打开看看你会有新发现。</p>
<p>后记：其实MySQL的对数据库的操作与其它的SQL类数据库大同小异，您最好找本将SQL的书看看。我在这里只介绍一些基本的，其实我也就只懂这些了，呵呵。最好的MYSQL教程还是&#8220;晏子&#8220;译的&#8220;MYSQL中文参考手册&#8220;不仅免费每个相关网站都有下载，而且它是最权威的。可惜不是象\"PHP4中文手册\"那样是chm的格式，在查找函数命令的时候不太方便。</p>
<p>2、修改登录密码</p>
<p>1) mysqladmin -u用户名 -p旧密码 password 新密码:</p>
<p>例：mysqladmin -u root password 21century</p>
<p>注：因为开始时root没有密码，所以-p旧密码一项就可以省略了。</p>
<p>2)直接修改user表的root用户口令：</p>
<p>mysql&gt; user mysql;</p>
<p>mysql&gt; update user set pasword=password('21century') where user='root';</p>
<p>mysql&gt; flush privileges;</p>
<p>注：flush privileges的意思是强制刷新内存授权表，否则用的还是缓冲中的口令。</p>
<p>3、测试密码是否修改成功:</p>
<p>1）不用密码登录:</p>
<p>[root@test1 local]# mysql</p>
<p>ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)</p>
<p>显示错误，说明密码已经修改。</p>
<p>2）用修改后的密码登录:</p>
<p>[root@test1 local]# mysql -u root -p</p>
<p>Enter password: (输入修改后的密码21century)</p>
<p>Welcome to the MySQL monitor. Commands end with ; or \g.</p>
<p>Your MySQL connection id is 177 to server version: 3.23.48</p>
<p>Type 'help;' or '\h' for help. Type '\c' to clear the buffer.</p>
<p>mysql&gt;</p>
<p>成功！</p>
<p>这是通过mysqladmin命令修改口令，也可通过修改库来更改口令。</p>
<p>4、启动和停止:</p>
<p>启动：Mysql从3.23.15版本开始作了改动，默认安装后服务要用MySQL用户来启动，不允许root用户启动。</p>
<p>如果非要用root用户来启动，必须加上--user=root参数(./safe_mysqld --user=root &amp;)停止：mysqladmin -u root -p shutdown。</p>
<p>5、导出meeting数据库：</p>
<p>mysqldump -uroot -p21century meeting &gt; db_meeting.sql</p>
<p>导人dbname数据库: </p>
<p>mysqldump -uroot -p21century dbname &lt; xxx.sql</p>
<p>导入数据库还可用类似于oracle中@my_script.sql的方式一次执行大量sql语句，这在使用mysqldump不起作用时非常有用。</p>
<p>例：#./mysql -uroot -p &lt; /home/xuys/db_meeting_2003.sql</p>
<p>(注：create database、use databasename、create table和insert into语句都可写在上面的脚步文件中)</p>
<p>6、给表改名:</p>
<p>RENAME TABLE ztemp TO zteMP4;</p>
<p>7、修改字段属性：</p>
<p>ALTER TABLE bbabase CHANGE news_id id VARCHAR(5) NOT NULL;</p>
<p>8、在表中的content后增加一字段：</p>
<p>ALTER TABLE bbabase ADD leave_time DATETIME NOT NULL AFTER </p>
<img src ="http://www.blogjava.net/lcs868/aggbug/343306.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lcs868/" target="_blank">李春生</a> 2011-01-21 11:17 <a href="http://www.blogjava.net/lcs868/articles/343306.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql安装</title><link>http://www.blogjava.net/lcs868/articles/343305.html</link><dc:creator>李春生</dc:creator><author>李春生</author><pubDate>Fri, 21 Jan 2011 03:16:00 GMT</pubDate><guid>http://www.blogjava.net/lcs868/articles/343305.html</guid><wfw:comment>http://www.blogjava.net/lcs868/comments/343305.html</wfw:comment><comments>http://www.blogjava.net/lcs868/articles/343305.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lcs868/comments/commentRss/343305.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lcs868/services/trackbacks/343305.html</trackback:ping><description><![CDATA[shell&gt; groupadd mysql<br />
shell&gt; useradd -g mysql mysql<br />
shell&gt; gunzip &lt; mysql-VERSION.tar.gz | tar -xvf -<br />
shell&gt; cd mysql-VERSION<br />
shell&gt; ./configure --prefix=/usr/local/mysql<br />
shell&gt; make<br />
shell&gt; make install<br />
shell&gt; cp support-files/my-medium.cnf /etc/my.cnf<br />
shell&gt; cd /usr/local/mysql<br />
shell&gt; bin/mysql_install_db --user=mysql<br />
shell&gt; chown -R root&nbsp; .<br />
shell&gt; chown -R mysql var<br />
shell&gt; chgrp -R mysql .<br />
shell&gt; bin/mysqld_safe --user=mysql &amp;
<img src ="http://www.blogjava.net/lcs868/aggbug/343305.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lcs868/" target="_blank">李春生</a> 2011-01-21 11:16 <a href="http://www.blogjava.net/lcs868/articles/343305.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux系统下jdk1.6安装</title><link>http://www.blogjava.net/lcs868/articles/343304.html</link><dc:creator>李春生</dc:creator><author>李春生</author><pubDate>Fri, 21 Jan 2011 03:14:00 GMT</pubDate><guid>http://www.blogjava.net/lcs868/articles/343304.html</guid><wfw:comment>http://www.blogjava.net/lcs868/comments/343304.html</wfw:comment><comments>http://www.blogjava.net/lcs868/articles/343304.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lcs868/comments/commentRss/343304.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lcs868/services/trackbacks/343304.html</trackback:ping><description><![CDATA[<p>1. 从网站上下载jdk1.6包(jdk-6u10-linux-i586-rpm.bin ),通过leapFTP上传到linux系统的/var/ftp/pub目录下</p>
<p>&nbsp;</p>
<p>&nbsp; 2.在linux中切换到 /var/ftp/pub目录下，修改jdk1.6的使用权限：#chmod&nbsp; u+x&nbsp; jdk-6u10-linux-i586-rpm.bin</p>
<p>&nbsp;</p>
<p>&nbsp; 3.解压并安装：#./ jdk-6u10-linux-i586-rpm.bin (默认安装在/usr/java中)</p>
<p>&nbsp;</p>
<p>&nbsp; 4.环境变量配置：</p>
<p>&nbsp;&nbsp;&nbsp; #vi&nbsp; /etc/profile</p>
<p>&nbsp;&nbsp;&nbsp; 在该profile文件中添加：</p>
<p>&nbsp;&nbsp;&nbsp; JAVA_HOME=/usr/java/jdk1.6.0_10</p>
<p>&nbsp;&nbsp;&nbsp; JRE_HOME=/usr/java/jdk1.6.0_10/jre</p>
<p>&nbsp;&nbsp;&nbsp; PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin</p>
<p>&nbsp;&nbsp;&nbsp; CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib</p>
<p>&nbsp;&nbsp;&nbsp; export JAVA_HOME JRE_HOME PATH CLASSPATH</p>
<p>&nbsp;&nbsp;&nbsp; 添加完毕保存退出</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; #source /etc/profile</p>
<p>&nbsp;&nbsp;&nbsp; #java -version</p>
<p>&nbsp;&nbsp;&nbsp; 显示 java version "1.6.0_10" (jdk1.6安装成功)</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp; 卸载rpm版的jdk：</p>
<p>&nbsp;&nbsp; #rpm -qa|grep jdk</p>
<p>&nbsp;&nbsp; 显示：jdk-1.6.0_10-fcs<br />
&nbsp;&nbsp; 卸载：#rpm -e&nbsp; --nodeps&nbsp; jdk-1.6.0_10-fcs</p>
 <img src ="http://www.blogjava.net/lcs868/aggbug/343304.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lcs868/" target="_blank">李春生</a> 2011-01-21 11:14 <a href="http://www.blogjava.net/lcs868/articles/343304.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql slave,master配置</title><link>http://www.blogjava.net/lcs868/articles/343303.html</link><dc:creator>李春生</dc:creator><author>李春生</author><pubDate>Fri, 21 Jan 2011 03:09:00 GMT</pubDate><guid>http://www.blogjava.net/lcs868/articles/343303.html</guid><wfw:comment>http://www.blogjava.net/lcs868/comments/343303.html</wfw:comment><comments>http://www.blogjava.net/lcs868/articles/343303.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lcs868/comments/commentRss/343303.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lcs868/services/trackbacks/343303.html</trackback:ping><description><![CDATA[<p>一个完整的mysql读写分离环境包括以下几个部分：</p>
<p>应用程序client <br />
database proxy <br />
database集群 <br />
在本次实战中，应用程序client基于c3p0连接后端的database proxy。database proxy负责管理client实际访问database的路由策略，采用开源框架amoeba。database集群采用mysql的master-slave的replication方案。整个环境的结构图如下所示：</p>
<p>&nbsp;</p>
<p>实战步骤与详解</p>
<p>一.搭建mysql的master-slave环境 </p>
<p>1）分别在host1（10.20.147.110）和host2（10.20.147.111）上安装mysql（5.0.45），具体安装方法可见官方文档</p>
<p>2）配置master</p>
<p>首先编辑/etc/my.cnf，添加以下配置：</p>
<p>log-bin=mysql-bin #slave会基于此log-bin来做replication<br />
server-id=1 #master的标示<br />
binlog-do-db = amoeba_study #用于master-slave的具体数据库</p>
<p>然后添加专门用于replication的用户：</p>
<p>mysql&gt; GRANT REPLICATION SLAVE ON *.* TO repl@10.20.147.111 IDENTIFIED BY '111111';</p>
<p>重启mysql，使得配置生效：</p>
<p>/etc/init.d/mysqld restart</p>
<p>最后查看master状态：</p>
<p>&nbsp;</p>
<p>3）配置slave</p>
<p>首先编辑/etc/my.cnf，添加以下配置：</p>
<p>server-id=2 #slave的标示</p>
<p>配置生效后，配置与master的连接：</p>
<p>mysql&gt; CHANGE MASTER TO<br />
&nbsp;&nbsp;&nbsp; -&gt; MASTER_HOST='10.20.147.110',<br />
&nbsp;&nbsp;&nbsp; -&gt; MASTER_USER='repl',<br />
&nbsp;&nbsp;&nbsp; -&gt; MASTER_PASSWORD='111111',<br />
&nbsp;&nbsp;&nbsp; -&gt; MASTER_LOG_FILE='mysql-bin.000003',<br />
&nbsp;&nbsp;&nbsp; -&gt; MASTER_LOG_POS=161261;</p>
<p>其中MASTER_HOST是master机的ip，MASTER_USER和MASTER_PASSWORD就是我们刚才在master上添加的用户，MASTER_LOG_FILE和MASTER_LOG_POS对应与master status里的信息</p>
<p>最后启动slave：</p>
<p>mysql&gt; start slave;</p>
<p>4）验证master-slave搭建生效</p>
<p>通过查看slave机的log（/var/log/mysqld.log）：</p>
<p>100703 10:51:42 [Note] Slave I/O thread: connected to master 'repl@10.20.147.110:3306',&nbsp; replication started in log 'mysql-bin.000003' at position 161261</p>
<p>如看到以上信息则证明搭建成功，如果有问题也可通过此log找原因</p>
<p>二.搭建database proxy </p>
<p>此次实战中database proxy采用amoeba ，它的相关信息可以查阅官方文档，不在此详述</p>
<p>1）安装amoeba</p>
<p>下载amoeba（1.2.0-GA）后解压到本地（D:\openSource\amoeba-mysql-1.2.0-GA），即完成安装</p>
<p>2）配置amoeba</p>
<p>先配置proxy连接和与各后端mysql服务器连接信息（D:\openSource\amoeba-mysql-1.2.0-GA\conf\amoeba.xml）：</p>
<p>&lt;server&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;!-- proxy server绑定的端口 --&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="port"&gt;8066&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;!-- proxy server绑定的IP --&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;!--&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="ipAddress"&gt;127.0.0.1&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; --&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;!-- proxy server net IO Read thread size --&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="readThreadPoolSize"&gt;20&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;!-- proxy server client process thread size --&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="clientSideThreadPoolSize"&gt;30&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;!-- mysql server data packet process thread size --&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="serverSideThreadPoolSize"&gt;30&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;!-- socket Send and receive BufferSize(unit:K)&nbsp; --&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="netBufferSize"&gt;128&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;!-- Enable/disable TCP_NODELAY (disable/enable Nagle's algorithm). --&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="tcpNoDelay"&gt;true&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;!-- 对外验证的用户名 --&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="user"&gt;root&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;!-- 对外验证的密码 --&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="password"&gt;root&lt;/property&gt;&nbsp; <br />
&lt;/server&gt;&nbsp; <br />
&lt;server&gt;<br />
&nbsp;&lt;!-- proxy server绑定的端口 --&gt;<br />
&nbsp;&lt;property name="port"&gt;8066&lt;/property&gt;<br />
&nbsp;<br />
&nbsp;&lt;!-- proxy server绑定的IP --&gt;<br />
&nbsp;&lt;!-- <br />
&nbsp;&lt;property name="ipAddress"&gt;127.0.0.1&lt;/property&gt;<br />
&nbsp; --&gt;<br />
&nbsp;&lt;!-- proxy server net IO Read thread size --&gt;<br />
&nbsp;&lt;property name="readThreadPoolSize"&gt;20&lt;/property&gt;<br />
&nbsp;<br />
&nbsp;&lt;!-- proxy server client process thread size --&gt;<br />
&nbsp;&lt;property name="clientSideThreadPoolSize"&gt;30&lt;/property&gt;<br />
&nbsp;<br />
&nbsp;&lt;!-- mysql server data packet process thread size --&gt;<br />
&nbsp;&lt;property name="serverSideThreadPoolSize"&gt;30&lt;/property&gt;<br />
&nbsp;<br />
&nbsp;&lt;!-- socket Send and receive BufferSize(unit:K)&nbsp; --&gt;<br />
&nbsp;&lt;property name="netBufferSize"&gt;128&lt;/property&gt;<br />
&nbsp;<br />
&nbsp;&lt;!-- Enable/disable TCP_NODELAY (disable/enable Nagle's algorithm). --&gt;<br />
&nbsp;&lt;property name="tcpNoDelay"&gt;true&lt;/property&gt;<br />
&nbsp;<br />
&nbsp;&lt;!-- 对外验证的用户名 --&gt;<br />
&nbsp;&lt;property name="user"&gt;root&lt;/property&gt;<br />
&nbsp;<br />
&nbsp;&lt;!-- 对外验证的密码 --&gt;<br />
&nbsp;&lt;property name="password"&gt;root&lt;/property&gt;<br />
&lt;/server&gt; </p>
<p>以上是proxy提供给client的连接配置</p>
<p>&lt;dbServerList&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;dbServer name="server1"&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- PoolableObjectFactory实现类 --&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;factoryConfig class="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory"&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="manager"&gt;defaultManager&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 真实mysql数据库端口 --&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="port"&gt;3306&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 真实mysql数据库IP --&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="ipAddress"&gt;10.20.147.110&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="schema"&gt;amoeba_study&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 用于登陆mysql的用户名 --&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="user"&gt;root&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 用于登陆mysql的密码 --&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="password"&gt;&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/factoryConfig&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- ObjectPool实现类 --&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;poolConfig class="com.meidusa.amoeba.net.poolable.PoolableObjectPool"&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="maxActive"&gt;200&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="maxIdle"&gt;200&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="minIdle"&gt;10&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="minEvictableIdleTimeMillis"&gt;600000&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="timeBetweenEvictionRunsMillis"&gt;600000&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="testOnBorrow"&gt;true&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="testWhileIdle"&gt;true&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/poolConfig&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;/dbServer&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;dbServer name="server2"&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- PoolableObjectFactory实现类 --&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;factoryConfig class="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory"&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="manager"&gt;defaultManager&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 真实mysql数据库端口 --&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="port"&gt;3306&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 真实mysql数据库IP --&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="ipAddress"&gt;10.20.147.111&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="schema"&gt;amoeba_study&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 用于登陆mysql的用户名 --&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="user"&gt;root&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 用于登陆mysql的密码 --&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="password"&gt;&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/factoryConfig&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- ObjectPool实现类 --&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;poolConfig class="com.meidusa.amoeba.net.poolable.PoolableObjectPool"&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="maxActive"&gt;200&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="maxIdle"&gt;200&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="minIdle"&gt;10&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="minEvictableIdleTimeMillis"&gt;600000&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="timeBetweenEvictionRunsMillis"&gt;600000&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="testOnBorrow"&gt;true&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="testWhileIdle"&gt;true&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/poolConfig&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;/dbServer&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&lt;/dbServerList&gt;&nbsp; <br />
&lt;dbServerList&gt;<br />
&nbsp;&lt;dbServer name="server1"&gt;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&lt;!-- PoolableObjectFactory实现类 --&gt;<br />
&nbsp;&nbsp;&lt;factoryConfig class="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;property name="manager"&gt;defaultManager&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&lt;!-- 真实mysql数据库端口 --&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;property name="port"&gt;3306&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&lt;!-- 真实mysql数据库IP --&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;property name="ipAddress"&gt;10.20.147.110&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;property name="schema"&gt;amoeba_study&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&lt;!-- 用于登陆mysql的用户名 --&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;property name="user"&gt;root&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&lt;!-- 用于登陆mysql的密码 --&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;property name="password"&gt;&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&lt;/factoryConfig&gt;<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&lt;!-- ObjectPool实现类 --&gt;<br />
&nbsp;&nbsp;&lt;poolConfig class="com.meidusa.amoeba.net.poolable.PoolableObjectPool"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;property name="maxActive"&gt;200&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;property name="maxIdle"&gt;200&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;property name="minIdle"&gt;10&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;property name="minEvictableIdleTimeMillis"&gt;600000&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;property name="timeBetweenEvictionRunsMillis"&gt;600000&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;property name="testOnBorrow"&gt;true&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;property name="testWhileIdle"&gt;true&lt;/property&gt;<br />
&nbsp;&nbsp;&lt;/poolConfig&gt;<br />
&nbsp;&lt;/dbServer&gt;<br />
&nbsp;&lt;dbServer name="server2"&gt;<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&lt;!-- PoolableObjectFactory实现类 --&gt;<br />
&nbsp;&nbsp;&lt;factoryConfig class="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;property name="manager"&gt;defaultManager&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&lt;!-- 真实mysql数据库端口 --&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;property name="port"&gt;3306&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&lt;!-- 真实mysql数据库IP --&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;property name="ipAddress"&gt;10.20.147.111&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;property name="schema"&gt;amoeba_study&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&lt;!-- 用于登陆mysql的用户名 --&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;property name="user"&gt;root&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&lt;!-- 用于登陆mysql的密码 --&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;property name="password"&gt;&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&lt;/factoryConfig&gt;<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&lt;!-- ObjectPool实现类 --&gt;<br />
&nbsp;&nbsp;&lt;poolConfig class="com.meidusa.amoeba.net.poolable.PoolableObjectPool"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;property name="maxActive"&gt;200&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;property name="maxIdle"&gt;200&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;property name="minIdle"&gt;10&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;property name="minEvictableIdleTimeMillis"&gt;600000&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;property name="timeBetweenEvictionRunsMillis"&gt;600000&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;property name="testOnBorrow"&gt;true&lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;property name="testWhileIdle"&gt;true&lt;/property&gt;<br />
&nbsp;&nbsp;&lt;/poolConfig&gt;<br />
&nbsp;&lt;/dbServer&gt;&nbsp;&nbsp;<br />
&lt;/dbServerList&gt; </p>
<p>以上是proxy与后端各mysql数据库服务器配置信息，具体配置见注释很明白了</p>
<p>最后配置读写分离策略：</p>
<p>&lt;queryRouter class="com.meidusa.amoeba.mysql.parser.MysqlQueryRouter"&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="LRUMapSize"&gt;1500&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="defaultPool"&gt;server1&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="writePool"&gt;server1&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="readPool"&gt;server2&lt;/property&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="needParse"&gt;true&lt;/property&gt;&nbsp; <br />
&lt;/queryRouter&gt;&nbsp; <br />
&lt;queryRouter class="com.meidusa.amoeba.mysql.parser.MysqlQueryRouter"&gt;<br />
&nbsp;&lt;property name="LRUMapSize"&gt;1500&lt;/property&gt;<br />
&nbsp;&lt;property name="defaultPool"&gt;server1&lt;/property&gt;<br />
&nbsp;&lt;property name="writePool"&gt;server1&lt;/property&gt;<br />
&nbsp;&lt;property name="readPool"&gt;server2&lt;/property&gt;<br />
&nbsp;&lt;property name="needParse"&gt;true&lt;/property&gt;<br />
&lt;/queryRouter&gt; </p>
<p>从以上配置不然发现，写操作路由到server1（master），读操作路由到server2（slave）</p>
<p>3）启动amoeba</p>
<p>在命令行里运行D:\openSource\amoeba-mysql-1.2.0-GA\amoeba.bat即可：</p>
<p>log4j:WARN log4j config load completed from file:D:\openSource\amoeba-mysql-1.2.0-GA\conf\log4j.xml<br />
log4j:WARN ip access config load completed from file:D:\openSource\amoeba-mysql-1.2.0-GA/conf/access_list.conf<br />
2010-07-03 09:55:33,821 INFO&nbsp; net.ServerableConnectionManager - Server listening on 0.0.0.0/0.0.0.0:8066.<br />
三.client端调用与测试 </p>
<p>1）编写client调用程序</p>
<p>具体程序细节就不详述了，只是一个最普通的基于mysql driver的jdbc的数据库操作程序</p>
<p>2）配置数据库连接</p>
<p>本client基于c3p0，具体数据源配置如下：</p>
<p>&lt;bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"&nbsp; <br />
&nbsp;&nbsp;&nbsp; destroy-method="close"&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="driverClass" value="com.mysql.jdbc.Driver" /&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="jdbcUrl" value="jdbc:mysql://localhost:8066/amoeba_study" /&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="user" value="root" /&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="password" value="root" /&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="minPoolSize" value="1" /&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="maxPoolSize" value="1" /&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="maxIdleTime" value="1800" /&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="acquireIncrement" value="1" /&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="maxStatements" value="0" /&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="initialPoolSize" value="1" /&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="idleConnectionTestPeriod" value="1800" /&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="acquireRetryAttempts" value="6" /&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="acquireRetryDelay" value="1000" /&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="breakAfterAcquireFailure" value="false" /&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="testConnectionOnCheckout" value="true" /&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;property name="testConnectionOnCheckin" value="false" /&gt;&nbsp; <br />
&lt;/bean&gt;&nbsp; <br />
&lt;bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"<br />
&nbsp;destroy-method="close"&gt;<br />
&nbsp;&lt;property name="driverClass" value="com.mysql.jdbc.Driver" /&gt;<br />
&nbsp;&lt;property name="jdbcUrl" value="jdbc:mysql://localhost:8066/amoeba_study" /&gt;<br />
&nbsp;&lt;property name="user" value="root" /&gt;<br />
&nbsp;&lt;property name="password" value="root" /&gt;<br />
&nbsp;&lt;property name="minPoolSize" value="1" /&gt;<br />
&nbsp;&lt;property name="maxPoolSize" value="1" /&gt;<br />
&nbsp;&lt;property name="maxIdleTime" value="1800" /&gt;<br />
&nbsp;&lt;property name="acquireIncrement" value="1" /&gt;<br />
&nbsp;&lt;property name="maxStatements" value="0" /&gt;<br />
&nbsp;&lt;property name="initialPoolSize" value="1" /&gt;<br />
&nbsp;&lt;property name="idleConnectionTestPeriod" value="1800" /&gt;<br />
&nbsp;&lt;property name="acquireRetryAttempts" value="6" /&gt;<br />
&nbsp;&lt;property name="acquireRetryDelay" value="1000" /&gt;<br />
&nbsp;&lt;property name="breakAfterAcquireFailure" value="false" /&gt;<br />
&nbsp;&lt;property name="testConnectionOnCheckout" value="true" /&gt;<br />
&nbsp;&lt;property name="testConnectionOnCheckin" value="false" /&gt;<br />
&lt;/bean&gt; </p>
<p>值得注意是，client端只需连到proxy，与实际的数据库没有任何关系，因此jdbcUrl、user、password配置都对应于amoeba暴露出来的配置信息</p>
<p>3）调用与测试</p>
<p>首先插入一条数据：insert into zone_by_id(id,name) values(20003,'name_20003')</p>
<p>通过查看master机上的日志/var/lib/mysql/mysql_log.log：</p>
<p>100703 11:58:42&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 Query&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set names latin1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 Query&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SET NAMES latin1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 Query&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SET character_set_results = NULL<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 Query&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHOW VARIABLES<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 Query&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHOW COLLATION<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 Query&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SET autocommit=1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 Query&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SET sql_mode='STRICT_TRANS_TABLES'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 Query&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHOW VARIABLES LIKE 'tx_isolation'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 Query&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHOW FULL TABLES FROM `amoeba_study` LIKE 'PROBABLYNOT'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 Prepare&nbsp;&nbsp;&nbsp;&nbsp; [1] insert into zone_by_id(id,name) values(?,?)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 Prepare&nbsp;&nbsp;&nbsp;&nbsp; [2] insert into zone_by_id(id,name) values(?,?)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp; 1 Execute&nbsp;&nbsp;&nbsp;&nbsp; [2] insert into zone_by_id(id,name) values(20003,'name_20003') </p>
<p>得知写操作发生在master机上</p>
<p>通过查看slave机上的日志/var/lib/mysql/mysql_log.log：</p>
<p>100703 11:58:42&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2 Query&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; insert into zone_by_id(id,name) values(20003,'name_20003') </p>
<p>得知slave同步执行了这条语句</p>
<p>然后查一条数据：select t.name from zone_by_id t where t.id = 20003</p>
<p>通过查看slave机上的日志/var/lib/mysql/mysql_log.log：</p>
<p>100703 12:02:00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 33 Query&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set names latin1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 33 Prepare&nbsp;&nbsp;&nbsp;&nbsp; [1] select t.name from zone_by_id t where t.id = ?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 33 Prepare&nbsp;&nbsp;&nbsp;&nbsp; [2] select t.name from zone_by_id t where t.id = ?&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 33 Execute&nbsp;&nbsp;&nbsp;&nbsp; [2] select t.name from zone_by_id t where t.id = 20003&nbsp; </p>
<p>得知读操作发生在slave机上</p>
<p>并且通过查看slave机上的日志/var/lib/mysql/mysql_log.log发现这条语句没在master上执行</p>
<p>通过以上验证得知简单的master-slave搭建和实战得以生效</p>
<p>&nbsp;</p>
<p>本文来自CSDN博客，转载请标明出处：http://blog.csdn.net/cutesource/archive/2010/07/03/5710645.aspx</p>
 <img src ="http://www.blogjava.net/lcs868/aggbug/343303.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lcs868/" target="_blank">李春生</a> 2011-01-21 11:09 <a href="http://www.blogjava.net/lcs868/articles/343303.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>