vickzhu

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  151 随笔 :: 0 文章 :: 34 评论 :: 0 Trackbacks

#

比如java向txt文件中写入新的一行时,java获得文本输入框中的新行时等
Unix系统里,每行结尾只有“<换行>”,即“\r”;
Windows系统里面,每行结尾是“<换行><回车>”,即“\r\n”;
Mac系统里,每行结尾是“<回车>”,即“\n”。
一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;
而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。

posted @ 2010-03-31 13:37 筱 筱 阅读(2358) | 评论 (2)编辑 收藏

如果已经配置mysql的环境变量,请直接执行:mysql -u 输入用户名 -p 回车 之后输入密码
如果未配置环境变量请先进入mysql的bin目录下
执行如下语句导入:source 输入sql文件的位置
执行如下语句导出:mysqldump -u输入用户名 -p输入密码 数据库名 表名 >文件名.sql

posted @ 2010-01-19 11:26 筱 筱 阅读(270) | 评论 (0)编辑 收藏

服务端:http://labs.northscale.com/memcached-packages/
客户端:http://code.google.com/p/memcached/wiki/Clients/
posted @ 2009-12-31 10:57 筱 筱 阅读(417) | 评论 (1)编辑 收藏

1、安装jdk --> D:\Program Files\Java\jdk1.5.0
2、配置JAVA_HOME --> D:\Program Files\Java\jdk1.5.0
3、解压tomcat5.5 --> D:\Program Files\Apache Software Foundation\Tomcat 5.5
4、打开cmd,进入到tomcat5.5bin目录 --> D:\Program Files\Apache Software Foundation\Tomcat 5.5\bin>
5、执行命令:service install tomcat
        执行结果为:
            Installing the service 'tomcat' ...
            Using CATALINA_HOME:    D:\Program Files\Apache Software Foundation\Tomcat 5.5
            Using CATALINA_BASE:    D:\Program Files\Apache Software Foundation\Tomcat 5.5
            Using JAVA_HOME:        D:\Program Files\Java\jdk1.5.0
            Using JVM:              D:\Program Files\Java\jdk1.5.0\jre\bin\server\jvm.dll
            The service 'tomcat' has been installed.
        此时产生名为:Apache Tomcat tomcat 的服务
6、卸载命令:service remove tomcat
        执行结果为:
            The service 'tomcat' has been removed

posted @ 2009-12-25 15:12 筱 筱 阅读(663) | 评论 (0)编辑 收藏

@echo off
rem 这段代码的作用是对mysql进行查询操作,并将查询结果写入到result.txt文件中
echo %TIME%
set errorlevel=0
set path_bin_mysql="D:\Program Files\mysql_1\bin\mysql"
set host=localhost
set port=3308
set database_mysql=mysql
set user_mysql=root
set password_mysql=admin
%path_bin_mysql% -u%user_mysql% -p%password_mysql% -h%host% -P%port% %database_mysql%< test.sql >

result.txt
pause

posted @ 2009-11-30 17:17 筱 筱 阅读(347) | 评论 (0)编辑 收藏

千万人同时访问的网站,一般是有很多个数据库同时工作,说明白一点就是数据库集群和并发控制,这样的网站实时性也是相对的。这些网站都有一些共同的特点:数据量大,在线人数多,并发请求多,pageview高,响应速度快。总结了一下各个大网站的架构,主要提高效率及稳定性的几个地方包括:

  1、程序

  程序开发是一方面,系统架构设计(硬件+网络+软件)是另一方面。

  软件架构方面,做网站首先需要很多web服务器存储静态资源,比如图片、视频、静态页等,千万不要把静态资源和应用服务器放在一起。

  一个好的程序员写出来的程序会非常简洁、性能很好,一个初级程序员可能会犯很多低级错误,这也是影响网站性能的原因之一。

  网站要做到效率高,不光是程序员的事情,数据库优化、程序优化这是必须的,在性能优化上要数据库和程序齐头并进!缓存也是两方面同时入手。第一,数据库缓存和数据库优化,这个由dba完成(而且这个有非常大的潜力可挖,只是由于我们都是程序员而忽略了他而已)。第二,程序上的优化,这个非常的有讲究,比如说重要一点就是要规范SQL语句,少用in 多用or,多用preparestatement,另外避免程序冗余如查找数据少用双重循环等。另外选用优秀的开源框架加以支持,我个人认为中后台的支持是最最重要的,可以选取spring+ibatis。因为ibatis直接操作SQL并有缓存机制。spring的好处就不用我多说了,IOC的机制可以避免new对象,这样也节省开销。据我分析,绝大部分的开销就是在NEW的时候和连接数据库时候产生的,请尽量避免。另外可以用一些内存测试工具来做一个demo说明hibernate和ibatis谁更快!前台你想用什么就用什么,struts,webwork都成,如果觉得自己挺牛X可以试试tapestry。

  用数据库也未必不能解决访问量巨大所带来的问题,作成静态文件硬盘的寻址时间也未必少于数据库的搜索时间,当然对资料的索引要下一翻工夫。我自己觉得门户往往也就是当天、热门的资料点击率较高,将其做缓存最多也不过1~2G的数据量吧,举个例子:

