<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 閱讀(900) 評論(0)  編輯  收藏 所屬分類: Database 、MySQL
    主站蜘蛛池模板: 日日AV拍夜夜添久久免费| 久久久亚洲欧洲日产国码二区| 最近2019中文字幕免费直播 | 中文字幕看片在线a免费| 日本亚洲色大成网站www久久 | 国产精品玖玖美女张开腿让男人桶爽免费看| 久久久久久亚洲Av无码精品专口 | 国产精品亚洲精品爽爽| 亚洲一区二区影视| 亚洲日本一区二区| 亚洲av永久无码制服河南实里| 亚洲国产成人乱码精品女人久久久不卡| 国产精品69白浆在线观看免费| 18禁超污无遮挡无码免费网站 | 国产黄色片在线免费观看| 91成人在线免费视频| 三上悠亚在线观看免费| 一区二区三区免费精品视频| 亚洲av成人中文无码专区| 亚洲中文字幕久久精品蜜桃| 亚洲国产成人久久| 亚洲国产精品午夜电影| 久久精品国产亚洲AV无码麻豆| 亚洲成AV人片在线观看| 亚洲精品自在在线观看| 亚洲欧洲自拍拍偷午夜色无码| 亚洲精品WWW久久久久久| 亚洲精品麻豆av| 亚洲伦乱亚洲h视频| 亚洲国产精品第一区二区三区| 亚洲?V无码成人精品区日韩| 午夜国产羞羞视频免费网站| 亚洲?v女人的天堂在线观看| 亚洲无线一二三四区手机| 亚洲va中文字幕无码| 亚洲国产精品成人一区| 国产啪亚洲国产精品无码| 亚洲精品无码mv在线观看网站| 亚洲av永久无码精品国产精品| 久久亚洲AV午夜福利精品一区 | 国产精品九九久久免费视频|