一、連接數據庫
格式: mysql -h主機地址 -u用戶名 -p用戶密碼
mysql -hlocalhost -uroot -p123
注:-h,-u,-p 后面不加空格,進入數據庫操作后每個命令結尾都需加“;(分號)”
二、退出MYSQL命令
exit (回車)
三、顯示所有數據庫數據庫(顯示在該ip下的所有數據庫)
show databases;
四、選擇數據庫
use 數據庫名;
五、顯示數據庫中的表
show tables;
六、顯示數據表的結構
describe 表名;(可以簡寫成desc)
七、進入數據庫中對數據表中記錄進行增刪改查(sql語句進行操作)
(查)SELECT * FROM 表名 WHERE 查詢條件;
(增) INSERT INTO 表名(字段) VALUES(值);
(刪)DELETE FROM 表名 WHERE 條件;
(改)UPDATE 表名 SET 字段=值 WHERE 條件;
八、建庫
create database 庫名;
九、建表
create table 表名 (字段設定列表);
mysql> create table name(
-> id int auto_increment not null primary key ,
-> uname char(8),
-> gender char(2),
-> birthday date );
Query OK, 0 rows affected (0.03 sec)
十、刪除表
drop table 表名;
十一、刪除庫
drop database 庫名;
十二、備份數據庫
mysqldump -u root -p --opt 數據庫名>備份名; //進入到庫目錄
十三、恢復
mysql -u root -p 數據庫名
十四、數據庫授權
格式:grant all PRIVILEGES on db_name.* to 'username'@'xxx.xxx.xx.x' identified by 'password' WITH GRANT OPTION;
上面的語句表示將數據庫 db_name 的所有權限授權給 username 這個用戶,允許 username 用戶在 xxx.xxx.xx.x 這個 IP 進行遠程登陸,并設置 username 用戶的密碼為 password。
注:分析參數:
all PRIVILEGES 表示賦予所有的權限給指定用戶,這里也可以替換為賦予某一具體的權限,例如:[select](http://www.cnblogs.com/tags.php/select/),insert,update,delete,create,drop 等,具體權限間用“,”半角逗號分隔。
db_name.* 表示上面的權限是針對于哪個表的,db_name指的是數據庫名稱,后面的 * 表示對于所有的表,由此可以推理出:對于全部數據庫的全部表授權為“*.*”,對于某一數據庫的全部表授權為“數據庫名.*”,對于某一數據庫的某一表授權為“數據庫名.表名”。
username表示你要給哪個用戶授權,這個用戶可以是存在的用戶,也可以是不存在的用戶。
xxx.xxx.xx.x 表示允許遠程連接的 IP 地址,你的IP,如果想不限制鏈接的 IP 則設置為“%”即可。
password 為用戶username的密碼。
例1、增加一個用戶user001密碼為123456,讓他可以在任何主機上登錄,并對所有數據庫有查詢、插入、修改、刪除的權限。首先用以root用戶連入MySQL,然后鍵入以下命令:
mysql> grant select,insert,update,delete on *.* to user001@"%" Identified by "123456"
例2、增加一個用戶user002密碼為123456,讓此用戶只可以在localhost上登錄,也可以設置指定IP,并可以對數據庫test進行查詢、插入、修改、刪除的操作 (localhost指本地主機,即MySQL數據庫所在的那臺主機)
//這樣用戶即使用知道user_2的密碼,他也無法從網上直接訪問數據庫,只能通過MYSQL主機來操作test庫。
//首先用以root用戶連入MySQL,然后鍵入以下命令:
mysql>grant select,insert,update,delete on test.* to user002@localhost identified by "123456";