拿网易新闻来http://news.163.com/07/0606/09/3GA0D10N00011229.html

  格式化一下,方便理解:http://域名/年/月日/新闻所属分类/新闻ID.html

  可以把当天发布的、热门的、流揽量大的作个缓寸,用hashtable(key:年-月-日-分类-ID,value:新闻对象),静态将其放到内存(速度绝对快过硬盘寻址静态页面)。

通常是采用oracle存储过程+2个weblogic,更新机制也几乎一样每签发一条新闻,就会生成静态页面,然后发往前端的web服务器,前端的web都是做负载均衡的。另外还有定时的程序,每5-15分钟自动生成一次。在发布新闻的同时将数据缓存。当然缓存也不会越来越大,在个特定的时间段(如凌晨)剔除过期的数据。做一个大的网站远没有想象中那么简单,服务器基本就要百十个的。

  这样可以大大增加一台计算机的处理速度,如果一台机器处理不了,可以用httpserver集群来解决问题了。


  2、网络
  中国的网络分南北电信和网通,访问的ip就要区分南北进入不同的网络。


  3、集群
  通常会使用CDN与GSBL与DNS负载均衡技术,每个地区一组前台服务器群,例如:网易,百度使用了DNS负载均衡技术,每个频道一组前台服务器,一搜使用了DNS负载技术,所有频道共用一组前台服务器集群。

  网站使用基于Linux集群的负载均衡,失败恢复,包括应用服务器和数据库服务器,基于linux-ha的服务状态检测及高可用化。

  应用服务器集群可以采用apache+tomcat集群和weblogic集群等;web服务器集群可以用反向代理,也可以用NAT的方式,或者多域名解析都可以;Squid也可以,方法很多,可以根据情况选择。

 4、数据库

  因为是千万人同时访问的网站,所以一般是有很多个数据库同时工作的,说明白一点就是数据库集群和并发控制,数据分布到地理位置不同的数据中心,以免发生断电事故。另外还有一点的是,那些网站的静态化网页并不是真的,而是通过动态网页与静态网页网址交换做出现的假象,这可以用urlrewrite 这样的开源网址映射器实现。这样的网站实时性也是相对的,因为在数据库复制数据的时候有一个过程,一般在技术上可以用到hibernate和 ecache,但是如果要使网站工作地更好,可以使用EJB和websphere,weblogic这样大型的服务器来支持,并且要用oracle这样的大型数据库。

  大型门户网站不建议使用Mysql数据库,除非你对Mysql数据的优化非常熟悉。Mysql数据库服务器的master-slave模式,利用数据库服务器在主从服务器间进行同步,应用只把数据写到主服务器,而读数据时则根据负载选择一台从服务器或者主服务器来读取,将数据按不同策略划分到不同的服务器(组)上,分散数据库压力。

  大型网站要用oracle,数据方面操作尽量多用存储过程,绝对提升性能;同时要让DBA对数据库进行优化,优化后的数据库与没优化的有天壤之别;同时还可以扩展分布式数据库,以后这方面的研究会越来越多;


  5、页面

  从开始就考虑使用虚拟存储/簇文件系统。它能让你大量并行IO访问,而且不需要任何重组就能够增加所需要的磁盘。

  页面数据调用更要认真设计,一些数据查询可以不通过数据库的方式,实时性要求不高的可以使用lucene来实现,即使有实时性的要求也可以用lucene,lucene+compass还是非常优秀的。

  新闻类的网站可以用静态页存储,采用定时更新机制减轻服务器负担;首页每个小模块可以使用oscache缓存,这样不用每次都拉数据。

  前端的基于静态页面缓存的web加速器,主要应用有squid等。squid 将大部分静态资源(图片,js,css等)缓存起来,直接返回给访问者,减少应用服务器的负载网站的静态化网页并不是真的,而是通过动态网页与静态网页网址交换做出现的假象,这可以用urlrewrite这样的开源网址映射器实现,后缀名为htm或者html并不能说明程序生成了静态页面,可能是通过 url重写来实现的,为的只不过是在搜索引擎中提升自己网站的覆盖面积罢了。

  生成静态页面的服务器和www服务器是两组不同的服务器,页面生成后才会到www服务器,一部分数据库并不是关系数据库,这样更适合信息衍生,www、mail服务器、路由器多,主要用负载平衡解决访问瓶颈。

  静态页面的缺点:

  1) 增加了程序的复杂度

  2) 不利于管理资料

  3) 速度不是最快

  4) 伤硬盘

  6、缓存

  从一开始就应该使用缓存,高速缓存是一个更好的地方存储临时数据,比如Web站点上跟踪一个特定用户的会话产生的临时文件,就不再需要记录到数据库里。

  不能用lucene实现的可以用缓存,分布式缓存可以用memcached,如果有钱的话用10来台机器做缓存,> 10G的存储量相信存什么都够了;如果没钱的话可以在页面缓存和数据缓存上下功夫,多用OSCACHE和EHCACHE,SWARMCACHE也可以,不过据说同步性不是很好;

  可以使用Memcache进行缓存,用大内存把这些不变的数据全都缓存起来,而当修改时就通知cache过期,memcache是LJ开发的一款分布式缓存产品,很多大型网站在应用,我们可以把Cache Server与AppServer装在一起。因为Cache Server对CPU消耗不大,而有了Cache Server的支援,App Server对内存要求也不是太高,所以可以和平共处,更有效的利用资源。
