姚絲麥
          來的太晚,去的太快

          2008年7月14日

          //轉載自:飛揚部落編程倉庫 : http://www.busfly.cn/csdn/

          show databases;
          show tables from db_name;

          show columns from table_name from db_name;
          show index from talbe_name [from db_name];

          show status;
          show variables;

          show [full] processlist;
          show table status [from db_name];

          show grants for user;

          除了status,processlist和grants外,其它的都可以帶有like wild選項,它可以使用SQL的'%'和'_'字符;

          show databases like '%t';

          將會列出所有數據庫名字末尾為't'字符的數據庫


          當然了,在這些sql中,你也可以用db_name.table_name來代替 table_name from db_name這樣寫會更簡便些!

          如果一個用戶沒有一個表的任何權限,表將不在SHOW TABLESmysqlshow db_name中的輸出中顯示

          大家可能還記得describe table_name ,它實現的是與show columns from db_name.table_name一樣的效果

          show status將可以用mysqlshow --status 來得到同樣的效果

          show status將可以用mysqlshow --status 來得到同樣的效果

          含義
          Name 表名
          Type 表的類型 (ISAM,MyISAM或HEAP)
          Row_format 行存儲格式 (固定, 動態, 或壓縮)
          Rows 行數量
          Avg_row_length 平均行長度
          Data_length 數據文件的長度
          Max_data_length 數據文件的最大長度
          Index_length 索引文件的長度
          Data_free 已分配但未使用了字節數
          Auto_increment 下一個 autoincrement(自動加1)值
          Create_time 表被創造的時間
          Update_time 數據文件最后更新的時間
          Check_time 最后對表運行一個檢查的時間
          Create_options CREATE TABLE一起使用的額外選項
          Comment 當創造表時,使用的注釋 (或為什么MySQL不能存取表信息的一些信息)。

          SHOW FIELDSSHOW COLUMNS一個同義詞,SHOW KEYSSHOW INDEX一個同義詞。你也可以用mysqlshow db_name tbl_namemysqlshow -k db_name tbl_name 列出一張表的列或索引。

          SHOW INDEX以非常相似于ODBC的SQLStatistics調用的格式返回索引信息。下面的列被返回:

          含義
          Table 表名
          Non_unique 0,如果索引不能包含重復。
          Key_name 索引名
          Seq_in_index 索引中的列順序號, 從 1 開始。
          Column_name 列名。
          Collation 列怎樣在索引中被排序。在MySQL中,這可以有值A(升序) 或NULL(不排序)。
          Cardinality 索引中唯一值的數量。這可通過運行isamchk -a更改.
          Sub_part 如果列只是部分被索引,索引字符的數量。NULL,如果整個鍵被索引。

          SHOW STATUS提供服務器的狀態信息(象mysqladmin extended-status一樣)。輸出類似于下面的顯示,盡管格式和數字可以有點不同:

          +--------------------------+--------+
          | Variable_name | Value |
          +--------------------------+--------+
          | Aborted_clients | 0 |
          | Aborted_connects | 0 |
          | Connections | 17 |
          | Created_tmp_tables | 0 |
          | Delayed_insert_threads | 0 |
          | Delayed_writes | 0 |
          | Delayed_errors | 0 |
          | Flush_commands | 2 |
          | Handler_delete | 2 |
          | Handler_read_first | 0 |
          | Handler_read_key | 1 |
          | Handler_read_next | 0 |
          | Handler_read_rnd | 35 |
          | Handler_update | 0 |
          | Handler_write | 2 |
          | Key_blocks_used | 0 |
          | Key_read_requests | 0 |
          | Key_reads | 0 |
          | Key_write_requests | 0 |
          | Key_writes | 0 |
          | Max_used_connections | 1 |
          | Not_flushed_key_blocks | 0 |
          | Not_flushed_delayed_rows | 0 |
          | Open_tables | 1 |
          | Open_files | 2 |
          | Open_streams | 0 |
          | Opened_tables | 11 |
          | Questions | 14 |
          | Slow_queries | 0 |
          | Threads_connected | 1 |
          | Threads_running | 1 |
          | Uptime | 149111 |
          +--------------------------+--------+

          上面列出的狀態變量有下列含義:

          Aborted_clients 由于客戶沒有正確關閉連接已經死掉,已經放棄的連接數量。
          Aborted_connects 嘗試已經失敗的MySQL服務器的連接的次數。
          Connections 試圖連接MySQL服務器的次數。
          Created_tmp_tables 當執行語句時,已經被創造了的隱含臨時表的數量。
          Delayed_insert_threads 正在使用的延遲插入處理器線程的數量。
          Delayed_writes INSERT DELAYED寫入的行數。
          Delayed_errors INSERT DELAYED寫入的發生某些錯誤(可能重復鍵值)的行數。
          Flush_commands 執行FLUSH命令的次數。
          Handler_delete 請求從一張表中刪除行的次數。
          Handler_read_first 請求讀入表中第一行的次數。
          Handler_read_key 請求數字基于鍵讀行。
          Handler_read_next 請求讀入基于一個鍵的一行的次數。
          Handler_read_rnd 請求讀入基于一個固定位置的一行的次數。
          Handler_update 請求更新表中一行的次數。
          Handler_write 請求向表中插入一行的次數。
          Key_blocks_used 用于關鍵字緩存的塊的數量。
          Key_read_requests 請求從緩存讀入一個鍵值的次數。
          Key_reads 從磁盤物理讀入一個鍵值的次數。
          Key_write_requests 請求將一個關鍵字塊寫入緩存次數。
          Key_writes 將一個鍵值塊物理寫入磁盤的次數。
          Max_used_connections 同時使用的連接的最大數目。
          Not_flushed_key_blocks 在鍵緩存中已經改變但是還沒被清空到磁盤上的鍵塊。
          Not_flushed_delayed_rows INSERT DELAY隊列中等待寫入的行的數量。
          Open_tables 打開表的數量。
          Open_files 打開文件的數量。
          Open_streams 打開流的數量(主要用于日志記載)
          Opened_tables 已經打開的表的數量。
          Questions 發往服務器的查詢的數量。
          Slow_queries 要花超過long_query_time時間的查詢數量。
          Threads_connected 當前打開的連接的數量。
          Threads_running 不在睡眠的線程數量。
          Uptime 服務器工作了多少秒。

          關于上面的一些注釋:

          • 如果Opened_tables太大,那么你的table_cache變量可能太小。
          • 如果key_reads太大,那么你的key_cache可能太小。緩存命中率可以用key_reads/key_read_requests計算。
          • 如果Handler_read_rnd太大,那么你很可能有大量的查詢需要MySQL掃描整個表或你有沒正確使用鍵值的聯結(join)。

          SHOW VARIABLES顯示出一些MySQL系統變量的值,你也能使用mysqladmin variables命令得到這個信息。如果缺省值不合適,你能在mysqld啟動時使用命令行選項來設置這些變量的大多數。輸出類似于下面的顯示,盡管格式和數字可以有點不同:

          +------------------------+--------------------------+
          | Variable_name | Value |
          +------------------------+--------------------------+
          | back_log | 5 |
          | connect_timeout | 5 |
          | basedir | /my/monty/ |
          | datadir | /my/monty/data/ |
          | delayed_insert_limit | 100 |
          | delayed_insert_timeout | 300 |
          | delayed_queue_size | 1000 |
          | join_buffer_size | 131072 |
          | flush_time | 0 |
          | interactive_timeout | 28800 |
          | key_buffer_size | 1048540 |
          | language | /my/monty/share/english/ |
          | log | OFF |
          | log_update | OFF |
          | long_query_time | 10 |
          | low_priority_updates | OFF |
          | max_allowed_packet | 1048576 |
          | max_connections | 100 |
          | max_connect_errors | 10 |
          | max_delayed_threads | 20 |
          | max_heap_table_size | 16777216 |
          | max_join_size | 4294967295 |
          | max_sort_length | 1024 |
          | max_tmp_tables | 32 |
          | net_buffer_length | 16384 |
          | port | 3306 |
          | protocol-version | 10 |
          | record_buffer | 131072 |
          | skip_locking | ON |
          | socket | /tmp/mysql.sock |
          | sort_buffer | 2097116 |
          | table_cache | 64 |
          | thread_stack | 131072 |
          | tmp_table_size | 1048576 |
          | tmpdir | /machine/tmp/ |
          | version | 3.23.0-alpha-debug |
          | wait_timeout | 28800 |
          +------------------------+--------------------------+

          SHOW PROCESSLIST顯示哪個線程正在運行,你也能使用mysqladmin processlist命令得到這個信息。
          如果你有process權限, 你能看見所有的線程,否則,你僅能看見你自己的線程。
          見7.20 KILL句法。如果你不使用FULL選項,那么每個查詢只有頭100字符被顯示出來。

          SHOW GRANTS FOR user列出對一個用戶必須發出以重復授權的授權命令。

          mysql> SHOW GRANTS FOR root@localhost;
          +---------------------------------------------------------------------+
          | Grants for root@localhost |
          +---------------------------------------------------------------------+
          | GRANT ALL PRIVILEGES ON *.* TO 'root''localhost' WITH GRANT OPTION |
          +---------------------------------------------------------------------+

          posted @ 2008-07-14 14:19 姚絲麥 閱讀(337) | 評論 (0)編輯 收藏

          2008年7月9日

          首先在eclipse下新建一個名為jndi的動態web項目;
          打開其目錄下的web.xml,進行配置:

          <?xml version="1.0" encoding="UTF-8"?>
          <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
              
          <display-name>
              jndi
          </display-name>
              
              
          <resource-ref>
                
          <res-ref-name>jdbc/oracle</res-ref-name>
                
          <res-type>javax.sql.DataSource</res-type>
                
          <res-auth>Container</res-auth>
              
          </resource-ref>

              
              
          <welcome-file-list>
                  
          <welcome-file>index.html</welcome-file>
                  
          <welcome-file>index.htm</welcome-file>
                  
          <welcome-file>index.jsp</welcome-file>
                  
          <welcome-file>default.html</welcome-file>
                  
          <welcome-file>default.htm</welcome-file>
                  
          <welcome-file>default.jsp</welcome-file>
              
          </welcome-file-list>
          </web-app>


          然后對server.xml進行配置:
          <?xml version="1.0" encoding="UTF-8"?>
          <Server>
            
          <Listener className="org.apache.catalina.core.AprLifecycleListener"/>
            
          <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
            
          <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>
            
          <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
            
          <GlobalNamingResources>
              
          <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
              
          <Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>
            
          </GlobalNamingResources>
            
          <Service name="Catalina">
              
          <Connector connectionTimeout="20000" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" port="80" redirectPort="8443">
              
          </Connector>
              
          <Connector connectionTimeout="-1" port="8009" protocol="AJP/1.3" redirectPort="8443">
              
          </Connector>
              
          <Engine defaultHost="localhost" name="Catalina">
                
          <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
                
          <Host appBase="webapps" name="localhost">
                    
          <Context docBase="jndi" path="/jndi" reloadable="true" source="org.eclipse.jst.j2ee.server:jndi">
                        
          <Resource
                        
          name="jdbc/oracle"
                        type
          ="javax.sql.DataSource"
                        driverClassName
          ="oracle.jdbc.driver.OracleDriver"
                        password
          ="tiger"
                        maxIdle
          ="2"
                        maxWait
          ="5000"
                        username
          ="scott"
                        url
          ="jdbc:oracle:thin:@localhost:1521:guitar"
                        maxActive
          ="4"/>
                    
          </Context>

                
          </Host>
              
          </Engine>
            
          </Service>
          </Server>

          最后寫一個名為test.jsp的測試頁面
          <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
          <%@ page import="java.sql.*"%>
          <%@ page import="javax.sql.*"%>
          <%@ page import="javax.naming.*"%>
          <%!final String JNDINAME = "java:comp/env/jdbc/oracle";%>
          <%
              Connection conn 
          = null;
              try {
                  
          // 初始化查找命名空間
                  Context ctx 
          = new InitialContext();
                  
          // 找到DataSource
                  DataSource ds 
          =
           (DataSource) ctx.lookup(JNDINAME);
                  conn 
          = ds.getConnection();
                  Statement st 
          = conn.createStatement();
                  ResultSet rs 
          = st.executeQuery("select * from emp");
                  
          while (rs.next()) {
                      
          int size = rs.getMetaData().getColumnCount();
                      
          for (int i = 1; i <= size; i++) {
                          out.println(rs.getString(i) 
          + "<br/>");
                      }
                  }

              } catch (Exception e) {
                  System.out.println(e);
              }
          %>
          <%=conn%>
          <%
              
          // 將連接重新放回到池中
              conn.close();
          %>

          至此,配置對oracle的jndi數據源已經列出相關最重要的配置代碼,需要注意的是,必須在項目中導入相對應的數據庫驅動jar包,本例子中導入ojdbc14.jar.需要注意的是代碼中加粗部分,可能需要根據你的實際情況有所改變,JNDINAME的名字是一一對應的.server.xml的配置有許多方法,這里就不一一細述,網上例子很多.

          本人水平有限,歡迎高手和我交流批評^_^

          posted @ 2008-07-09 08:55 姚絲麥 閱讀(2790) | 評論 (2)編輯 收藏
          僅列出標題  
           
          主站蜘蛛池模板: 清原| 平利县| 沙坪坝区| 青铜峡市| 吴堡县| 江源县| 东城区| 神木县| 陈巴尔虎旗| 济阳县| 镇原县| 上虞市| 漯河市| 五家渠市| 巨野县| 宜川县| 策勒县| 蓝田县| 八宿县| 焉耆| 英超| 方正县| 和林格尔县| 柘城县| 金乡县| 孝感市| 陈巴尔虎旗| 永安市| 四子王旗| 竹北市| 德安县| 宜兰县| 长兴县| 富宁县| 嘉善县| 兴国县| 公安县| 达州市| 葫芦岛市| 鹤壁市| 民和|