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

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

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

    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 閱讀(1039) | 評論 (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 閱讀(384) | 評論 (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)的實現(xiàn),它由一個服務(wù)器守護(hù)程序mysqld和很多不同的
    客戶程序和庫組成。
    SQL是一種標(biāo)準(zhǔn)化的語言,它使得存儲、更新和存取信息更容易。例如,你能用SQL語言為一個網(wǎng)站檢索
    產(chǎn)品信息及存儲顧客信息,同時MySQL也足夠快和靈活以允許你存儲記錄文件和圖像。
    MySQL 主要目標(biāo)是快速、健壯和易用。最初是因為我們需要這樣一個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ù)庫特點
    1. 使用核心線程的完全多線程。這意味著它能很容易地利用多CPU(如果有)。
    2. 可運行在不同的平臺上。
    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)非常快速地進(jìn)行聯(lián)結(jié)(join)。
    5. 在查詢的SELECT和WHERE部分支持全部運算符和函數(shù)。
    6. 通過一個高度優(yōu)化的類庫實現(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)證。口令是安全的,因為當(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ù)庫表的快速實用程序。
    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程序可以用選項--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ù)目錄在哪里。如果你運行多個服務(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運行的路徑
    %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、 建索引的注意事項:
    先要把要加索引的字段設(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開始引入兩條語句使得這項工作更容易做: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)限運用的列,它是可選的,并且你只能設(shè)置列特定的權(quán)限。如果命令有多于一個列,應(yīng)該用逗號分開它們.
    what
    權(quá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)缺點:
    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)存。這通常確實不必要,并且實際上如果你有一個大
    表,幾乎是失敗的。你可用--quick選項告訴mysqldump只要它檢索出一行就寫出每一行。為了進(jìn)一步優(yōu)化傾
    倒過程,使用--opt而不是--quick。--opt選項打開其它選項,加速數(shù)據(jù)的傾倒和把它們讀回。
    二、使用直接拷貝數(shù)據(jù)庫的備份和拷貝方法
    另一種不涉及mysqldump備份數(shù)據(jù)庫和表的方式是直接拷貝數(shù)據(jù)庫表文件。典型地,這用諸如cp、tar或cpio
    實用程序。本文的例子使用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ù)器運行)。
    要用直接拷貝文件把一個數(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)自動運行。
    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ā)生有很多原因,程度也不同。如果你走運,你可能僅損壞一兩個表(如掉電),如果你倒霉
    ,你可能必須替換整個數(shù)據(jù)目錄(如磁盤損壞)。在某些情況下也需要恢復(fù),比如用戶錯誤地刪除了數(shù)據(jù)庫
    或表。不管這些倒霉事件的原因,你將需要實施某種恢復(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 閱讀(333) | 評論 (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)換為小寫字符(這個選項缺省地在 Windows 中為 1 ,在 Unix 中為 0。從 MySQL 4.0.2 開始,這個選項同樣適用于數(shù)據(jù)庫名)。

    當(dā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 閱讀(330) | 評論 (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 閱讀(2080) | 評論 (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,然后運行:lsof -p %pid% | wc -l


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

    posted @ 2007-11-23 12:38 josson 閱讀(159) | 評論 (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、實現(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 閱讀(374) | 評論 (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).實現(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 閱讀(635) | 評論 (0)編輯 收藏
    Apache CXF 則是由 Celtix 和 XFire 項目整合而生,并且剛剛發(fā)布了 2.0.2 的最新版本,不過仍是 Apache 的一個孵化項目。

    一、與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和消費Web Services

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

    a). 設(shè)置構(gòu)建路徑,將下列jar包放到項目中
    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);
    }

    實現(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 閱讀(1004) | 評論 (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ù)浮點數(shù)(正浮點數(shù) + 0)
    "^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮點數(shù)
    "^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$"  //非正浮點數(shù)(負(fù)浮點數(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ù)浮點數(shù)
    "^(-?\\d+)(\\.\\d+)?$"  //浮點數(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 閱讀(284) | 評論 (0)編輯 收藏
    僅列出標(biāo)題
    共11頁: First 上一頁 3 4 5 6 7 8 9 10 11 下一頁 
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    收藏夾

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久精品国产亚洲AV蜜臀色欲 | 亚洲精品无码鲁网中文电影| 1000部无遮挡拍拍拍免费视频观看 | 亚洲最大免费视频网| 亚洲片国产一区一级在线观看| 99热在线免费观看| 特黄aa级毛片免费视频播放| 亚洲一线产区二线产区精华| 亚洲一卡一卡二新区无人区| 中文字幕亚洲综合久久| 中文字幕亚洲一区| 免费国产a国产片高清| 18禁无遮挡无码网站免费| 91在线视频免费观看| 猫咪免费人成在线网站| 国产成人无码区免费内射一片色欲| 日韩在线视频免费| 亚洲国产成人无码AV在线影院 | 久久九九亚洲精品| 亚洲色欲久久久综合网| 亚洲国产精品尤物yw在线| 四虎免费影院4hu永久免费| 国产美女a做受大片免费| 精品剧情v国产在免费线观看 | 一级毛片**不卡免费播| 久久午夜免费鲁丝片| 日韩精品极品视频在线观看免费| 在线免费观看一级毛片| 欧美在线看片A免费观看| 亚洲人成无码www久久久| 亚洲最大av无码网址| 亚洲成人黄色在线观看| 一级做a毛片免费视频| 久久毛片免费看一区二区三区| 永久免费精品影视网站| 亚州免费一级毛片| 成人性生交大片免费看无遮挡 | 国产免费啪嗒啪嗒视频看看| 久久精品国产亚洲AV果冻传媒| 亚洲国产精品无码久久久秋霞2| 亚洲中文字幕无码久久|