posted @ 2009-11-30 16:50 筱 筱 阅读(265) | 评论 (0)编辑 收藏


将response内响应给使用者的内容,使用GZIP压缩的方式回传给浏览器,而IE5和NS6也都有支持Gzip的压缩格式。
这个方法在之前就有人提出过,因为是让网页在输出时经过压缩,可以让传输量变小很多,虽然现在的网络频宽对于用来看网页已经绰绰有余,但是档案大小太大的网页还是会造成一定的影响。
经过Gzip压缩过的网页,档案大小可以到原本压缩前的20%。

package com.jsptw.filter;
import java.io.*;
import java.util.zip.GZIPOutputStream;
import javax.servlet.*;
import javax.servlet.http.*;
public class GZIPEncodeFilter implements Filter {
      public void init(FilterConfig filterConfig) {}
      public void doFilter( ServletRequest request, ServletResponse response, FilterChain chain)
                                      throws IOException, ServletException {       
        String transferEncoding = getGZIPEncoding((HttpServletRequest)request);       
        if (transferEncoding == null) {           
          chain.doFilter(request, response);       
        } else{         
          ((HttpServletResponse)response).setHeader("Content-Encoding", transferEncoding);
            GZIPEncodableResponse wrappedResponse = new GZIPEncodableResponse((HttpServletResponse)response);
            chain.doFilter(request, wrappedResponse);         
            wrappedResponse.flush();       
        }   
      }   
      public void destroy() {}   
      private static String getGZIPEncoding(HttpServletRequest request) {       
        String acceptEncoding = request.getHeader("Accept-Encoding");       
          if (acceptEncoding == null)
            return null;       
          acceptEncoding = acceptEncoding.toLowerCase();       
          if (acceptEncoding.indexOf("x-gzip") >= 0) {
            return "x-gzip";
          }       
          if (acceptEncoding.indexOf("gzip") >= 0) {           
            return "gzip";       
          }       
          return null;   
      }   
     
