posts - 122,  comments - 25,  trackbacks - 0
          1、JVM設(shè)置:

          找到%TOMCAT_HOME%/bin/catalina.sh, 找到如下代碼:

          # ----- Execute The Requested Command -----------------------------------------

          并加入如下設(shè)置:
          CATALINA_OPTS="$CATALINA_OPTS -Xms128m -Xmx256m $JPDA_OPTS"

          最小內(nèi)存128M,最大256M,按你的要求設(shè)置,不過最大只能1024M。

          2、圖片不能顯示:
          若Linux系統(tǒng)在字符模式下, 處理圖片用時,須作如下設(shè)置:
          JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"

          posted @ 2007-11-30 12:35 josson 閱讀(1045) | 評論 (1)編輯 收藏

           Source Installation Overview
          ----------------------------------

          The basic commands you must execute to install a MySQL source
          distribution are:

               shell> groupadd mysql
               shell> useradd -g mysql mysql
               shell> gunzip < mysql-VERSION.tar.gz | tar -xvf -
               shell> cd mysql-VERSION
               shell> ./configure --prefix=/usr/local/mysql
               shell> make
               shell> make install
               shell> cp support-files/my-medium.cnf /etc/my.cnf
               shell> cd /usr/local/mysql
               shell> bin/mysql_install_db --user=mysql
               shell> chown -R root  .
               shell> chown -R mysql var
               shell> chgrp -R mysql .
               shell> bin/mysqld_safe --user=mysql &

          If you start from a source RPM, do the following:

               shell> rpmbuild --rebuild --clean MySQL-VERSION.src.rpm

          Set Root Password for MySQL
           /usr/local/bin/mysqladmin -u root password 'new-password'


          使用GRANT ... IDENTIFIED BY語句,來進(jìn)行授權(quán)
          GRANT select,insert,delete,update on dbname.* to  user@'%' IDENTIFIED BY 'manager';
          這里PASSWORD()函數(shù)是不必要的,也不需要使用FLUSH PRIVILEGES來執(zhí)行確認(rèn)
          posted @ 2007-11-28 19:54 josson 閱讀(396) | 評論 (0)編輯 收藏
          Mysql數(shù)據(jù)庫介紹
          MySQL是一個真正的多用戶、多線程SQL數(shù)據(jù)庫服務(wù)器。SQL(結(jié)構(gòu)化查詢語言)是世界上最流行的和標(biāo)準(zhǔn)
          化的數(shù)據(jù)庫語言。MySQL是以一個客戶機(jī)/服務(wù)器結(jié)構(gòu)的實(shí)現(xiàn),它由一個服務(wù)器守護(hù)程序mysqld和很多不同的
          客戶程序和庫組成。
          SQL是一種標(biāo)準(zhǔn)化的語言,它使得存儲、更新和存取信息更容易。例如,你能用SQL語言為一個網(wǎng)站檢索
          產(chǎn)品信息及存儲顧客信息,同時MySQL也足夠快和靈活以允許你存儲記錄文件和圖像。
          MySQL 主要目標(biāo)是快速、健壯和易用。最初是因?yàn)槲覀冃枰@樣一個SQL服務(wù)器,它能處理與任何可不昂
          貴硬件平臺上提供數(shù)據(jù)庫的廠家在一個數(shù)量級上的大型數(shù)據(jù)庫,但速度更快,MySQL就開發(fā)出來。自1996年以
          來,我們一直都在使用MySQL,其環(huán)境有超過 40 個數(shù)據(jù)庫,包含 10,000個表,其中500多個表超過7百萬行
          ,這大約有100 個吉字節(jié)(GB)的關(guān)鍵應(yīng)用數(shù)據(jù)。
          Mysql數(shù)據(jù)庫特點(diǎn)
          1. 使用核心線程的完全多線程。這意味著它能很容易地利用多CPU(如果有)。
          2. 可運(yùn)行在不同的平臺上。
          3. 多種列類型:1、 2、 3、4、和 8 字節(jié)長度的有符號/無符號整數(shù)(INT)、FLOAT、DOUBLE、CHAR、
          VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、 TIMESTAMP、YEAR、SET和ENUM類型。
          4. 利用一個優(yōu)化的一遍掃描多重聯(lián)結(jié)(one-sweep multi-join)非??焖俚剡M(jìn)行聯(lián)結(jié)(join)。
          5. 在查詢的SELECT和WHERE部分支持全部運(yùn)算符和函數(shù)。
          6. 通過一個高度優(yōu)化的類庫實(shí)現(xiàn)SQL函數(shù)庫并且像他們能達(dá)到的一樣快速,通常在查詢初始化后不應(yīng)該有任
          何內(nèi)存分配。
          7. 全面支持SQL的GROUP BY和ORDER BY子句,支持聚合函數(shù)( COUNT()、COUNT(DISTINCT)、AVG()、STD()、
          SUM()、 MAX()和MIN() )。
          8. 支持ANSI SQL的LEFT OUTER JOIN和ODBC語法。
          9. 你可以在同一查詢中混用來自不同數(shù)據(jù)庫的表。
          10. 一個非常靈活且安全的權(quán)限和口令系統(tǒng),并且它允許基于主機(jī)的認(rèn)證。口令是安全的,因?yàn)楫?dāng)與一個服
          務(wù)器連接時,所有的口令傳送被加密。
          11. ODBC for Windiws 95。
          12. 具備索引壓縮的快速B樹磁盤表。
          13. 每個表允許有16個索引。每個索引可以由1~16個列或列的一部分組成。最大索引長度是 256 個字節(jié)(在
          編譯MySQL時,它可以改變)。一個索引可以使用一個CHAR或VARCHAR字段的前綴。
          14. 定長和變長記錄。
          15. 用作臨時表的內(nèi)存散列表。
          16. 大數(shù)據(jù)庫處理。我們正在對某些包含 50,000,000 個記錄的數(shù)據(jù)庫使用MySQL。
          17. 所有列都有缺省值,你可以用INSERT插入一個表列的子集,那些沒用明確給定值的列設(shè)置為他們的缺省
          值。
          18. 一個非常快速的基于線程的內(nèi)存分配系統(tǒng)。
          19. 沒有內(nèi)存漏洞。用一個商用內(nèi)存漏洞監(jiān)測程序測試過(purify)。
          20. 包括myisamchk,一個檢查、優(yōu)化和修復(fù)數(shù)據(jù)庫表的快速實(shí)用程序。
          21. 全面支持ISO-8859-1 Latin1 字符集。
          22. 所有數(shù)據(jù)以 ISO-8859-1 Latin1 格式保存。所有正常的字符串比較是忽略大小寫的。
          23. DELETE、INSERT、REPLACE和UPDATE 返回有多少行被改變(受影響)。
          24. 函數(shù)名不會與表或列名沖突。例如ABS是一個有效的列名字。對函數(shù)調(diào)用的唯一限制是函數(shù)名與隨后的
          "("不能有空格。
          25. 所有MySQL程序可以用選項(xiàng)--help或-?獲得聯(lián)機(jī)幫助。
          26. 服務(wù)器能為客戶提供多種語言的出錯消息。
          27. 客戶端使用TCP/IP 連接或Unix套接字(socket)或NT下的命名管道連接MySQL。
          28. MySQL特有的SHOW命令可用來檢索數(shù)據(jù)庫、表和索引的信息,EXPLAIN命令可用來確定優(yōu)化器如何解決一
          個查詢。

          MySQL服務(wù)器的啟動與停止
          一、啟動服務(wù)器的方法
          啟動服務(wù)器由三種主要方法:
          1、 直接調(diào)用mysqld。
          #./mysqld&
          這可能是最不常用的方法,建議不要多使用。
          2、調(diào)用safe_mysqld腳本,最好的方法。
          #./safe_mysqld -O join_buffer=128M -O key_buffer=128M -O record_buffer=256M -O sort_buffer=128M -O table_cache=2048 -O tmp_table_size=16M -O max_connections=2048 &
          3、調(diào)用mysql.server腳本。
          safe_mysqld腳本安裝在MySQL安裝目錄的bin目錄下,或可在MySQL源代碼分發(fā)的scripts目錄下找到。
          mysql.server腳本安裝在MySQL安裝目錄下的share/mysqld目錄下或可以在MySQL源代碼分發(fā)的support_files
          目錄下找到。如果你想使用它們,你需要將它們拷貝到適當(dāng)?shù)哪夸浵耺ysql/bin下。
          #./mysql.server start
          Sun Solariys開機(jī)自動啟mysql的方法
          寫一個啟動和關(guān)閉的批處理文件Web (在路徑/etc/init.d 下), 內(nèi)容如下:
          #!/bin/sh
          OPT_=$1
          case "$OPT_" in
          start)
          /bin/echo "$0 : (start)"
          #
          # Your service startup command goes here.
          #
          /usr/local/apache/bin/apachectl start
          /home3/mysql/bin/safe_mysqld -O join_buffer=128M -O key_buffer=128M -O record_buffer=256M -O sort_buffer=128M -O table_cache=2048 -O tmp_table_size=16M -O max_connections=2048 &
          # NOTE: Must exit with zero unless error is severe.
          exit 0
          ;;
          stop)
          /bin/echo "$0 : (stop)"
          #
          # Your service shutdown command goes here.
          #
          /usr/local/apache/bin/apachectl stop
          # NOTE: Must exit with zero unless error is severe.
          exit 0
          ;;
          *) /bin/echo ''
          /bin/echo "Usage: $0 [start|stop]"
          /bin/echo " Invalid argument ==> \"${OPT_}\""
          /bin/echo ''
          exit 0
          ;;
          esac
          確認(rèn)此文件有可執(zhí)行的權(quán)利
          #chmod 500 web
          #cd /etc/rc2.d
          #ln -s ../init.d/web S99mysql
          在系統(tǒng)啟動時,S99mysql腳本將自動用一個start參數(shù)調(diào)用。注意頭字母必須大寫。
          二、停止服務(wù)器的方法
          1、要手工停止服務(wù)器,使用mysqladmin:
          #mysqladmin -u 用戶名 -p'密碼' shutdown
          2、 調(diào)用mysql.server腳本,最好的方法。
          #./mysql.server stop
          3、 直接殺掉OS的進(jìn)程號
          #kill -9 進(jìn)程號
          這可能是最不常用的方法,建議不要多使用。
          要自動停止服務(wù)器,你不需做特別的事情。只需要加另外一個關(guān)閉程序。
          #cd /etc/rc0.d
          #ln -s ../init.d/web K01mysql
          在系統(tǒng)啟動時,K01mysql腳本將自動用一個stop參數(shù)調(diào)用。
          MySQL目錄結(jié)構(gòu)和常用命令
          一、 數(shù)據(jù)目錄的位置
          這是默認(rèn)的mysql目錄結(jié)構(gòu)
          bin info libexec share var
          include lib man sql-bench
          一個缺省數(shù)據(jù)目錄被編譯進(jìn)了服務(wù)器,如果你從一個源代碼分發(fā)安裝MySQL,典型的缺省目錄為
          /usr/local/var,如果從RPM文件安裝則為/var/lib/mysql,如果從一個二進(jìn)制分發(fā)安裝則是
          /usr/local/mysql/data。
          作為一名MySQL管理員,你應(yīng)該知道你的數(shù)據(jù)目錄在哪里。如果你運(yùn)行多個服務(wù)器,你應(yīng)該是到所有數(shù)據(jù)目錄
          在哪里,但是如果你不知道確切的位置,由多種方法找到它:
          1、使用mysqladmin variables從你的服務(wù)器直接獲得數(shù)據(jù)目錄路徑名。查找datadir變量的值,在Unix上,其輸出類似于:
          %mysqladmin -u username -p'*****' variables
          +----------------------+----------------------+
          | variable_name | Value |
          +----------------------+----------------------+
          | back_log | 5 |
          | connect_timeout | 5 |
          | basedir | /var/local/ |
          | datadir | /usr/local/var/ |
          ....
          2、查找mysql運(yùn)行的路徑
          %ps -ef | grep mysqld
          二、數(shù)據(jù)目錄結(jié)構(gòu)
          每個數(shù)據(jù)庫對應(yīng)于數(shù)據(jù)目錄下的一個目錄。
          在一個數(shù)據(jù)庫中的表對應(yīng)于數(shù)據(jù)目錄下的文件。
          數(shù)據(jù)目錄也包含由服務(wù)器產(chǎn)生的幾個狀態(tài)文件,如日志文件。這些文件提供了關(guān)于服務(wù)器操作的重要信息。
          對管理特別在出了問題而試圖確定問題原因時很有價值。
          1、數(shù)據(jù)庫表的表示
          數(shù)據(jù)庫目錄中有3種文件:一個樣式(描述文件)、一個數(shù)據(jù)文件和一個索引文件。每個文件的基本名是表
          名,文件名擴(kuò)展名代表文件類型。擴(kuò)展名如下表。數(shù)據(jù)和索引文件的擴(kuò)展名指出表使用老式IASM索引或新式
          MyISAM索引。
          MySQL文件類型
          文件類型 文件名擴(kuò)展名 文件內(nèi)容
          樣式文件 .frm 描述表的結(jié)構(gòu)(它的列、列類型、索引等)
          數(shù)據(jù)文件 .ISD(ISAM)或.MYD(MyISAM) 包含表里所有的數(shù)據(jù)
          索引文件 .ISM(ISAM)或.MYI(MyISAM) 包含數(shù)據(jù)文件上的所有索引的索引樹

          當(dāng)你發(fā)出一條CREATE TABLE tbl_name時語句定義表的結(jié)構(gòu)時,服務(wù)器創(chuàng)建一個名為tbl_name.frm的文件,它
          包括該結(jié)構(gòu)的內(nèi)部編碼,同時也創(chuàng)建一個空數(shù)據(jù)和索引文件,初始化為包含指出無記錄和無索引的信息(如
          果CREATE TABLE語句包括索引指定,索引文件反映出這些索引)。對應(yīng)于表的文件的屬主和模式被設(shè)置為只
          允許MySQL服務(wù)器用戶訪問。
          下面介紹一下常用的mysql命令
          進(jìn)入mysql數(shù)據(jù)庫
          #./mysql -u 用戶名 -p'密碼'
          查看所有的數(shù)據(jù)庫
          mysql> show databases;
          進(jìn)入一個特定的數(shù)據(jù)庫
          mysql> use 數(shù)據(jù)庫名;
          查看數(shù)據(jù)庫里所有的表
          mysql> show tables;
          把表改名
          mysql> alter table 表名1 rename 表名2;
          例子:mysql>alter table dept rename dept2;
          2、 建索引的注意事項(xiàng):
          先要把要加索引的字段設(shè)為非空
          mysql> alter table 表名 change 字段名 字段名 字段描述 not null;
          例子:
          我們創(chuàng)建這樣一個表
          mysql> create table employee
          ( id int(5) not null,
          depno int(5),
          name varchar(20) not null,
          cardnumber bigint(15) not null);
          mysql> alter table employee change depno depno int(5) not null;
          加索引
          mysql> alter table 表名 add index 索引名 (字段名1[,字段名2 …]);
          例子: mysql> alter table employee add index emp_name (name);
          加主關(guān)鍵字的索引
          mysql> alter table 表名 add primary key (字段名);
          例子: mysql> alter table employee add primary key(id);
          加唯一限制條件的索引
          mysql> alter table 表名 add unique 索引名 (字段名);
          例子: mysql> alter table employee add unique emp_name2(cardnumber);
          查看某個表的索引
          mysql> show index from 表名;
          例子: mysql> show index from employee;
          刪除某個索引
          mysql> alter table 表名 drop index 索引名;
          例子: mysql>alter table employee drop index emp_name;
          MySQL用戶管理
          MySQL管理員應(yīng)該知道如何設(shè)置MySQL用戶賬號,指出哪個用戶可以連接服務(wù)器,從哪里連接,連接后能做什
          么。MySQL 3.22.11開始引入兩條語句使得這項(xiàng)工作更容易做:GRANT語句創(chuàng)建MySQL用戶并指定其權(quán)限,而
          REVOKE語句刪除權(quán)限。兩條語句扮演了mysql數(shù)據(jù)庫的前端角色,并提供與直接操作這些表的內(nèi)容不同的另一
          種方法。CREATE和REVOKE語句影響4個表:
          授權(quán)表內(nèi)容:
          user 能連接服務(wù)器的用戶以及他們擁有的任何全局權(quán)限
          db 數(shù)據(jù)庫級權(quán)限
          tables_priv 表級權(quán)限
          columns_priv 列級權(quán)限
          還有第5個授權(quán)表(host),但它不受GRANT和REVOKE的影響。
          當(dāng)你對一個用戶發(fā)出一條GRANT語句時,在user表中為該用戶創(chuàng)建一條記錄。如果語句指定任何全局權(quán)限(管
          理權(quán)限或適用于所有數(shù)據(jù)庫的權(quán)限),這些也記錄在user表中。如果你指定數(shù)據(jù)庫、表和列級權(quán)限,他們被
          分別記錄在db、tables_priv和columns_priv表中。
          在下面的章節(jié)中,我們將介紹如何設(shè)置MySQL用戶賬號并授權(quán)。我們也涉及如何撤權(quán)和從授權(quán)表中刪除用戶。
          一、創(chuàng)建用戶并授權(quán)
          GRANT語句的語法看上去像這樣:
          GRANT privileges (columns)
          ON what
          TO user IDENTIFIED BY "password"
          WITH GRANT OPTION 
          要使用該語句,你需要填寫下列部分:
          privileges
          授予用戶的權(quán)限,下表列出可用于GRANT語句的權(quán)限指定符:
          權(quán)限指定符 權(quán)限允許的操作:
          ALTER 修改表和索引
          CREATE 創(chuàng)建數(shù)據(jù)庫和表
          DELETE 刪除表中已有的記錄
          DROP 拋棄(刪除)數(shù)據(jù)庫和表
          INDEX 創(chuàng)建或拋棄索引
          INSERT 向表中插入新行
          REFERENCE 未用
          SELECT 檢索表中的記錄
          UPDATE 修改現(xiàn)存表記錄
          FILE 讀或?qū)懛?wù)器上的文件
          PROCESS 查看服務(wù)器中執(zhí)行的線程信息或殺死線程
          RELOAD 重載授權(quán)表或清空日志、主機(jī)緩存或表緩存。
          SHUTDOWN 關(guān)閉服務(wù)器
          ALL 所有;ALL PRIVILEGES同義詞
          USAGE 特殊的“無權(quán)限”權(quán)限
          columns
          權(quán)限運(yùn)用的列,它是可選的,并且你只能設(shè)置列特定的權(quán)限。如果命令有多于一個列,應(yīng)該用逗號分開它們.
          what
          權(quán)限運(yùn)用的級別。權(quán)限可以是全局的(適用于所有數(shù)據(jù)庫和所有表)、特定數(shù)據(jù)庫(適用于一個數(shù)據(jù)庫中的
          所有表)或特定表的??梢酝ㄟ^指定一個columns字句是權(quán)限是列特定的。
          user
          權(quán)限授予的用戶,它由一個用戶名和主機(jī)名組成。MySQL中的一個用戶名就是你連接服務(wù)器時指定的用戶名,
          該名字不必與你的Unix登錄名或Windows名聯(lián)系起來。缺省地,如果你不明確指定一個名字,客戶程序?qū)⑹褂?br /> 你的登錄名作為MySQL用戶名。這只是一個約定。你可以在授權(quán)表中將該名字改為nobody,然后以nobody連接
          執(zhí)行需要超級用戶權(quán)限的操作。
          password
          賦予用戶的口令,它是可選的。如果你對新用戶沒有指定IDENTIFIED BY子句,該用戶不賦給口令(不安全)。
          對現(xiàn)有用戶,任何你指定的口令將代替老口令。如果你不指定口令,老口令保持不變,當(dāng)你用IDENTIFIED BY
          時,口令字符串用改用口令的字面含義,GRANT將為你編碼口令,不要象你用SET PASSWORD 那樣使用password()
          函數(shù)。
          WITH GRANT OPTION子句是可選的。如果你包含它,用戶可以授予權(quán)限通過GRANT語句授權(quán)給其它用戶。你可
          以用該子句給與其它用戶授權(quán)的能力。
          用戶名、口令、數(shù)據(jù)庫和表名在授權(quán)表記錄中是大小寫敏感的,主機(jī)名和列名不是。
          舉例:創(chuàng)建一個超級用戶test1
          mysql> grant all privilleges on *.* to test1@localhost identified by '123456' with grant option;
          創(chuàng)建一個只能查詢的用戶 test2
          mysql> grant select on *.* to test2@localhost identified by '9876543';
          二、撤權(quán)并刪除用戶
          要取消一個用戶的權(quán)限,使用REVOKE語句。REVOKE的語法非常類似于GRANT語句,除了TO用FROM取代并且沒有
          INDETIFED BY和WITH GRANT OPTION子句:
          REVOKE privileges (columns) ON what FROM user
          user部分必須匹配原來GRANT語句的你想撤權(quán)的用戶的user部分。privileges部分不需匹配,你可以用GRANT
          語句授權(quán),然后用REVOKE語句只撤銷部分權(quán)限。REVOKE語句只刪除權(quán)限,而不刪除用戶。即使你撤銷了所有
          權(quán)限,在user表中的用戶記錄依然保留,這意味著用戶仍然可以連接服務(wù)器。要完全刪除一個用戶,你必須
          用一條DELETE語句明確從user表中刪除用戶記錄:
          #mysql -u root mysql
          mysql>DELETE FROM user
          ->WHERE User="user_name" and Host="host_name";
          mysql>FLUSH PRIVILEGES; 
          DELETE語句刪除用戶記錄,而FLUSH語句告訴服務(wù)器重載授權(quán)表。(當(dāng)你使用GRANT和REVOKE語句時,表自動
          重載,而你直接修改授權(quán)表時不是。)
          舉例:刪除用戶test1
          mysql> revoke all on *.* from test2@localhost;
          mysql> use mysql;
          mysql> delete from user where user='test' and host='localhost';
          mysql> flush privileges;
          MySQL數(shù)據(jù)庫備份
          在數(shù)據(jù)庫表丟失或損壞的情況下,備份你的數(shù)據(jù)庫是很重要的。已經(jīng)知道表被破壞,用諸如vi或Emacs等編輯
          器試圖直接編輯它們,這對表絕對不是件好事!
          備份數(shù)據(jù)庫兩個主要方法是用mysqldump程序或直接拷貝數(shù)據(jù)庫文件(如用cp、cpio或tar等)。每種方法都
          有其優(yōu)缺點(diǎn):
          mysqldump與MySQL服務(wù)器協(xié)同操作。直接拷貝方法在服務(wù)器外部進(jìn)行,并且你必須采取措施保證沒有客戶正
          在修改你將拷貝的表,一般在數(shù)據(jù)庫關(guān)閉情況下做。mysqldump比直接拷貝要慢些。mysqldump生成能夠移植
          到其它機(jī)器的文本文件,甚至那些有不同硬件結(jié)構(gòu)的機(jī)器上。直接拷貝文件可以移植到同類機(jī)器上,但不能
          移植到其它機(jī)器上,除非你正在拷貝的表使用MyISAM存儲格式。
          一、使用mysqldump備份和拷貝數(shù)據(jù)庫
          當(dāng)你使用mysqldump程序產(chǎn)生數(shù)據(jù)庫備份文件時,缺省地,文件內(nèi)容包含創(chuàng)建正在傾倒的表的CREATE語句和包
          含表中行數(shù)據(jù)的INSERT語句。換句話說,mysqldump產(chǎn)生的輸出可在以后用作mysql的輸入來重建數(shù)據(jù)庫。
          Mysqldump參數(shù)如下:
          #mysqldump -u 用戶名-p'密碼' 數(shù)據(jù)庫名 [表名] > 操作系統(tǒng)下文件名
          舉例:#./mysqldump -u root -p'123456' samp_db>samp.db.txt
          輸出文件的開頭看起來象這樣:
          # MySQL Dump 6.0
          #
          # Host: localhost Database: samp_db
          #---------------------------------------
          # Server version 3.23.2-alpha-log
          #
          # Table structure for table 'absence'
          #
          CREATE TABLE absence(
          student_id int(10) unsigned DEFAULT '0' NOT NULL,
          date date DEFAULT '0000-00-00' NOT NULL,
          PRIMARY KEY (student_id,date)
          );
          #
          # Dumping data for table 'absence'
          #
          INSERT INTO absence VALUES (3,'1999-09-03');
          INSERT INTO absence VALUES (5,'1999-09-03');
          INSERT INTO absence VALUES (10,'1999-09-08');
          ...... 
          文件剩下的部分有更多的INSERT和CREATE TABLE語句組成。
          輸出單個的表:
          #mysqldump samp_db student score event absence >grapbook.sql
          #mysqldump samp_db member president >hist-league.sql
          缺省地,mysqldump在寫入前將一個表的整個內(nèi)容讀進(jìn)內(nèi)存。這通常確實(shí)不必要,并且實(shí)際上如果你有一個大
          表,幾乎是失敗的。你可用--quick選項(xiàng)告訴mysqldump只要它檢索出一行就寫出每一行。為了進(jìn)一步優(yōu)化傾
          倒過程,使用--opt而不是--quick。--opt選項(xiàng)打開其它選項(xiàng),加速數(shù)據(jù)的傾倒和把它們讀回。
          二、使用直接拷貝數(shù)據(jù)庫的備份和拷貝方法
          另一種不涉及mysqldump備份數(shù)據(jù)庫和表的方式是直接拷貝數(shù)據(jù)庫表文件。典型地,這用諸如cp、tar或cpio
          實(shí)用程序。本文的例子使用cp。
          %cd DATADIR
          %cp -r samp_db /usr/archive/mysql
          單個表可以如下備份:
          %cd DATADIR/samp_db
          %cp member.* /usr/archive/mysql/samp_db
          %cp score.* /usr/archive/mysql/samp_db
          ....
          當(dāng)你完成了備份時,你可以重啟服務(wù)器(如果關(guān)閉了它)或釋放加在表上的鎖定(如果你讓服務(wù)器運(yùn)行)。
          要用直接拷貝文件把一個數(shù)據(jù)庫從一臺機(jī)器拷貝到另一臺機(jī)器上,只是將文件拷貝到另一臺服務(wù)器主機(jī)的適
          當(dāng)數(shù)據(jù)目錄下即可。要確保文件是MyIASM格式或兩臺機(jī)器有相同的硬件結(jié)構(gòu),否則你的數(shù)據(jù)庫在另一臺主機(jī)
          上有奇怪的內(nèi)容。你也應(yīng)該保證在另一臺機(jī)器上的服務(wù)器在你正在安裝數(shù)據(jù)庫表時不訪問它們。
          建一個sh文件bakmysql.sh
          #!/bin/sh
          cd /usr/local/mysql/
          tar cvf /mount2/mysqlvar.tar var
          可以設(shè)到操作系統(tǒng)自動運(yùn)行。
          root用戶crontab文件
          /var/spool/cron/crontabs/root增加以下內(nèi)容
          0 2 1 * * /mount2/bakmysql.sh
          #/etc/rc2.d/S75cron stop
          #/etc/rc2.d/S75cron start
          重新?lián)艋頢un Solaris自動處理進(jìn)程
          三、用備份恢復(fù)數(shù)據(jù)
          數(shù)據(jù)庫損壞的發(fā)生有很多原因,程度也不同。如果你走運(yùn),你可能僅損壞一兩個表(如掉電),如果你倒霉
          ,你可能必須替換整個數(shù)據(jù)目錄(如磁盤損壞)。在某些情況下也需要恢復(fù),比如用戶錯誤地刪除了數(shù)據(jù)庫
          或表。不管這些倒霉事件的原因,你將需要實(shí)施某種恢復(fù)。
          如果表損壞但沒丟失,嘗試用myisamchk或isamchk修復(fù)它們,如果這樣的損壞可有修復(fù)程序修復(fù)。
          1、 恢復(fù)整個數(shù)據(jù)庫
          Mysqldump參數(shù)如下:
          #mysqldump -u 用戶名-p'密碼' 數(shù)據(jù)庫名 < 操作系統(tǒng)下文件名
          舉例:
          先在Mysql里創(chuàng)建另一個數(shù)據(jù)庫
          mysql> create database test;
          然后將備份的數(shù)據(jù)導(dǎo)入
          #mysqldump -u root -p'123456' test2 < samp.db.txt

          create database dbname DEFAULT CHARSET=UTF8
          posted @ 2007-11-28 19:53 josson 閱讀(341) | 評論 (0)編輯 收藏

          在 MySQL 中,數(shù)據(jù)庫和表對就于那些目錄下的目錄和文件。因而,操作系統(tǒng)的敏感性決定數(shù)據(jù)庫和表命名的大小寫敏感。這就意味著數(shù)據(jù)庫和表名在 Windows 中是大小寫不敏感的,而在大多數(shù)類型的 Unix 系統(tǒng)中是大小寫敏感的。

          奇怪的是列名與列的別名在所有的情況下均是忽略大小寫的,而表的別名又是區(qū)分大小寫的。

          要避免這個問題,你最好在定義數(shù)據(jù)庫命名規(guī)則的時候就全部采用小寫字母加下劃線的組合,而不使用任何的大寫字母。

          或者也可以強(qiáng)制以 -O lower_case_table_names=1 參數(shù)啟動 mysqld(如果使用 --defaults-file=...\my.cnf 參數(shù)來讀取指定的配置文件啟動 mysqld 的話,你需要在配置文件的 [mysqld] 區(qū)段下增加一行 lower_case_table_names=1)。這樣MySQL 將在創(chuàng)建與查找時將所有的表名自動轉(zhuǎn)換為小寫字符(這個選項(xiàng)缺省地在 Windows 中為 1 ,在 Unix 中為 0。從 MySQL 4.0.2 開始,這個選項(xiàng)同樣適用于數(shù)據(jù)庫名)。

          當(dāng)你更改這個選項(xiàng)時,你必須在啟動 mysqld 前首先將老的表名轉(zhuǎn)換為小寫字母。

          換句話說,如果你希望在數(shù)據(jù)庫里面創(chuàng)建表的時候保留大小寫字符狀態(tài),則應(yīng)該把這個參數(shù)置0: lower_case_table_names=1 。否則的話你會發(fā)現(xiàn)同樣的sqldump腳本在不同的操作系統(tǒng)下最終導(dǎo)入的結(jié)果不一樣(在Windows下所有的大寫字符都變成小寫了)。

          posted @ 2007-11-23 12:42 josson 閱讀(340) | 評論 (0)編輯 收藏
          1、查看當(dāng)前所有連接的詳細(xì)資料:
          ./mysqladmin -uadmin -p -h10.140.1.1 processlist


          2、只查看當(dāng)前連接數(shù)(Threads就是連接數(shù).):
          ./mysqladmin  -uadmin -p -h10.140.1.1 status
          posted @ 2007-11-23 12:41 josson 閱讀(2091) | 評論 (0)編輯 收藏
          A.修改linux系統(tǒng)默認(rèn)的1024個文件上限。
          在/root/.bash_profile文件中加入:ulimit -n 4096
          參見:linux 解決Too open many files問題

          B.察看某個進(jìn)程打開的文件數(shù):
          先用ps -aux找到pid,然后運(yùn)行:lsof -p %pid% | wc -l


          C.察看80端口的連接數(shù)
          netstat -nat|grep -i “80″|wc -l

          posted @ 2007-11-23 12:38 josson 閱讀(164) | 評論 (0)編輯 收藏

          1、接口UserService.java:

          package demo.xfire;

          import demo.xfire.model.UserInfoBean;

          public interface UserService {

              
          /**
               * 獲取用戶信息.
               * 
          @param username
               * 
          @return
               
          */

              
          public UserInfoBean getUserInfo(String username);
              
              
          /**
               * 用戶認(rèn)證.
               * 
          @param username
               * 
          @param passwd
               * 
          @return
               
          */

              
          public int login(String username,String passwd);
          }


          2、實(shí)現(xiàn)UserServiceImpl.java:

          package demo.xfire;

          import demo.xfire.model.UserInfoBean;

          public class UserServiceImpl implements UserService {

              
          /**
               * 獲取用戶信息.
               * 
          @param username
               * 
          @return
               
          */

              
          public UserInfoBean getUserInfo(String username) {
                  
          return JingManager.getUserInfo(username);
              }

              
              
          /**
               * 用戶認(rèn)證.
               * 
          @param username
               * 
          @param passwd
               * 
          @return
               
          */

              
          public int login(String username,String passwd){
                  
          return JingManager.login(username, passwd);
              }

          }


          3、XFire服務(wù)配置services.xml,放置到/WEB-INF/目錄下(具體路徑須視web.xml中的設(shè)置而定):

          <beans xmlns="http://xfire.codehaus.org/config/1.0">
            
          <service>
              
          <name>UserService</name>
              
          <namespace>http://xfire.demo/service/UserService</namespace>
              
          <serviceClass>demo.xfire.UserService</serviceClass>
              
          <implementationClass>demo.xfire.UserServiceImpl</implementationClass>
            
          </service>
          </beans>

          4、配置Web.xml文件:
            <servlet> 
              
          <servlet-name>xfire</servlet-name>  
              
          <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
              
          <init-param>
               
          <param-name>config</param-name>
               
          <param-value>services.xml</param-value>
             
          </init-param>
            
          </servlet>
            
          <servlet-mapping>
              
          <servlet-name>xfire</servlet-name> 
              
          <url-pattern>/service/*</url-pattern>
            
          </servlet-mapping>

          啟動服務(wù)后,http://localhost:8080/appname/UserService?wsdl即可以查看用戶接口服務(wù)的wsdl了。
          posted @ 2007-11-23 12:30 josson 閱讀(377) | 評論 (0)編輯 收藏
          一、設(shè)置構(gòu)建路徑(必要的jar包)

          commons-logging-1.1.jar
          geronimo-activation_1.1_spec-1.0-M1.jar (or Sun's Activation jar)
          geronimo-annotation_1.0_spec-1.1.jar (JSR 250)
          geronimo-javamail_1.4_spec-1.0-M1.jar (or Sun's JavaMail jar)
          geronimo-servlet_2.5_spec-1.1-M1.jar (or Sun's Servlet jar)
          geronimo-ws-metadata_2.0_spec-1.1.1.jar (JSR 181)
          jaxb-api-2.0.jar
          jaxb-impl-2.0.5.jar
          jaxws-api-2.0.jar
          neethi-2.0.jar
          saaj-api-1.3.jar
          saaj-impl-1.3.jar
          stax-api-1.0.1.jar
          wsdl4j-1.6.1.jar
          wstx-asl-3.2.1.jar
          XmlSchema-1.2.jar
          xml-resolver-1.2.jar

          aopalliance-1.0.jar
          spring-core-2.0.4.jar
          spring-beans-2.0.4.jar
          spring-context-2.0.4.jar
          spring-web-2.0.4.jar

          cxf-2.0-incubator.jar

          二、編寫服務(wù)類
          a). 接口類HelloService.java
          package demo.spring;

          import java.util.List;

          import javax.jws.WebParam;
          import javax.jws.WebService;

          import demo.spring.model.UserInfoBean;

          @WebService
          public interface HelloService {

              
          public String sayHello(@WebParam(name="name")String text);
              
              
          public UserInfoBean getUserInfo(@WebParam(name="username")String name);
              
              
          public List<UserInfoBean> getUsers();
          }

          b).實(shí)現(xiàn)類HelloServiceImpl.java
          package demo.spring;

          import java.util.ArrayList;
          import java.util.List;

          import javax.jws.WebService;

          import demo.cxf.server.HelloService;
          import demo.spring.model.UserInfoBean;

          @WebService(endpointInterface
          ="demo.spring.HelloService")
          public class HelloServiceImpl implements HelloService {

              
          public String sayHello(String text) {
                  
          return "Hello,".concat(text);
              }


              
          public UserInfoBean getUserInfo(String username){
                  UserInfoBean user 
          = new UserInfoBean();
                  user.setRealname(
          "捷克");
                  user.setUsername(username);
                  user.setEmail(
          "jack@chaina.com");
                  
          return user;
              }

              
              
          public List<UserInfoBean> getUsers(){
                  List
          <UserInfoBean> users = new ArrayList<UserInfoBean>();
                  users.add(getUserInfo(
          "john"));
                  
          return users;
              }

          }

          三、聲明服務(wù)Bean
          在WEB-INF目錄下創(chuàng)建成一個beans.xml文件,以聲明endpoint bean:
          <?xml version="1.0" encoding="UTF-8"?>
          <beans xmlns="http://www.springframework.org/schema/beans"
              xmlns:xsi
          ="http://www.w3.org/2001/XMLSchema-instance"
              xmlns:jaxws
          ="http://cxf.apache.org/jaxws"
              xsi:schemaLocation
          ="
          http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
          http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"
          >

              
          <import resource="classpath:META-INF/cxf/cxf.xml" />
              
          <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
              
          <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
              
          <jaxws:endpoint id="helloService" implementor="demo.spring.HelloServiceImpl" address="/HelloService"/>
          </beans>

          若使用Spring定義的bean,也可這樣聲明:
          <bean id="helloService" class="demo.spring.HelloServiceImpl" />
          <jaxws:endpoint id="helloServiceImpl" implementor="#helloService" address="/HelloService" />

          四、定義Servlet
          修改WEB-INF/目錄下的web.xml文件,添加如下定義:
          <context-param>
                  
          <param-name>contextConfigLocation</param-name>
                  
          <param-value>WEB-INF/beans.xml</param-value>
              
          </context-param>

              
          <listener>
                  
          <listener-class>
                      org.springframework.web.context.ContextLoaderListener
                  
          </listener-class>
              
          </listener>

              
          <servlet>
                  
          <servlet-name>CXFServlet</servlet-name>
                  
          <display-name>CXF Servlet</display-name>
                  
          <servlet-class>
                      org.apache.cxf.transport.servlet.CXFServlet
                  
          </servlet-class>
                  
          <load-on-startup>1</load-on-startup>
              
          </servlet>

              
          <servlet-mapping>
                  
          <servlet-name>CXFServlet</servlet-name>
                  
          <url-pattern>/*</url-pattern>
              
          </servlet-mapping>

          五、客戶端代碼
          client_beans.xml
          <?xml version="1.0" encoding="UTF-8"?>
          <beans xmlns="http://www.springframework.org/schema/beans"
              xmlns:xsi
          ="http://www.w3.org/2001/XMLSchema-instance"
              xmlns:jaxws
          ="http://cxf.apache.org/jaxws"
              xsi:schemaLocation
          ="
          http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
          http://cxf.apache.org/jaxws http://cxf.apache.org/schema/jaxws.xsd"
          >

              
          <bean id="client" class="demo.spring.HelloService" 
                factory-bean
          ="clientFactory" factory-method="create"/>
              
              
          <bean id="clientFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
                
          <property name="serviceClass" value="demo.spring.HelloService"/>
                
          <property name="address" value="http://localhost:8080/cxf/HelloService"/>
              
          </bean>
                
          </beans>

          client.java
                  ClassPathXmlApplicationContext context 
                      
          = new ClassPathXmlApplicationContext(new String[] {"demo/spring/client/client_beans.xml"});
                  HelloService client 
          = (HelloService)context.getBean("client");
                  String response 
          = client.sayHello("Joe");
                  System.out.println(
          "Response: " + response);
                  
                  UserInfoBean user 
          = client.getUserInfo("jack");
                  System.out.println(user.getUsername());
                  
                  List
          <UserInfoBean> users = client.getUsers();
                  
          for(UserInfoBean u : users){
                      System.out.println(u.getUsername());
                  }

                  System.exit(
          0);
          posted @ 2007-11-21 23:21 josson 閱讀(642) | 評論 (0)編輯 收藏
          Apache CXF 則是由 Celtix 和 XFire 項(xiàng)目整合而生,并且剛剛發(fā)布了 2.0.2 的最新版本,不過仍是 Apache 的一個孵化項(xiàng)目。

          一、與Axis2的不同之處
            1、Apache CXF 支持 WS-Addressing、WS-Policy、WS-RM、WS-Security和WS-I BasicProfile
            2、Axis2 支持 WS-Addressing、WS-RM、WS-Security和WS-I BasicProfile,WS-Policy將在新版本里得到支持
            3、Apache CXF 是根據(jù)Spring哲學(xué)來進(jìn)行編寫的,即可以無縫地與Spring進(jìn)行整合
            4、Axis2 不是
            5、Axis2 支持更多的 data bindings,包括 XMLBeans、JiBX、JaxMe 和 JaxBRI,以及它原生的 data binding(ADB)。
            6、Apache CXF 目前僅支持 JAXB 和 Aegis,并且默認(rèn)是 JAXB 2.0,與 XFire 默認(rèn)是支持 Aegis 不同,XMLBeans、JiBX 和 Castor 將在 CXF 2.1 版本中得到支持,目前版本是 2.0.2
            7、Axis2 支持多種語言,它有 C/C++ 版本。
            8、Apache CXF 提供方便的Spring整合方法,可以通過注解、Spring標(biāo)簽式配置來暴露Web Services和消費(fèi)Web Services

          二、A simple JAX-WS service
          原文見http://cwiki.apache.org/CXF20DOC/a-simple-jax-ws-service.html

          a). 設(shè)置構(gòu)建路徑,將下列jar包放到項(xiàng)目中
          the CXF distribution
          commons-logging-1.1.jar
          geronimo-activation_1.1_spec-1.0-M1.jar (or Sun's Activation jar)
          geronimo-annotation_1.0_spec-1.1.jar (JSR 250)
          geronimo-javamail_1.4_spec-1.0-M1.jar (or Sun's JavaMail jar)
          geronimo-servlet_2.5_spec-1.1-M1.jar (or Sun's Servlet jar)
          geronimo-ws-metadata_2.0_spec-1.1.1.jar (JSR 181)
          jaxb-api-2.0.jar
          jaxb-impl-2.0.5.jar
          jaxws-api-2.0.jar
          jetty-6.1.5.jar
          jetty-util-6.1.5.jar
          neethi-2.0.jar
          saaj-api-1.3.jar
          saaj-impl-1.3.jar
          stax-api-1.0.1.jar
          wsdl4j-1.6.1.jar
          wstx-asl-3.2.1.jar
          XmlSchema-1.2.jar
          xml-resolver-1.2.jar

          Spring jars
          aopalliance-1.0.jar
          spring-core-2.0.4.jar
          spring-beans-2.0.4.jar
          spring-context-2.0.4.jar
          spring-web-2.0.4.jar

          CXF jar
          cxf-2.0-incubator.jar

          b). 編寫Service代碼
          接口HelloService.java
          package demo.cxf.server;

          import javax.jws.WebParam;
          import javax.jws.WebService;

          @WebService
          public interface HelloService {

              
          public String sayHello(@WebParam(name="text")String text);
          }

          實(shí)現(xiàn)類HelloServiceImpl
          package demo.cxf.server;

          import javax.jws.WebService;

          @WebService(endpointInterface
          ="demo.cxf.server.HelloService",serviceName="helloService")
          public class HelloServiceImpl implements HelloService {
              
              
          public String sayHello(String text) {
                  
          return "Hello ".concat(text);
              }


          }

          c). 發(fā)布服務(wù)
                  System.out.println("Starting Server");
                  HelloServiceImpl impl 
          = new HelloServiceImpl();
                  String addr 
          = "http://localhost:80/helloService";
                  Endpoint.publish(addr,impl);

          d). 客戶端調(diào)用
                  JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
                  factory.getInInterceptors().add(
          new LoggingInInterceptor());
                  factory.getOutInterceptors().add(
          new LoggingOutInterceptor());
                  factory.setServiceClass(HelloService.
          class);
                  factory.setAddress(
          "http://localhost:9000/helloService");
                  HelloService service 
          = (HelloService)factory.create();
                  
                  String reply 
          = service.sayHello("cxf.");
                  System.out.println(reply);
                  System.exit(
          0);
          posted @ 2007-11-21 23:01 josson 閱讀(1007) | 評論 (0)編輯 收藏
          "^\\d+$"  //非負(fù)整數(shù)(正整數(shù) + 0)
          "^[0-9]*[1-9][0-9]*$"  //正整數(shù)
          "^((-\\d+)|(0+))$"  //非正整數(shù)(負(fù)整數(shù) + 0)
          "^-[0-9]*[1-9][0-9]*$"  //負(fù)整數(shù)
          "^-?\\d+$"    //整數(shù)
          "^\\d+(\\.\\d+)?$"  //非負(fù)浮點(diǎn)數(shù)(正浮點(diǎn)數(shù) + 0)
          "^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮點(diǎn)數(shù)
          "^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$"  //非正浮點(diǎn)數(shù)(負(fù)浮點(diǎn)數(shù) + 0)
          "^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //負(fù)浮點(diǎn)數(shù)
          "^(-?\\d+)(\\.\\d+)?$"  //浮點(diǎn)數(shù)
          "^[A-Za-z]+$"  //由26個英文字母組成的字符串
          "^[A-Z]+$"  //由26個英文字母的大寫組成的字符串
          "^[a-z]+$"  //由26個英文字母的小寫組成的字符串
          "^[A-Za-z0-9]+$"  //由數(shù)字和26個英文字母組成的字符串
          "^\\w+$"  //由數(shù)字、26個英文字母或者下劃線組成的字符串
          "^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"    //email地址
          "^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"  //url
          "^[A-Za-z0-9_]*$"
          posted @ 2007-11-21 22:38 josson 閱讀(294) | 評論 (0)編輯 收藏
          僅列出標(biāo)題
          共11頁: First 上一頁 3 4 5 6 7 8 9 10 11 下一頁 
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          收藏夾

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 日照市| 临泽县| 独山县| 元氏县| 乾安县| 县级市| 南华县| 衡水市| 本溪| 禹城市| 甘泉县| 新平| 馆陶县| 丰镇市| 中超| 中西区| 南木林县| 理塘县| 泌阳县| 大连市| 固原市| 南阳市| 广平县| 安宁市| 辽源市| 古蔺县| 中阳县| 临桂县| 隆林| 登封市| 麻栗坡县| 梓潼县| 香港| 怀集县| 永仁县| 斗六市| 怀仁县| 吉安市| 河南省| 宁阳县| 溧水县|