本文實例,運行於 MySQL 5.0 及以上版本,爲以後查詢方便標記於此,MySQL使用基本語句:
一、連接MYSQL。
格式: mysql -h主機地址 -u用戶名 -p用戶密碼
1、例1:連接到本機上的MYSQL。
首先在打開DOS窗口,然後進入目錄 mysqlbin,再鍵入命令mysql -uroot -p,回車後提示你輸密碼,如果剛安裝好MYSQL,超級用戶root是沒有密碼的,故直接回車即可進入到MYSQL中了,MYSQL的提示符是:mysql>
2、例2:連接到遠程主機上的MYSQL。假設遠程主機的IP爲:110.110.110.110,用戶名爲root,密碼爲abcd123。則鍵入以下命令:
mysql -h110.110.110.110 -uroot -pabcd123
(注:u與root可以不用加空格,其它也一樣)
3、退出MYSQL命令: exit (回車)
二、修改密碼。
格式:mysqladmin -u用戶名 -p舊密碼 password 新密碼
1、例1:給root加個密碼ab12。首先在DOS下進入目錄mysqlbin,然後鍵入以下命令
mysqladmin -uroot -password ab12
注:因爲開始時root沒有密碼,所以-p舊密碼一項就可以省略了。
2、例2:再將root的密碼改爲djg345。
mysqladmin -uroot -pab12 password djg345
三、(注意:和上面不同,下面的因爲是MYSQL環境中的命令,所以後面都帶一個分號作爲命令結束符)
格式:grant select on 數據庫.* to 用戶名@登錄主機 identified by \"密碼\"
例1、增加一個用戶test1密碼爲abc,讓他可以在任何主機上登錄,並對所有數據庫有查詢、插入、修改、刪除的權限。首先用以root用戶連入MYSQL,然後鍵入以下命令:
grant select,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頁來訪問了。
grant select,insert,update,delete on mydb.* to test2@localhost identified by \"abc\";
如果你不想test2有密碼,可以再打一個命令將密碼消掉。
grant select,insert,update,delete on mydb.* to test2@localhost identified by \"\";
在上篇我們講了登錄、增加用戶、密碼更改等問題。下篇我們來看看MYSQL中有關數據庫方面的操作。注意:你必須首先登錄到MYSQL中,以下操作都是在MYSQL的提示符下進行的,而且每個命令以分號結束。
MySQL 賦予用戶權限命令的簡單格式可概括爲:grant 權限 on 數據庫對象 to 用戶
一、grant 普通數據用戶,查詢、插入、更新、刪除 數據庫中所有表數據的權利。
用一條 MySQL 命令來替代:
grant select, insert, update, delete on testdb.* to common_user@'%'
二、grant 數據庫開發人員,創建表、索引、視圖、存儲過程、函數。。。等權限。
grant 創建、修改、刪除 MySQL 數據表結構權限。
grant create on testdb.* to developer@'192.168.0.%';
grant alter on testdb.* to developer@'192.168.0.%';
grant drop on testdb.* to developer@'192.168.0.%';
grant 操作 MySQL 外鍵權限。
grant references on testdb.* to developer@'192.168.0.%';
grant 操作 MySQL 臨時表權限。
grant create temporary tables on testdb.* to developer@'192.168.0.%';
grant 操作 MySQL 索引權限。
grant index on testdb.* to developer@'192.168.0.%';
grant 操作 MySQL 視圖、查看視圖源代碼 權限。
grant create view on testdb.* to developer@'192.168.0.%';
grant show view on testdb.* to developer@'192.168.0.%';
grant 操作 MySQL 存儲過程、函數 權限。
grant create routine on testdb.* to developer@'192.168.0.%'; -- now, can show procedure status
grant alter routine on testdb.* to developer@'192.168.0.%'; -- now, you can drop a procedure
grant execute on testdb.* to developer@'192.168.0.%';
三、grant 普通 DBA 管理某個 MySQL 數據庫的權限。
grant all privileges on testdb to dba@'localhost'
其中,關鍵字 “privileges” 可以省略。
四、grant 高級 DBA 管理 MySQL 中所有數據庫的權限。
grant all on *.* to dba@'localhost'
五、MySQL grant 權限,分別可以作用在多個層次上。
1. grant 作用在整個 MySQL 服務器上:
grant select on *.* to dba@localhost; -- dba 可以查詢 MySQL 中所有數據庫中的表。
grant all on *.* to dba@localhost; -- dba 可以管理 MySQL 中的所有數據庫
2. grant 作用在單個數據庫上:
grant select on testdb.* to dba@localhost; -- dba 可以查詢 testdb 中的表。
3. grant 作用在單個數據表上:
grant select, insert, update, delete on testdb.orders to dba@localhost;
4. grant 作用在表中的列上:
grant select(id, se, rank) on testdb.apache_log to dba@localhost;
5. grant 作用在存儲過程、函數上:
grant execute on procedure testdb.pr_add to 'dba'@'localhost'
grant execute on function testdb.fn_add to 'dba'@'localhost'
六、查看 MySQL 用戶權限
查看當前用戶(自己)權限:
show grants;
查看其他 MySQL 用戶權限:
show grants for dba@localhost;
七、撤銷已經賦予給 MySQL 用戶權限的權限。
revoke 跟 grant 的語法差不多,只需要把關鍵字 “to” 換成 “from” 即可:
grant all on *.* to dba@localhost;
revoke all on *.* from dba@localhost;
八、MySQL grant、revoke 用戶權限注意事項
1. grant, revoke 用戶權限後,該用戶只有重新連接 MySQL 數據庫,權限才能生效。
2. 如果想讓授權的用戶,也可以將這些權限 grant 給其他用戶,需要選項 “grant option“
grant select on testdb.* to dba@localhost with grant option;
這個特性一般用不到。實際中,數據庫權限最好由 DBA 來統一管理。
---------------------------------------------------------------------------------------
1.MySQL->CREATE DATABASE dbname;//創建數據庫
MySQL->CREATE TABLE tablename;//創建表
MySQL->SHOW DATABASES;//顯示數據庫信息,有那些可用的數據庫。
MySQL->USE dbname;//選擇數據庫
MySQL->SHOW TABLES;//顯示錶信息,有那些可用的表
MySQL->DESCRIBE tablename;//顯示創建的表的信息
2.數據庫備份/恢復
MySQL->mysqldump –uroot –pxcg213 sealightmis>d:\sealightmis.sql
MySQL->mysql –uroot –pxcg213 sealightmis<d:\sealightmis.sql
3.數據庫結構備份
MySQL->mysqldump -- opt -d –uroot –pxcg213 sealightmis>d:\sealightmis_DDL.sql
MySQL->mysql –uroot –pxcg213 sealightmis<d:\sealightmis_DDL.sql
4.數據庫結構修改常用語句
MySQL更改表結構添加字段:
1. alter table `user_movement_log`
2. Add column GatewayId int not null default 0 AFTER `Regionid` (在哪個字段後面添加)
MySQL更改表結構刪除字段:
1. alter table `user_movement_log` drop column Gatewayid
MySQL更改表結構調整字段順序:
1. ALTER TABLE `user_movement_log` CHANGE `GatewayId` `GatewayId` int not null default 0 AFTER RegionID
主鍵
al
1. alter table tabelname add new_field_id int(5) unsigned default 0 not null auto_increment ,add primary key (new_field_id);
增加一個新列
1. alter table t2 add d timestamp;
2. alter table infos add ex tinyint not null default ‘0′;
刪除列
1. alter table t2 drop column c;
重命名列
1. alter table t1 change a b integer;
改變列的類型
1. alter table t1 change b b bigint not null;
2. alter table infos change list list tinyint not null default ‘0′;
重命名錶
1. alter table t1 rename t2;
加索引
1. > alter table tablename change depno depno int(5) not null;
2. > alter table tablename add index 索引名 (字段名1[,字段名2 …]);
3. > alter table tablename add index emp_name (name);
MySQL更改表結構中加主關鍵字的索引
1. > alter table tablename add primary key(id);
加唯一限制條件的索引
1. > alter table tablename add unique emp_name2(cardnumber);
刪除某個索引
1. >alter table tablename drop index emp_name;
修改表:
增加字段:
1. > ALTER TABLE table_name ADD field_name field_type;
修改原字段名稱及類型:
1. > ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;
刪除字段:
1. > ALTER TABLE table_name DROP field_name;
以上的相關內容就是對MySQL更改表結構添加、刪除、修改字段、調整字段順序的介紹,望你能有所收穫。
6.MySQL UPDATE語句支持以下修飾符
MySQL> UPDATE persondata SET ageage=age+1;
MySQL> UPDATE persondata SET ageage=age*2, ageage=age+1;
SQL>UPDATE items,month SET items.price=month.price WHERE items.id=month.id;