      private class GZIPEncodableResponse extends HttpServletResponseWrapper {       
        private GZIPServletStream wrappedOut;       
          public GZIPEncodableResponse(HttpServletResponse response) throws IOException {          
            super(response);           
              wrappedOut = new GZIPServletStream(response.getOutputStream());       
          }       
          public ServletOutputStream getOutputStream() throws IOException {           
            return wrappedOut;       
          }       
          private PrintWriter wrappedWriter;       
          public PrintWriter getWriter() throws IOException {           
            if (wrappedWriter == null) {               
                wrappedWriter = new PrintWriter( new OutputStreamWriter( getOutputStream(), getCharacterEncoding()));            }           
                 return wrappedWriter;       
              }       
          public void flush() throws IOException {           
            if (wrappedWriter != null) {              
                wrappedWriter.flush();           
              }          
              wrappedOut.finish();       
          }   
      }   
     
      private class GZIPServletStream extends ServletOutputStream {       
        private GZIPOutputStream outputStream;       
          public GZIPServletStream(OutputStream source) throws IOException {           
         outputStream = new GZIPOutputStream(source);       
       }       
       public void finish() throws IOException {
         OutputStream.finish();       
       }       
      public void write(byte[] buf) throws IOException {           
        outputStream.write(buf);       
      }       
      public void write(byte[] buf, int off, int len) throws IOException {           
        outputStream.write(buf, off, len);       
      }       
      public void write(int c) throws IOException {           
        outputStream.write(c);       
      }       
      public void flush() throws IOException {           
        outputStream.flush();       
      }      
      public void close() throws IOException {           
        outputStream.close();        
      }   
    }
}


web.xml中的设定为:
<filter>       
<filter-name>GZIPEncoder</filter-name>       
<filter-class>com.jsptw.filter.GZIPEncodeFilter</filter-class>
</filter>

