程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> mysql常用命令操作

mysql常用命令操作

編輯:關於MYSQL數據庫
第一招、MySQL服務的啟動和停止
C:\>cd MySQL5.0\bin
C:\Mysql5.0\bin>mysqld –install 安裝MySQL服務
C:\Mysql5.0\bin>net start mysql 啟動Mysql服務 第二招、登陸MySQL
語法如下: MySQL -u用戶名 -p用戶密碼 或(C:\Mysql5.0\bin>MySQL -h localhost -u root -p ) 鍵入命令mysql -uroot -p, 回車後提示你輸入密碼,輸入12345,然後回車即可進入到mysql中了,MySQL的提示符是:
MySQL>
注意,如果是連接到另外的機器上,則需要加入一個參數-h機器IP 格式:grant 權限 on 數據庫.* to 用戶名@登錄主機 identifIEd by "密碼"
如,增加一個用戶user1密碼為passWord1,讓其可以在本機上登錄, 並對所有數據庫有查詢、插入、修改、刪除的權限。首先用以root用戶連入MySQL,然後鍵入以下命令:
grant select,insert,update,delete on *.* to user1@localhost IdentifIEd by "passWord1";
如果希望該用戶能夠在任何機器上登陸MySQL,則將localhost改為"%"。
如果你不想user1有密碼,可以再打一個命令將密碼去掉。
grant select,insert,update,delete on mydb.* to user1@localhost identifIEd by ""; 登錄到mysql中,然後在MySQL的提示符下運行下列命令,每個命令以分號結束。
1、 顯示數據庫列表。
show databases;
缺省有兩個數據庫:mysql和test。 mysql庫存放著MySQL的系統和用戶權限信息,我們改密碼和新增用戶,實際上就是對這個庫進行操作。
2、 顯示庫中的數據表:
use MySQL;
show tables;
3、 顯示數據表的結構:
describe 表名;
4、 建庫與刪庫:
create database 庫名;
drop database 庫名;
5、 建表:
use 庫名;
create table 表名(字段列表);
drop table 表名;
6、 清空表中記錄:
delete from 表名;
7、 顯示表中的記錄:
select * from 表名; 1. 導出數據:
mysqldump --opt test > MySQL.test
即將數據庫test數據庫導出到MySQL.test文件,後者是一個文本文件
如:mysqldump -u root -p123456 --databases dbname > MySQL.dbname
就是把數據庫dbname導出到文件MySQL.dbname中。
2. 導入數據:
mysqlimport -u root -p123456 < MySQL.dbname。 3. 將文本數據導入數據庫:
文本數據的字段數據之間用tab鍵隔開。
use test;
load data local infile "文件名" into table 表名; 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
Mysql中MySQLdump命令使用詳解 因此,如果您像裝載整個數據庫Meet_A_Geek的內容到一個文件中,可以使用下面的命令:   bin/MySQLdump –p Meet_A_Geek > MeetAGeek_Dump_File.txt   這個語句也允許您指定一個表進行dump(備份/導出/裝載?)。如果您只是希望把數據庫Meet_A_Geek中的表Orders中的整個內容導出到一個文件,可以使用下面的命令:   bin/mysqldump –p Meet_A_Geek Orders >MeetAGeek_Orders.txt   這個非常的靈活,您甚至可以使用WHERE從句來選擇您需要的記錄導出到文件中。要達到這樣的目的,可以使用類似於下面的命令:   bin/mysqldump –p –where="Order_ID > 2000" Meet_A_Geek Orders > Special_Dump.txt   MySQLdump工具有大量的選項,部分選項如下表:   選項/Option 作用/Action Performed
--add-drop-table   這個選項將會在每一個表的前面加上DROP TABLE IF EXISTS語句,這樣可以保證導回MySQL數據庫的時候不會出錯,因為每次導回的時候,都會首先檢查表是否存在,存在就刪除   --add-locks   這個選項會在INSERT語句中捆上一個LOCK TABLE和UNLOCK TABLE語句。這就防止在這些記錄被再次導入數據庫時其他用戶對表進行的操作   -c or - complete_insert   這個選項使得mysqldump命令給每一個產生INSERT語句加上列(fIEld)的名字。當把數據導出導另外一個數據庫時這個選項很有用。   --delayed-insert 在INSERT命令中加入DELAY選項   -F or -flush-logs 使用這個選項,在執行導出之前將會刷新MySQL服務器的log.   -f or -force 使用這個選項,即使有錯誤發生,仍然繼續導出   --full 這個選項把附加信息也加到CREATE TABLE的語句中   -l or -lock-tables 使用這個選項,導出表的時候服務器將會給表加鎖。   -t or -no-create- info   這個選項使的MySQLdump命令不創建CREATE TABLE語句,這個選項在您只需要數據而不需要DDL(數據庫定義語句)時很方便。   -d or -no-data 這個選項使的mysqldump命令不創建INSERT語句。在您只需要DDL語句時,可以使用這個選項。   --opt 此選項將打開所有會提高文件導出速度和創造一個可以更快導入的文件的選項。   -q or -quick 這個選項使得MySQL不會把整個導出的內容讀入內存再執行導出,而是在讀到的時候就寫入導文件中。   -T path or -tab = path 這個選項將會創建兩個文件,一個文件包含DDL語句或者表創建語句,另一個文件包含數據。DDL文件被命名為table_name.sql,數據文件被命名為table_name.txt.路徑名是存放這兩個文件的目錄。目錄必須已經存在,並且命令的使用者有對文件的特權。     -w "WHERE Clause" or -where = "Where clause "   如前面所講的,您可以使用這一選項來過篩選將要放到 導出文件的數據。
  假定您需要為一個表單中要用到的帳號建立一個文件,經理要看今年(2004年)所有的訂單(Orders),它們並不對DDL感興趣,並且需要文件有逗號分隔,因為這樣就很容易導入到Excel中。 為了完成這個人物,您可以使用下面的句子:   bin/MySQLdump –p –where "Order_Date >='2000-01-01'"
  –tab = /home/mark –no-create-info –fIElds-terminated-by=, Meet_A_Geek Orders   這將會得到您想要的結果。   schema:模式   The set of statements, expressed in data definition language, that completely describe the structure of a data base.   一組以數據定義語言來表達的語句集,該語句集完整地描述了數據庫的結構。   SELECT INTO OUTFILE :   如果您覺得mysqldump工具不夠酷,就使用SELECT INTO OUTFILE吧, MySQL同樣提供一個跟LOAD DATA INFILE命令有相反作用的命令,這就是SELECT INTO OUTFILE 命令,這兩個命令有很多的相似之處。首先,它們有所有的選項幾乎相同。現在您需要完成前面用mysqldump完成的功能,可以依照下面的步驟進行操作:   1. 確保mysqld進程(服務)已經在運行   2. cd /usr/local/mysql   3. bin/mysqladmin ping ;// 如果這個句子通不過,可以用這個:mysqladmin -u root -p ping   mysqladmin ping用於檢測mysqld的狀態,is alive說明正在運行,出錯則可能需要用戶名和密碼。   4. 啟動MySQL 監聽程序.   5. bin/mysql –p Meet_A_Geek;// 進入MySQL命令行,並且打開數據庫Meet_A_Geek,需要輸入密碼   6. 在命令行中,輸入一下命令:   SELECT * INTO OUTFILE '/home/mark/Orders.txt'
  FIELDS
  TERMINATED BY = ','
  FROM Orders
  WHERE Order_Date >= '2000-01-01'   在你按了Return(回車)之後,文件就創建了。這個句子就像一個規則的SELECT語句,只是把想屏幕的輸出重定向到了文件中。這意味這您可以使用JOIN來實現多表的高級查詢。這個特點也可以被用作一個報表產生器。   比方說,您可以組合這一章中討論的方法來產生一個非常有趣的查詢,試試這個:   在MySQL目錄建立一個名為Report_G.rpt 的文本文件,加入下面的行:   USE Meet_A_Geek;
  INSERT INTO Customers (Customer_ID, Last_Name, First_Name)
  VALUES (NULL, "Kinnard", "Vicky");
  INSERT INTO Customers (Customer_ID, Last_Name, First_Name)
  VALUES (NULL, "Kinnard", "Steven");
  INSERT INTO Customers (Customer_ID, Last_Name, First_Name)
  VALUES (NULL, "Brown", "Sam");
  SELECT Last_Name INTO OUTFILE '/home/mark/Report.rpt'
  FROM Customers WHERE Customer_ID > 1;   然後確認 mysql進程在運行,並且您在mysql目錄中, 輸入下面的命令:   bin/MySQL < Report_G.rpt檢查您命名作為輸出的文件,這個文件將會包含所有您在Customers表中輸入的顧客的姓。 如您所見,您可以使用今天學到的導入/導出(import/export)的方法來幫助得到報表。MySQL數據導入導出工具MySQLimport簡介
  1).mysqlimport的語法介紹:  mysqlimport位於mysql/bin目錄中,是MySQL的一個載入(或者說導入)數據的一個非常有效的工具。這是一個命令行工具。有兩個參數以及大量的選項可供選擇。這個工具把一個文本文件(text file)導入到你指定的數據庫和表中。比方說我們要從文件Customers.txt中把數據導入到數據庫Meet_A_Geek中的表Custermers中:
  MySQLimport Meet_A_Geek Customers.txt
  注意:這裡Customers.txt是我們要導入數據的文本文件, 而Meet_A_Geek是我們要操作的數據庫,
  數據庫中的表名是Customers,這裡文本文件的數據格式必須與Customers表中的記錄格式一致,否則MySQLimport命令將會出錯。 其中表的名字是導入文件的第一個句號(.)前面文件字符串,另外一個例子:
  MySQLimport Meet_A_Geek Cus.to.mers.txt
  那麼我們將把文件中的內容導入到數據庫Meet_A_Geek 中的Cus表中。
  上面的例子中,都只用到兩個參數,並沒有用到更多的選項,下面介紹mysqlimport的選項   2).MySQLimport的常用選項介紹:   選項 功能
  -d or --delete 新數據導入數據表中之前刪除數據數據表中的所有信息
  -f or --force 不管是否遇到錯誤,MySQLimport將強制繼續插入數據
  -i or --ignore MySQLimport跳過或者忽略那些有相同唯一關鍵字的行, 導入文件中的數據將被忽略。
  -l or -lock-tables 數據被插入之前鎖住表,這樣就防止了, 你在更新數據庫時,用戶的查詢和更新受到影響。
  -r or -replace 這個選項與-i選項的作用相反;此選項將替代表中有相同唯一關鍵字的記錄。
  --fields-enclosed- by= char   --fIElds-terminated- by=char
  指定各個數據的值之間的分隔符,在句號分隔的文件中,分隔符是句號。您可以用此選項指定數據之間的分隔符。默認的分隔符是跳格符(Tab)
  --lines-terminated- by=str
  此選項指定文本文件中行與行之間數據的分隔字符串 或者字符。 默認的情況下MySQLimport以newline為行分隔符。 您可以選擇用一個字符串來替代一個單個的字符: 一個新行或者一個回車。
  MySQLimport命令常用的選項還有-v 顯示版本(version), -p 提示輸入密碼(passWord)等。   3).例子:導入一個以逗號為分隔符的文件  文件中行的記錄格式是這樣的:
  "1", "ORD89876", "1 Dozen Roses", "19991226"
  我們的任務是要把這個文件裡面的數據導入到數據庫Meet_A_Geek中的表格Orders中, 我們使用這個命令:
  bin/MySQLimport –prl –fields-enclosed-by=" –fIElds-terminated-by=, Meet_A_Geek Orders.txt
  這個命令可能看起來很不爽,不過當你熟悉了之後,這是非常簡單的。第一部分,bin/mysqlimport ,告訴操作系統你要運行的命令是mysql/bin目錄下的MySQLimport,選項p是要求輸入密碼,這樣就要求你在改動數據庫之前輸入密碼,操作起來會更安全。 我們用了r選項是因為我們想要把表中的唯一關鍵字與文件記錄中有重復唯一關鍵字的記錄替換成文件中的數據。我們表單中的數據不是最新的,需要用文件中的數據去更新,因而就用r這個選項,替代數據庫中已經有的記錄。l選項的作用是在我們插入數據的時候鎖住表,這樣就阻止了用戶在我們更新表的時候對表進行查詢或者更改的操作。
解決命令行中文亂碼。將連接編碼設置為gbk。如:charset gbk
C:\Mysql5.0\bin>MySQL -uroot -proot
MySQL> use mydb
MySQL> charset gbk
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved