一、連接MySQL
格式: mysql -h 主機地址 -u 用戶名 -p 用戶密碼
二、修改密碼
格式:mysqladmin -u用戶名 -p舊密碼 password 新密碼
三、增加新用戶。
(注意:和上面不同,下面的因為是MySQL環境中的命令,所以後面都帶一個分號作為命令結束符)
格式:grant select on 數據庫.* to 用戶名@登錄主機 identified by "密碼" [with grant option]或者[with admin option]
例1、增加一個用戶test1密碼為abc,讓他可以在任何主機上登錄,並對所有數據庫有查詢、插入、修改、刪除的權限。首先用以root用戶連入MySQL,然後鍵入以下命令:
grant select,insert,update, delete on *.* to test2@localhostidentified by "abc";
如果你不想test2有密碼,可以再打一個命令將密碼消掉。
grant select,insert,update,delete on mydb .* to test2@localhostidentified by "";
with admin option 用於系統權限授權,with grant option 用於對象授權。
但給一個用戶授予系統權限 帶上with admin option 時,此用戶可把此系統權限授予其他用戶或角色,但收回這個用戶的系統權限時,這個用戶已經授予其他用戶或角色的此系統權限不會因傳播無效,如授予A系統權 限create session with admin option,然後A又把createsession權限授予B,但管理員收回A的create session權限時,B依然擁有create session的權限,但管理員可以顯式收回B create session的權限,即直接revoke create session from B.
而with grantoption用於對象授權時,被授予的用戶也可把此對象權限授予其他用戶或角色,不同的是但管理員收回用with grant option授權的用戶對象權限時,權限會因傳播而失效,如grant select on table with grant option to A,A用戶把此權限授予B,但管理員收回A的權限時,B的權限也會失效,但管理員不可以直接收回B的SELECT ONTABLE 權限。
如:GRANT ALLPRIVILEGES ON *.* TO monty@localhostIDENTIFIED BY ’pwd’ WITH GRANT OPTION;
四、刪除用戶授權revokeall privileges on *.* from root@”%”;
五、重命名表:
mysql > alter table t1 rename t2;
六、備份數據庫
shell> mysqldump -h host -u root -pdbname >dbname_backup.sql
恢復數據庫
shell> mysqladmin -h myhost -u root -pcreate dbname
shell> mysqldump -h host -u root -pdbname < dbname_backup.sql
如果只想卸出建表指令,則命令如下:
shell> mysqladmin -u root -p -ddatabasename > a.sql
如果只想卸出插入數據的sql命令,而不需要建表命令,則命令如下:
shell> mysqladmin -u root -p -t databasename> a.sql
那麼如果我只想要數據,而不想要什麼sql命令時,應該如何操作呢?
mysqldump-T./ phptest driver
其中,只有指定了-T參數才可以卸出純文本文件,表示卸出數據的目錄,./表示當前目錄,即與mysqldump同一目錄。如果不指定driver 表,則將卸出整個數據庫的數據。每個表會生成兩個文件,一個為.sql文件,包含建表執行。另一個為.txt文件,只包含數據,且沒有sql指令。
七、可將查詢存儲在一個文件中並告訴mysql從文件中讀取查詢而不是等待鍵盤輸入。可利用外殼程序鍵入重定向實用程序來完成這項工作。例如,如果在文件my_file.sql 中存放有查
詢,可如下執行這些查詢:
例如,如果您想將建表語句提前寫在sql.txt中:
mysql > mysql -h myhost -u root -pdatabase < sql.txt
七、1)創建數據庫staffer
mysql>create database staffer
2)創建表create table
col_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT]
[PRIMARY KEY] [reference_definition]
or PRIMARY KEY (index_col_name,...)
or KEY [index_name] (index_col_name,...)
or INDEX [index_name] (index_col_name,...)
or UNIQUE [INDEX] [index_name] (index_col_name,...)
or [CONSTRAINT symbol] FOREIGN KEY index_name (index_col_name,...)
[reference_definition]
or CHECK (expr)
col_name:表中列的名字。必須符合標識符規則,而且在表中要唯一。
type:列的數據類型。有的數據類型需要指明長度n,並用括號括起。目前MySQL提供的數據類型詳見MySQL進階_列類型篇。
NOT NULL | NULL:指定該列是否允許為空。如果既不指定NULL也不指定NOT NULL,列被認為指定了NULL。
DEFAULT default_value:為列指定默認值。如果沒有為列指定默認值,MySQL自動地分配一個。如果列可以取NULL作為值,缺省值是NULL。如果列被聲明為NOT NULL,缺省值取決於列類型:
1、對於沒有聲明AUTO_INCREMENT屬性的數字類型,缺省值是0。對於一個AUTO_INCREMENT列,缺省值是在順序中的下一個值。
2、對於除TIMESTAMP的日期和時間類型,缺省值是該類型適當的“零”值。對於表中第一個TIMESTAMP列,缺省值是當前的日期和時間。
3、對於除ENUM的字符串類型,缺省是空字符串。對於ENUM,缺省值是第一個枚舉值。
AUTO_INCREMENT:設置該列有自增屬性,只有整型列才能設置此屬性。當你插入NULL值或0到一個AUTO_INCREMENT列中 時,列被設置為value+1,在這裡 value是此前表中該列的最大值。AUTO_INCREMENT順序從1開始。每個表只能有一個AUTO_INCREMENT列,並且它必須被索引。
create table department
(
id int not null auto_increment,
name varchar(20) not null default '系統部', #設定默認值
description varchar(100),
primary key PK_department (id) #設定主鍵
);
八、修改結構alter命令
mysql>
#表position增加列test
alter table positionadd(test char(10));
#表position修改列test
alter table positionmodify test char(20) not null;
#表position修改列test默認值
alter table positionalter test set default 'system';
#表position去掉test默認值
alter table positionalter test drop default;
#表position去掉列test
alter table positiondrop column test;
#表depart_pos刪除主鍵
alter table depart_posdrop primary key;
#表depart_pos增加主鍵
alter tabledepart_pos add primary key PK_depart_pos (department_id,position_id);
九、1:使用SHOW語句找出在服務器上當前存在什麼數據庫:
mysql> SHOW DATABASES;
2:2、創建一個數據庫MYSQLDATA
mysql> Create DATABASE MYSQLDATA;
3:選擇你所創建的數據庫
mysql> USE MYSQLDATA; (按回車鍵出現Database changed 時說明操作成功!)
4:查看現在的數據庫中存在什麼表
mysql> SHOW TABLES;
5:創建一個數據庫表
mysql> Create TABLE MYTABLE (nameVARCHAR(20), sex CHAR(1));
6:顯示表的結構:
mysql> DESCRIBE MYTABLE;
7:往表中加入記錄
mysql> insert into MYTABLE values("hyq","M");
8:用文本方式將數據裝入數據庫表中(例如D:/mysql.txt)
mysql> LOAD DATA LOCAL INFILE"D:/mysql.txt" INTO TABLE MYTABLE;
9:導入.sql文件命令(例如D:/mysql.sql)
mysql>use database;
mysql>source d:/mysql.sql;
10:刪除表
mysql>drop TABLE MYTABLE;
11:清空表
mysql>delete from MYTABLE;
12:更新表中數據update命令
mysql>update MYTABLE setsex="f" where name='hyq';
作者“懶人小何”