<filter-mapping> 
<filter-name> GZIPEncoder</filter-name> 
<url-pattern>/*</url-pattern>
</filter-mapping> 

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/a_heng/archive/2009/09/22/4579979.aspx

posted @ 2009-11-30 16:26 筱 筱 阅读(278) | 评论 (0)编辑 收藏

一 简单加密(不可逆):
        MD5(信息摘要算法,Message Digest),SHA(安全散列算法,Secure Hash,Algorithm)、HMAC(散列消息鉴别码,Hash Message Authentication Code)

二 复杂算法:
        1、对称加密:加密解密使用相同的密钥:DES(Data Encryption Standard,数据加密算法) 、IDEA、RC2、RC4、SKIPJACK
        2、非对称加密:分为公开密钥(publickey)和私有密钥(privatekey),且公开密钥与私有密钥是一对。非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。甲方只能用其专用密钥解密由其公用密钥加密后的任何信息。非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要,但加密和解密花费时间长、速度慢,它不适合于对文件加密而只适用于对少量数据进行加密。经典的非对称加密算法如RSA(三个人名:Ron Rivest, AdiShamir 和Leonard Adleman)算法等安全性都相当高。

posted @ 2009-11-05 11:30 筱 筱 阅读(185) | 评论 (0)编辑 收藏

Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INTO SELECT 表复制语句了。

      1.INSERT INTO SELECT语句

      语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1

      要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。示例如下:

select into与insert into select - xiaolei_funny - 一叶知秋 的博客select into与insert into select - xiaolei_funny - 一叶知秋 的博客INSERT INTO SELECT语句复制表数据

   --1.创建测试表

    create TABLE Table1

    (

        a varchar(10),

        b varchar(10),

        c varchar(10),

        CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED

        (

            a ASC

        )

    ) ON [PRIMARY]

    create TABLE Table2

    (

        a varchar(10),

        c varchar(10),

        d int,

        CONSTRAINT [PK_Table2] PRIMARY KEY CLUSTERED

        (

            a ASC

        )

    ) ON [PRIMARY]

    GO

    --2.创建测试数据

    Insert into Table1 values('赵','asds','90')

    Insert into Table1 values('钱','asds','100')

    Insert into Table1 values('孙','asds','80')

    Insert into Table1 values('李','asds',null)

    GO

    select * from Table2

    --3.INSERT INTO SELECT语句复制表数据

    Insert into Table2(a, c, d) select a,c,5 from Table1

    GO

    --4.显示更新后的结果

    select * from Table2

    GO

    --5.删除测试表

    drop TABLE Table1

    drop TABLE Table2

      2.SELECT INTO FROM语句

      语句形式为:SELECT vale1, value2 into Table2 from Table1

      要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中。示例如下:

select into与insert into select - xiaolei_funny - 一叶知秋 的博客select into与insert into select - xiaolei_funny - 一叶知秋 的博客SELECT INTO FROM创建表并复制表数据

   --1.创建测试表

    create TABLE Table1

    (

        a varchar(10),

        b varchar(10),

        c varchar(10),

        CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED

        (

            a ASC

        )

    ) ON [PRIMARY]

    GO

    --2.创建测试数据

    Insert into Table1 values('赵','asds','90')

    Insert into Table1 values('钱','asds','100')

    Insert into Table1 values('孙','asds','80')

    Insert into Table1 values('李','asds',null)

    GO

    --3.SELECT INTO FROM语句创建表Table2并复制数据

    select a,c INTO Table2 from Table1

    GO

    --4.显示更新后的结果

    select * from Table2

    GO

    --5.删除测试表

    drop TABLE Table1

    drop TABLE Table2

posted @ 2009-11-04 13:21 筱 筱 阅读(461) | 评论 (0)编辑 收藏

MySQl详细安装过程
1.利用安装包进行安装:
双击mysql-5.0.19-win32.zip打开,再双击里面的setup.exe就开始进行安装了,当然你也可以先解压再双击安装。
a.弹出MySQL Server 5.0-Setup Wizard对话框,点next
b.就到了选择安装类型的对话框了,有三种类型:(1)典型 (2)完全(3)自定义。一般来说选典型就可以了,典型和完全安装都会装在默认的路径C:\Program Files\MySQL\MySQL Server 5.0,如果要改变安装路径就要选择自定义,我这里选择的是“完全”
c.点击next->install就开始安装了。如果选择“自定义”的话,改变你的安装路径后,再点击next->install是一样的。
d.跟着就到了一个问你是否要申请一个登录MySQL.com的帐户,有兴趣的话可以按步骤来申请一个,呵呵。我选择的是Skip Sign-Up->finish。注意这时并没有安装完成,接着要进行配置,配置好后才能使用!
e.点finish后会马上弹出一个MySQL Server Instance Configuration Wizard的对话框,点next
f.又到了一个选择配置类型的对话框,“详细”和“标准”配置,如果想快的话就选“标准”,再点next就可以了。不过我强烈推荐选“详细”的单选按钮,点next
g.再选择服务器类型“开发者”,“服务器”,“专门的MySQL服务器”,三者之间的区别是占用的内存的不同,从最小,中等,最大。点next,选择数 据库类型:“多功能的”,“事务专用的”,“非事务专用”。三者的区别是:“多功能的”可以同时使用MyISAM和InnoDB储存引擎,它们占用 MySQL可用资源各半;“事务专用的”InnoDB作为主储存引擎,占用大量的资源,MyISAM引擎仍然可用;“非事务专用的”InnoDB就不能再 用了,点next
h.(因为我选的是“多功能的”,不同的选项这里可能会不同)这里可以选择存放InnoDB表空间的目录,我选的默认,点next
i.就到了为服务器设置合适的并发连接数,有三种类型:“决策支持”并发连接数较小,默认设为20;“在线事务处理”可以在任何时候达到500个活动的连接;“手动设定”自己想要的连接数,选了这个后,从右边的下拉框选一个合适的数值,点next后
j.选择端口,3306就可以了,点next
k.设置字符集,这里又是有三个选择:“标准”使用的是latin1字符集,不支持中文;“多语言”使用的是UTF-8,支持中文;“手动选择默认的字符集”,选中后可以从右边的下拉框中选择你想要的字符集,里面有gb2312和gbk是支持中文的,点next
l.安装成为windows的服务,并可以从右边的下拉框中为它选择一个名称,例如“MySQL”,“MySQL5”等。Launch the MySQL Server automatically是否自动启动服务,Include Bin Directory in Windows Path是否要将安装目录C:\Program Files\MySQL\MySQL Server 5.0\bin加入环境变量PATH中,建议加入的好,点next
m.设置root用户的密码,当然也可以不把Modify Security Setting 勾掉不设密码,建议还是设的好。Enable root access from remote machines是否允许root用户进行远程登录,Create An Anonymous Account是否创建匿名用户
n.点next->Execute->Finish。
至此MySQL终于安装完成
MySQl详细安装过程
1.利用安装包进行安装:
双击mysql-5.0.19-win32.zip打开,再双击里面的setup.exe就开始进行安装了,当然你也可以先解压再双击安装。
a.弹出MySQL Server 5.0-Setup Wizard对话框,点next
b.就到了选择安装类型的对话框了,有三种类型:(1)典型 (2)完全(3)自定义。一般来说选典型就可以了,典型和完全安装都会装在默认的路径C:\Program Files\MySQL\MySQL Server 5.0,如果要改变安装路径就要选择自定义,我这里选择的是“完全”
c.点击next->install就开始安装了。如果选择“自定义”的话,改变你的安装路径后,再点击next->install是一样的。
d.跟着就到了一个问你是否要申请一个登录MySQL.com的帐户,有兴趣的话可以按步骤来申请一个,呵呵。我选择的是Skip Sign-Up->finish。注意这时并没有安装完成,接着要进行配置,配置好后才能使用!
e.点finish后会马上弹出一个MySQL Server Instance Configuration Wizard的对话框,点next
f.又到了一个选择配置类型的对话框,“详细”和“标准”配置,如果想快的话就选“标准”,再点next就可以了。不过我强烈推荐选“详细”的单选按钮,点next
g.再选择服务器类型“开发者”,“服务器”,“专门的MySQL服务器”,三者之间的区别是占用的内存的不同,从最小,中等,最大。点next,选择数 据库类型:“多功能的”,“事务专用的”,“非事务专用”。三者的区别是:“多功能的”可以同时使用MyISAM和InnoDB储存引擎,它们占用 MySQL可用资源各半;“事务专用的”InnoDB作为主储存引擎,占用大量的资源,MyISAM引擎仍然可用;“非事务专用的”InnoDB就不能再 用了,点next
h.(因为我选的是“多功能的”,不同的选项这里可能会不同)这里可以选择存放InnoDB表空间的目录,我选的默认,点next
i.就到了为服务器设置合适的并发连接数,有三种类型:“决策支持”并发连接数较小,默认设为20;“在线事务处理”可以在任何时候达到500个活动的连接;“手动设定”自己想要的连接数,选了这个后,从右边的下拉框选一个合适的数值,点next后
j.选择端口,3306就可以了,点next
k.设置字符集,这里又是有三个选择:“标准”使用的是latin1字符集,不支持中文;“多语言”使用的是UTF-8,支持中文;“手动选择默认的字符集”,选中后可以从右边的下拉框中选择你想要的字符集,里面有gb2312和gbk是支持中文的,点next
l.安装成为windows的服务,并可以从右边的下拉框中为它选择一个名称,例如“MySQL”,“MySQL5”等。Launch the MySQL Server automatically是否自动启动服务,Include Bin Directory in Windows Path是否要将安装目录C:\Program Files\MySQL\MySQL Server 5.0\bin加入环境变量PATH中,建议加入的好,点next
m.设置root用户的密码,当然也可以不把Modify Security Setting 勾掉不设密码,建议还是设的好。Enable root access from remote machines是否允许root用户进行远程登录,Create An Anonymous Account是否创建匿名用户
n.点next->Execute->Finish。
至此MySQL终于安装完成

测试
Microsoft Windows XP [版本 5.1.2600](C) 版权所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\Administrator\桌面>mysql -uroot -pEnter password: ********Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 2 to server version: 5.0.19-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
看到上面这个就说明安装成功!一般的登录为:mysql -h host -u user -p (password)

非安装包的安装
1.将mysql-noinstall-5.0.19-win32.zip到C:\(或者其他你想的安装目录),重命名mysql
2.进入C:\mysql\可以找到如下的配置文件样本,my-small.ini,my-medium.ini等。我选择my-medium.ini,先将复制到另外的地方,例如:桌面,然后重命名为my.ini,再剪切回C:\mysql\目录下。
3.打开my.ini进行编辑,要修改的地方如下:
[client]#password = your_passwordport = 3309#socket = /tmp/mysql.sock
将socket项用'#'注释掉,因为windows下没有,又因为我上面用了端口3306,所以这里要把端口也改了,改为3309,你可以改成其他没有被占用的端口3307,3308等。
[mysqld]
basedir=C:/mysql/datadir=C:/mysql/data/port = 3309#socket = /tmp/mysql.sock
default-character-set=utf8
这里同样把socket注释掉,端口改成3309;basedir为安装目录,datadir为存放数据的目录,记住要用“/”,而不是“\”,如果要用"\"就要这样使用C:\\mysql\\data,另外这里我还设置了默认的字符集为utf8。
还有
[mysql]
default-character-set=utf8
no-auto-rehash# Remove the next comment character if you are not familiar with SQL#safe-updates在上面添加默认的字符集就可以了。
4.编辑完my.ini文件后就要选择一种MySQL服务器类型,它们之间的区别如下:
Binary
Description

mysqld-debug
Compiled with full debugging and automatic memory allocation checking, as well as InnoDB and BDB tables.

mysqld
Optimized binary with InnoDB support.

mysqld-nt
Optimized binary for Windows NT, 2000, and XP with support for named pipes.

mysqld-max
Optimized binary with support for InnoDB and BDB tables.

mysqld-max-nt
Like mysqld-max, but compiled with support for named pipes.
上面每一种类型都可以在C:\mysql\bin目录下找到对应的.exe程序,例如:mysqld-max.exe,mysqld-nt.exe等。
5.选择好后就要安装成windows服务了,过程如下:(我选的是mysqld-max)
Microsoft Windows XP [版本 5.1.2600](C) 版权所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\Administrator\桌面>cd c:\mysql\bin
C:\mysql\bin>mysqld-max --install mysql-max --defaults-file=c:\mysql\my.iniService successfully installed.C:\mysql\bin>net start mysql-maxmysql-max 服务正在启动 .mysql-max 服务已经启动成功。
C:\mysql\bin>mysql -uroot --port=3309Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 1 to server version: 5.0.19-max-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
安装成windows服务的命令格式为:服务器类型 --install(自动) 名称(你想要用的名称) --defaults-file=my.ini文件的绝对路径。--install-manual(手动)
注意:上面的登录mysql -uroot --port=3309 非安装默认设定的用户为root,密码为空,同时因为我改了端口,所以要加上--port选项。

一台机器上安装多个windows服务
1.创建要安装的目录,例如:F:\mysql,在F:\mysql目录下再创建一个子目录data.
2.再到已经装好的mysql的目录下,例如:C:\mysql\,把里面data目录下的mysql目录copy到F:\mysql\data\目录 下,再C:\mysql\目录下share目录和my.ini文件也copy到F:\mysql\目录下,其实只需要C:\mysql\share \english目录下的errmsg.sys文件.
3.编辑F:\mysql\my.ini文件,修改里面的端口和basedir,datadir就可以了.
[client]#password = 123456port = 3308#socket = /tmp/mysql.sock
[mysqld]
# set basedir to your installation pathbasedir=F:/mysql/# set datadir to the location of your data directorydatadir=F:/mysql/data/
port = 3308
4.安装成windows服务同上面的非安装版本的安装过程是一样的,过程如下:
Microsoft Windows XP [版本 5.1.2600](C) 版权所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\Administrator\桌面>cd c:\mysql\bin
C:\mysql\bin>mysqld-debug --install mysql-debug --defaults-file=F:\mysql\my.iniService successfully installed.
C:\mysql\bin>net start mysql-debugmysql-debug 服务正在启动 .mysql-debug 服务已经启动成功。
C:\mysql\bin>mysql -uroot --port=3308Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 1 to server version: 5.0.19-community-debug-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.mysql>

posted @ 2009-10-10 14:03 筱 筱 阅读(269) | 评论 (0)编辑 收藏

仅列出标题
共9页: 上一页 1 2 3 4 5 6 7 8 9 下一页