<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 189,comments - 115,trackbacks - 0
    Tomcat&mysql

    SQL

    ??????? mysqlshow?? 數據庫結構查詢
    ??????? mysqlaccess 用戶權限查詢
    ??????? mysqladmin? 超級用戶管理工具
    ??????? mysqldump?????? dump工具
    ??????? isamchk???????? 檢查,優化,修補數據工具
    ??????? mysqlimport 從txt文件輸入數據庫
    ??????? mysql_install_db??????? 系統數據庫安裝腳本
    ??????? mysqld????????? 守護進程???????????????
    ??????? safe_mysqld???? 啟動腳本
    ???????
    ??????? 1.未在db表中列出的任意數據庫,user表中的權限都為有效.
    ??????? 可只在user表中設置某些superuser的權限,而在db表中不涉及.
    ??????? 2.host只用來維護有效的server,缺省為空表,即為局域網內
    ??????? 的所有機器.
    ??????? 3.可用mysql -u root mysql命令修改權限.
    ??????? 4.權限匹配時遵循的原則是:
    ??????????????? a. 表順序: host -> db -> user;
    ??????????????? b. host和db域可有通配符%和_,表示所有和單個字符;
    ??????????????? c. 同一表中,也是 host->db->user域的順序,無通配符優
    ??????????????? 于有通配符;
    ??????????????? d. user域為空(''),表示匹配所有其他的用戶;
    ??????????????? e. host可為機器名,localhost,IP,或通配符(如192.10.10.%),
    ??????????????????????? 但不允許用數字和點號開頭(如123.321.1.edu.cn);
    ??????????????? f. 各表中的權限最后相"或";
    ??????? 5.修改完之后,執行mysqladmin -u root reload更新.?
    ????????
    ???????
    Tomcat配置
    如果出現
    Unable to find a javac compiler;
    com.sun.tools.javac.Main is not on the classpath.
    Perhaps JAVA_HOME does not point to the JDK
    ...
    Tomcat ClassPath配置如下:
    C:\Program Files\Apache Software Foundation\Tomcat 5.0\bin\bootstrap.jar;C:\Program Files\Java\jdk1.5.0\lib\tools.jar


    MySQL配置
    c:\mysql\bin>mysqld     //啟動mysql的服務進程
    c:\mysql\bin\mysql -uroot? //連接到mysql數據庫
      mysql>update user set password=PASSWORD('<new_root_password>') where user='root';
      mysql>flush privileges;
      上面的操作是修改root用戶的密碼,'<new_root_password>'是你設置的密碼。

      mysql>create database gamedb;     //創建gamedb庫
      mysql>connect gamedb;        ? //連接到gamedb庫
      mysql>source gamedb.sql; ???????????? //gamedb初始化建表
    ??? mysql>GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER,
    ??????????????? CREATE, DROP, REFERENCES, LOCK TABLES,
    ??????????????? CREATE TEMPORARY TABLES
    ??????????????? ON gamedb.* TO gamedb@localhost IDENTIFIED BY '<gamedb_password>';
      mysql>flush privileges;
      上面是建立gamedb用戶,<gamedb_password>為gamedb用戶的密碼。

      mysql>exit;   //退出

    ?

    下載MySQL JDBC
    Connector/J 3.0.15-ga (MySQL.com提供的JDBC Driver)
    下載地址:http://dev.mysql.com/downloads/connector/j/3.0.html


    安裝JDBC
    mysql-connector-java-3.0.15-ga.zip解壓后將mysql-connector-java-3.0.15-ga-bin.jar 復制到%TOMCAT_HOME%\common\lib下


    配置Tomcat
    假設:數據庫:gamedb 用戶名:gamedb 密碼:gamedb

    第一步: http://127.0.0.1:8080,進入tomcat頁,用tomcat的 Tomcat Administration--->Resources--->Data Sources頁面添加,參數如下:

    JNDI Name:???????? jdbc/mysql
    Data Source URL:?? jdbc:mysql://localhost:3306/gamedb?autoReconnect=true&useUnicode=true&characterEncoding=GB2312
    JDBC Driver Class: com.mysql.jdbc.Driver
    User Name:???????? gamedb
    Password:????????? gamedb
    Max. Active Connections: 4
    Max. Idle Connections:?? 2
    Max. Wait for Connection:5000
    Validation Query ://不添


    第二步: 試頁內加入代碼你自己在mysql里建個表檢單測試一下吧,我這里以ght_users表為例,在你的應用下做一個測試用的test.jsp,然后http訪問這個jsp頁,test.jsp代碼如下

    <%@ page contentType = "text/html; charset=gb2312" %>
    <%@ page import = "java.sql.*" %>
    <%@ page import = "javax.naming.*" %>
    <%@ page import = "javax.sql.*" %>
    <%
    Context ctx=null;
    DataSource ds=null;
    Connection conn=null;
    Statement stmt=null;
    ResultSet rs=null;

    try{
    ?ctx = new InitialContext();
    ?if( ctx == null )
    ??out.println("no context");
    ?ds = (DataSource) ctx.lookup("java:comp/env/jdbc/mysql");
    ?if( ds == null )
    ??out.println("no datasource");
    ?conn = ds.getConnection();
    ?stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
    ??ResultSet.CONCUR_READ_ONLY);
    ?String strSql = " select * from ght_users";
    ?rs = stmt.executeQuery(strSql);
    ?while(rs.next()){
    ??out.println(rs.getString(1));
    ?}
    }
    catch(Exception ex){
    ?ex.printStackTrace();
    ?out.println(ex.toString());
    }
    finally{
    ?if( rs != null )
    ??rs.close();
    ?if( stmt != null )
    ??stmt.close();
    ?if( conn != null)
    ??conn.close();
    ?if( ctx != null )
    ??ctx.close();
    }
    %>

    ?

    常見問題
    Q:出現javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
    A: 在yourWebApp\WEB-INF\web.xml中增加
    ??? <resource-ref>
    ??????? <description>jdbc/mysql</description>
    ??????? <res-ref-name>jdbc/mysql</res-ref-name>
    ??????? <res-type>javax.sql.DataSource</res-type>
    ??????? <res-auth>Container</res-auth>
    ??? </resource-ref>

    Q:出現org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '?' for onnect URL 'null',這是為什么?

    A: 在%TOMCAT_HOME%\conf\Catalina\localhost下找到你的web應用對應的.xml文件,如test.xml,并在此文件的下添入代碼:
    <ResourceLink name="jdbc/mysql" global="jdbc/mysql" type="javax.sql.DataSourcer"/>

    重啟tomcat。
    注意:

    for tomcat-5.0.18
    i use ROOT in tomcat as by web app i put the following entry in E:\jakarta-tomcat-5.0.18\conf\Catalina\localhost\ROOT.xml file
    for tomcat-4.1.18
    i use ROOT in tomcat as my webapp i put the following entry in E:\qrules\tomcat\jakarta-tomcat-4.1.18\conf\server.xml

    <ResourceLink name="jdbc/quickstart" type="javax.sql.DataSource" global="jdbc/quickstart"/>

    Web界面配DBCP時,生成的是服務器的全局JNDI資源,查看%TOMCAT_HOME%\conf\server.xml可以得知tomcat修改了server.xml,在<server>下的<GlobalNamingResources>下添入了一些數據后的server.xml:


    <?xml version='1.0' encoding='utf-8'?>
    <Server>
    ? <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
    ? <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
    ? <GlobalNamingResources>
    ??? <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
    ??? <Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" type="org.apache.catalina.UserDatabase"/>
    ??? <Resource name="jdbc/mysql" type="javax.sql.DataSource"/>
    ??? <ResourceParams name="UserDatabase">
    ????? <parameter>
    ??????? <name>factory</name>
    ??????? <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
    ????? </parameter>
    ????? <parameter>
    ??????? <name>pathname</name>
    ??????? <value>conf/tomcat-users.xml</value>
    ????? </parameter>
    ??? </ResourceParams>
    ??? <ResourceParams name="jdbc/mysql">
    ????? <parameter>
    ??????? <name>maxWait</name>
    ??????? <value>5000</value>
    ????? </parameter>
    ????? <parameter>
    ??????? <name>maxActive</name>
    ??????? <value>4</value>
    ????? </parameter>
    ????? <parameter>
    ??????? <name>password</name>
    ??????? <value>gamedb</value>
    ????? </parameter>
    ????? <parameter>
    ??????? <name>url</name>
    ??????? <value>jdbc:mysql://localhost:3306/gamedb?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=GB2312</value>
    ????? </parameter>
    ????? <parameter>
    ??????? <name>driverClassName</name>
    ??????? <value>com.mysql.jdbc.Driver</value>
    ????? </parameter>
    ????? <parameter>
    ??????? <name>maxIdle</name>
    ??????? <value>2</value>
    ????? </parameter>
    ????? <parameter>
    ??????? <name>username</name>
    ??????? <value>gamedb</value>
    ????? </parameter>
    ?? <parameter>
    ???? <name>factory</name>
    ???? <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    ?? </parameter>
    ??? </ResourceParams>
    ? </GlobalNamingResources>
    ? <Service name="Catalina">
    ??? <Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="8080" redirectPort="8443" maxSpareThreads="75" maxThreads="150" minSpareThreads="25">
    ??? </Connector>
    ??? <Connector port="8009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443">
    ??? </Connector>
    ??? <Engine defaultHost="localhost" name="Catalina">
    ????? <Host appBase="webapps" name="localhost">
    ??????? <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/>
    ????? </Host>
    ????? <Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/>
    ????? <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
    ??? </Engine>
    ? </Service>
    </Server>

    ?

    Q:如何配制DBCP只應用于指定的web application呢?

    A:tomcat 5.x以后將web application的從server.xml里分離了出來,放在了 %TOMCAT_HOME%\conf\Catalina\localhost下,如你的應用為test, 那么在這個目錄下就會有一個相應的test.xml與之對應,如:

    <?xml version='1.0' encoding='utf-8'?>
    <Context displayName="Tomcat Test Application"
    ? docBase="C:/Program Files/Apache Software Foundation/Tomcat 5.5/server/webapps/test" path="/test" privileged="true" workDir="work\Catalina\localhost\test">
    ? ...
    </Context>

    ?

    Q:我如何解決中亂碼問題?

    A:在配制mysql的數據庫url時我們加入了useUnicode=true&characterEncoding=GB2312參數,指定數據庫編碼方式為GB2312,其它還需要做的就是常用的一些方式,如指定 <%@ page contentType = "text/html; charset=gb2312" %>、使用filter等,這方面的資料很多,這里不再累述。

    這里需要注意的是url中的“&“符號,如果手動在.xml內配制時,需將其轉換為“&”

    posted on 2006-03-25 20:13 MEYE 閱讀(552) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 花蝴蝶免费视频在线观看高清版| 久久久久av无码免费网| 国产AV无码专区亚洲精品| 91精品国产免费久久国语蜜臀| 亚洲中文字幕一二三四区苍井空 | 亚洲精品免费网站| 免费a级毛片视频| 久久ww精品w免费人成| 色偷偷亚洲男人天堂| 亚洲成A∨人片在线观看不卡| 成年女人毛片免费视频| 岛国岛国免费V片在线观看| 精品久久久久久亚洲精品| 国产成人精品日本亚洲专区| av无码久久久久不卡免费网站 | 无码A级毛片免费视频内谢| 亚洲精品国产精品| 亚洲AV无码国产精品麻豆天美 | 亚洲1区1区3区4区产品乱码芒果| 午夜国产大片免费观看| 最近高清中文字幕免费| sss日本免费完整版在线观看| 亚洲一区动漫卡通在线播放| 亚洲人成网7777777国产| 日韩免费毛片视频| 久久精品免费一区二区| 9久热这里只有精品免费| 国产精品自拍亚洲| 精品亚洲成在人线AV无码| 久久亚洲精品视频| 亚洲第一页日韩专区| 成年人在线免费观看| 最近在线2018视频免费观看| 中文字幕在线免费看线人| 日日摸夜夜添夜夜免费视频 | 亚洲国产综合精品中文第一| 亚洲AV福利天堂一区二区三| 亚洲视频在线一区二区| 麻豆国产人免费人成免费视频| 亚洲一区免费视频| 少妇人妻偷人精品免费视频|