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

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

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

    John Jiang

    a cup of Java, cheers!
    https://github.com/johnshajiang/blog

       :: 首頁 ::  :: 聯系 :: 聚合  :: 管理 ::
      131 隨筆 :: 1 文章 :: 530 評論 :: 0 Trackbacks
    MySQL Weed
    使用MySQL的過程中,收集的一些小知識。(2007.09.04最后更新)

    簡單SQL語句
    創建/刪除數據庫
    CREATE DATABASE mydb
    CREATE DATABASE mydb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

    DROP DATABASE mydb


    創建數據表
    CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tblname (
      colname1 coltype coloptions reference,
      colname2 coltype coloptions reference, ...
      [, index1, index2, ...])
    [ENGINE = MyISAM | InnoDB | HEAP]
    [DEFAULT CHARSET = csname [COLLATE = colname]]

    CREATE TABLE titles (
      titleID INT NOT NULL AUTO_INCREMENT,
      title VARCHAR(100) NOT NULL,
      subtitle VARCHAR(100),
      edition TINYINT,
      pubID INT,
      catID INT,
      langID INT,
      year INT,
      isbn VARCHAR(20),
      comment VARCHAR(255),
      ts TIMESTAMP,
      PRIMARY KEY (titleID),
      KEY pubIdIndex (pubID),
      KEY langID (langID),
      KEY catID (catID),
      KEY title (title),
      CONSTRAINT titles_ibfk_1 FOREIGN KEY (pubID)
        REFERENCES publishers (pubID),
      CONSTRAINT titles_ibfk_2 FOREIGN KEY (langID)
        REFERENCES publishers (langID),
      CONSTRAINT titles_ibfk_3 FOREIGN KEY (catID)
        REFERENCES categories (catID))
    ENGINE = InnoDB
    DEFAULT CHARSET = utf8 COLLATE = utf8_general_ci

    CREATE TABLE table2 SELECT * FROM table1 where id <= 10;

    DROP TABLE mytitle


    創建/刪除索引
    CREATE INDEX idxTitle ON titles (title)
    ALTER TABLE titles ADD INDEX idxTitle (title)
    SHOW INDEX FROM tablename -- 列出數據表tablename的索引

    DROP INDEX indexname ON tablename

    ALTER TABLE titles ADD INDEX idxTitle (title(16))


    變更表結構
    ALTER TABLE tablename ADD newcolumn coltype coloptions [FIRST | AFTER]

    ALTER TABLE tablename CHANGE oldcolname newcolumn coltype coloptions

    ALTER TABLE tablename DROP colname

    ALTER TABLE tblname ADD PRIMARY KEY (indexcols ...)
    ALTER TABLE tblname ADD INDEX [indexname] (indexcols ...)
    ALTER TABLE tblname ADD UNIQUE [indexname] (indexcols ...)
    ALTER TABLE tblname ADD FULLTEXT [indexname] (indexcols ...)

    ALTER TABLE tblname ADD FOREIGN KEY [idxname]
      (column1) REFERENCES table2 (column2)

    ALTER TABLE tblname DROP PRIMARY KEY
    ALTER TABLE tblname DROP INDEX indexname
    ALTER TABLE tblname DROP FOREIGN KEY indexname

    ALTER NAME tablename ENGIEN typename


    MySQL伴隨Linux啟動
    vi /etc/rc.d/rc.local
    加入語句:
    ./mysqld_safe --user=mysql &

    改變root用戶密碼
    mysql> update mysql.user set password=password('YourPwd') where user='root';
    mysql> flush privileges;

    增加新用戶
    [1]添加一用戶,使它擁有所有權限
    mysql> grant all on mydb.* to myuser@"myhost" Identified by "mypassword";

    [2]簡單添加一用戶
    mysql>
    insert into mysql.user (host, user, password) values('%', 'NewUser', password('NewUserPwd'));
    mysql> flush privileges;
    注:最好使用grant命令。

    刪除用戶
    mysql> drop user userName;

    啟動/關閉MySQL服務器
    啟動(Linux下): mysqld_safe -u mysql &
    關閉: mysqladmin -uUser -pPassword -hHost shutdown


    導出/導入數據
    導出:
    mysqldump -uUser -pPasswd
    -hHost -B DB_NAME > SQL_FILE_PATH  -- 將數據庫DB_NAME全部導出到SQL_FILE_PATH文件中
    mysqldump -uUser -pPassword -hHost DATABASE_NAME --tables TABLE_NAME > SQL_FILE_PATH  -- 將數據庫DB_NAME中的表TABLE_NAME導出

    導入:
    mysql -uUser -pPassword -hHost < SQL_FILE_PATH  -- 將數據文件導入MySQL服務器中。注:該文件中必須有建數據庫的語句。

    mysqldump -uUser -pPassword -hHost -B DB_NAME < SQL_FILE_PATH  -- 將數據文件導入MySQL服務器的DB_NAME數據庫中。注:該文件中沒有建數據庫的語句。

    注意:在導入數據庫之前,需要在MySQL中新建一個名為DATABASE_NAME的空數據庫。

    啟動日志
    修改mysql.ini/mysql.cnf文件,在[mysqld]后添加如下形式的語句。
    log="Absolte_Path_To_Log/sys.log"
    log-update="
    Absolte_Path_To_Log/ sys_update.log"

    使MySQL區分大小寫
    修改文件my.ini/my.cnf,在選項組[mysqld]之后添加
    lower_case_table_names=2

    修改某用戶的登錄密碼
    mysqladmin -uUser -pOldPasswd passwd NewPasswd
    mysql>update user set password=PASSWORD("NewPasswd") where user="myuser" and host="myhost";


    查看表結構
    mysql> describe TableName

    修改表的字符集
    mysql> alter table tblName convert to character set charsetName

    修改表的表類型
    mysql> alter table tblName engine engineType

    SHOW
    show character set -- 查看字符集
    show collation
    show columns
    show create database
    show create procedure and show create function
    show create table
    show create view
    show databases
    show engine
    show engines
    show errors
    show grants
    show index
    show innodb status
    show logs
    show mutex status
    show open tables
    show privileges

    Java程序調用存儲過程,報權限不足

    前提:數據庫mydb中有存儲過程myproc;MySQL用戶myuser@localhost,擁有數據庫mydb的所有權限(grant all on mydb.* to myuser);使用MySQL官方JDBC驅動(如mysql-connector-java-5.0.4.jar),在Java應用程序中調用myproc。
        在執行該Java應用程序時,可能出現如下問題:
        test_proc executed failed because : Driver requires declaration of procedure to either contain a '\nbegin' or '\n' to follow argument declaration, or SELECT privilege on mysql.proc to parse column types.
    這表示用戶
    myuser@localhost 執行該存儲過程的權限不足。但如果直接在MySQL客戶端中使用 myuser@localhost 用戶調用myproc,則沒有任何權限問題。
        這其實是MySQL官方JDBC驅動的問題,因為JDBC驅動的代碼中除了調用 myproc外,還做了其它操作。這就可能出現權限問題??梢杂腥缦聝煞N解決方法:
        [1]修改myproc的definer。雖然myuser已經擁有了mydb的所有權限,但由于JDBC驅動的問題,如果myproc的definer不是
    myuser@localhost,那么該用戶仍然無法執行存儲過程。修改definer的值,使其為 myuser@localhost。
        [2]賦予
    myuser@localhost對表mysql.proc的查詢權限。在前面的錯誤提示( SELECT privilege on mysql.proc to parse column types )中已經表明了這一點,可以執行如下授權語句:grant select on mysql.proc to myuser@localhost。
        注:由于是MySQL JDBC驅動的問題,所以上述解決方法都不太好。所以在直接新建存儲過程,或導入SQL文件(文件中包含創建存儲過程的語句)使用的MySQL用戶,最好與在Java應用程序中使用的MySQL用戶保持一致。

    updating...
    posted on 2006-08-12 09:19 John Jiang 閱讀(905) 評論(0)  編輯  收藏 所屬分類: Database 、MySQL
    主站蜘蛛池模板: 久久精品免费视频观看| 久久精品免费一区二区喷潮| 国产猛男猛女超爽免费视频| 免费国产真实迷j在线观看| 亚洲视频在线一区二区三区| 成人毛片100免费观看| 免费又黄又爽又猛的毛片| 可以免费看的卡一卡二| 亚洲一区免费观看| 久久久久免费看成人影片| 亚洲大尺度无码专区尤物| 四虎精品成人免费视频| 在线看片无码永久免费视频| 亚洲天堂免费在线| 免费看无码自慰一区二区| 午夜亚洲乱码伦小说区69堂| www国产亚洲精品久久久| 人人爽人人爽人人片av免费| 亚洲av成人一区二区三区观看在线 | 国产成人免费片在线视频观看| 亚洲a级在线观看| 日韩精品成人亚洲专区| 日韩亚洲精品福利| 亚洲精品NV久久久久久久久久| 一级成人毛片免费观看| 亚洲国产成人精品电影| 亚洲一区二区三区香蕉| 久九九精品免费视频| 成人无码区免费视频观看| 最近中文字幕mv免费高清电影| 黄网站色视频免费观看45分钟| 亚洲国产一区二区三区青草影视| 精品免费久久久久久成人影院| 成人最新午夜免费视频| 亚洲女人被黑人巨大进入| 亚洲AV无码久久| 亚洲一区精品伊人久久伊人| 好男人www免费高清视频在线| 亚洲国产精品自在拍在线播放| a毛片基地免费全部视频| 免费A级毛片无码久久版|