mysql常用操作命令

連接:mysql -h主機地址 -u用戶名 -p用戶密碼 (注:u與root可以不用加空格,其它也一樣)
斷開:exit (回車)

創建授權:grant select on 數據庫.* to 用戶名@登錄主機 identified by \"密碼\"
修改密碼:mysqladmin -u用戶名 -p舊密碼 password 新密碼
刪除授權: revoke select,insert,update,delete om *.* fromtest2@localhost;

顯示數據庫:show databases;
顯示數據表:show tables;
顯示錶結構:describe 表名;

創建庫:create database 庫名;
刪除庫:drop database 庫名;
使用庫:use 庫名;

創建表:create table 表名 (字段設定列表);
刪除表:drop table 表名;
修改表:alter table t1 rename t2
查詢表:select * from 表名;
清空表:delete from 表名;
備份表: mysqlbinmysqldump -h(ip) -uroot -p(password) databasenametablename > tablename.sql
恢復表: mysqlbinmysql -h(ip) -uroot -p(password) databasenametablename < tablename.sql(操作前先把原來表刪除)

增加列:ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADDINDEX (c);
修改列:ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b cCHAR(20);
刪除列:ALTER TABLE t2 DROP COLUMN c;

備份數據庫:mysql\bin\mysqldump -h(ip) -uroot -p(password) databasename> database.sql
恢復數據庫:mysql\bin\mysql -h(ip) -uroot -p(password) databasename< database.sql
複製數據庫:mysql\bin\mysqldump --all-databases >all-databases.sql
修復數據庫:mysqlcheck -A -o -uroot -p54safer

文本數據導入: load data local infile \"文件名\" into table 表名;
數據導入導出:mysql\bin\mysqlimport database tables.txt



(一) 連接MYSQL:
   格式: mysql -h主機地址 -u用戶名-p用戶密碼

1、例1:連接到本機上的MYSQL
  首先在打開DOS窗口,然後進入mysql安裝目錄下的bin目錄下,例如: D:\mysql\bin,再鍵入命令mysql -uroot-p,回車後提示你輸密碼,如果剛安裝好MYSQL,超級用戶root是沒有密碼的,故直接回車即可進入到MYSQL中了,MYSQL的提示符是:mysql>
2、例2:連接到遠程主機上的MYSQL
  假設遠程主機的IP爲:10.0.0.1,用戶名爲root,密碼爲123。則鍵入以下命令:
   mysql -h10.0.0.1 -uroot-p123
(注:u與root可以不用加空格,其它也一樣)
3、退出MYSQL命令
   exit (回車)

(二) 修改密碼:
   格式:mysqladmin -u用戶名 -p舊密碼password 新密碼
1、例1:給root加個密碼123。首先在DOS下進入目錄C:\mysql\bin,然後鍵入以下命令:
   mysqladmin -uroot -password123
  注:因爲開始時root沒有密碼,所以-p舊密碼一項就可以省略了。
2、例2:再將root的密碼改爲456
   mysqladmin -uroot -pab12password 456
(三) 增加新用戶:(注意:和上面不同,下面的因爲是MYSQL環境中的命令,所以後面都帶一個分號作爲命令結束符)
   格式:grant select on 數據庫.* to用戶名@登錄主機 identified by "密碼"
  例1、增加一個用戶test1密碼爲abc,讓他可以在任何主機上登錄,並對所有數據庫有查詢、插入、修改、刪除的權限。首先用以root用戶連入MYSQL,然後鍵入以下命令:
   grantselect,insert,update,delete on *.* to test1@"%" Identified by"abc";

  但例1增加的用戶是十分危險的,你想如某個人知道test1的密碼,那麼他就可以在internet上的任何一臺電腦上登錄你的mysql數據庫並對你的數據可以爲所欲爲了,解決辦法見例2。
  例2、增加一個用戶test2密碼爲abc,讓他只可以在localhost上登錄,並可以對數據庫mydb進行查詢、插入、修改、刪除的操作(localhost指本地主機,即MYSQL數據庫所在的那臺主機),這樣用戶即使用知道test2的密碼,他也無法從internet上直接訪問數據庫,只能通過MYSQL主機上的web頁來訪問了。
   grantselect,insert,update,delete on mydb.* to test2@localhost identifiedby "abc";
  如果你不想test2有密碼,可以再打一個命令將密碼消掉。
   grantselect,insert,update,delete on mydb.* to test2@localhost identifiedby "";
(四) 顯示命令
1、顯示數據庫列表:
   show databases;
  剛開始時才兩個數據庫:mysql和test。mysql庫很重要它裏面有MYSQL的系統信息,我們改密碼和新增用戶,實際上就是用這個庫進行操作。
2、顯示庫中的數據表:
   use mysql; //打開庫
   show tables;
3、顯示數據表的結構:
   describe 表名;
4、建庫:
   create database 庫名;
5、建表:
   use 庫名;
   create table 表名(字段設定列表);
6、刪庫和刪表:
   drop database 庫名;
   drop table 表名;
7、將表中記錄清空:
   delete from 表名;
8、顯示錶中的記錄:
   select * from 表名;

MySQL導入導出命令
1.導出整個數據庫
  mysqldump -u 用戶名 -p 數據庫名 > 導出的文件名
  mysqldump -u wcnc -p smgp_apps_wcnc >wcnc.sql
2.導出一個表
  mysqldump -u 用戶名 -p 數據庫名 表名> 導出的文件名
  mysqldump -u wcnc -p smgp_apps_wcnc users>wcnc_users.sql

3.導出一個數據庫結構
  mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc>d:wcnc_db.sql
  -d 沒有數據 --add-drop-table 在每個create語句之前增加一個drop table

4.導入數據庫
  常用source 命令
  進入mysql數據庫控制檯,
  如mysql -u root -p
  mysql>use 數據庫
  然後使用source命令,後面參數爲腳本文件(如這裏用到的.sql)
  mysql>source d:wcnc_db.sql (注:如果寫成sourced:\wcnc_db.sql,就會報語法

使用load data 批量導入數據,這種做法可以瞬間導入數據,用處非常大!

複製代碼代碼如下:


LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt'
    [REPLACE | IGNORE]
    INTO TABLE tbl_name
    [FIELDS                               字段操作,設置每個字段的分隔符


        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char' ]
    ]
    [LINES                                行操作,從某一個字符開始,到某個字符

        [STARTING BY 'string']
        [TERMINATED BY 'string']
    ]
    [IGNORE number LINES]               行操作,忽略某行

    [(col_name_or_user_var,...)]        字段操作,寫入的字段與數據對應

    [SET col_name = expr,...)]


示例:load data infile '/test/test.file' intotable 'test' fields terminated by "\t" (fieldsOne,fieldsTwo);
意思是, 載入/test/test.file到表test中,使用\t分割字段,寫入fieldsOne和fieldsTwo中,默認以換行符作爲一個行分割!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章