<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
    主站蜘蛛池模板: 67194成是人免费无码| 亚洲av成本人无码网站| 四虎国产精品免费永久在线| 日本免费无遮挡吸乳视频电影| 香蕉免费看一区二区三区| 又粗又大又猛又爽免费视频| 蜜桃传媒一区二区亚洲AV| 国产jizzjizz视频全部免费| 国产成人精品亚洲| 亚洲人AV永久一区二区三区久久| 免费国产草莓视频在线观看黄| 97国产在线公开免费观看| 看全色黄大色大片免费久久| 亚洲国产精品成人综合色在线| 夜夜嘿视频免费看| 久久久亚洲欧洲日产国码是AV| 国产AV日韩A∨亚洲AV电影| 亚洲第一页综合图片自拍| j8又粗又长又硬又爽免费视频| 天天摸夜夜摸成人免费视频| 精品视频免费在线| 亚洲无线码在线一区观看| 无码精品人妻一区二区三区免费看 | 亚洲天堂一区二区三区四区| 久久国产乱子伦精品免费午夜 | 亚洲香蕉在线观看| 国产大片线上免费看| 久青草视频97国内免费影视| 久久久久久亚洲AV无码专区| 成人性生交大片免费看无遮挡| 视频一区二区三区免费观看| 亚洲级αV无码毛片久久精品| 国产精品亚洲一区二区三区久久 | 亚洲av中文无码| 波多野结衣免费一区视频| 亚洲中久无码不卡永久在线观看| 亚洲s码欧洲m码吹潮| 夜夜春亚洲嫩草影院| 中文字幕乱码免费视频| 免费看内射乌克兰女| 亚洲网址在线观看|