一、Linux下登錄mysql
1、登錄MySQL數據庫(mysql -hlocalhost -uroot -p)
mysql -hlocalhost -uroot -p
-h數據庫主機
-u用戶
-p密碼
-P端口號(大寫P)
例如:mysql -h127.0.0.1 -uroot -p123456 -P3306
PS:-p密碼部分,可以直接指定密碼,如果不指定,會提示輸入密碼。
2、查看當前數據庫列表--顯示數據庫(show databases)
略
3、激活當前數據庫--選擇數據庫(use hivgw)
略
4、設置字符編碼爲UTF8 (set names utf8)
略
5、退出mysql(quit或者exit)
略
二、MySQL用戶管理:添加用戶、授權、刪除用戶
1、添加用戶
以root用戶登錄數據庫,運行以下命令:
create user wolf identified by 'wolf';
上面的命令創建了用戶wolf,密碼是wolf。在mysql.user表裏可以查看到新增用戶的信息:
2、授權
命令格式:grant privilegesCode on dbName.tableName to username@host identified by "password";(回收權限使用命令:revoke …… from ……)
grant all privileges on private_chat.* to wolf@'%' identified by 'wolf';
flush privileges;
上面的語句將private_chat數據庫的所有操作權限都授權給了用戶wolf。
在mysql.db表裏可以查看到新增數據庫權限的信息:
略
也可以通過show grants命令查看權限授予執行的命令:
show grants for 'wolf';
授權命令說明:
(1)privilegesCode表示授予的權限類型,常用的有以下幾種類型[1]:
all privileges:所有權限。
select:讀取權限。
delete:刪除權限。
update:更新權限。
create:創建權限。
drop:刪除數據庫、數據表權限。
USAGE:沒有權限。
所有權限說明,請見文末附一。
(2)dbName.tableName表示授予權限的具體庫或表,常用的有以下幾種選項:
.:授予該數據庫服務器所有數據庫的權限。
dbName.*:授予dbName數據庫所有表的權限。
dbName.dbTable:授予數據庫dbName中dbTable表的權限。
(3)username@host表示授予的用戶以及允許該用戶登錄的IP地址。其中Host有以下幾種類型:
localhost:只允許該用戶在本地登錄,不能遠程登錄。
%:允許在除本機之外的任何一臺機器遠程登錄。
192.168.52.32:具體的IP表示只允許該用戶從特定IP登錄。
::1 ::1就是兼容支持ipv6的,表示同ipv4的127.0.0.1
(4)password指定該用戶登錄時的密碼。
(5)flush privileges表示刷新權限變更。
設置權限時必須給出的信息:
(1)要授予的權限
(2)被授予訪問權限的數據庫或表
(3)用戶名
grant和revoke可以在幾個層次上控制訪問權限:
(1)整個服務器,使用 grant ALL 和revoke ALL
(2)整個數據庫,使用on database.*
(3)特定表,使用on database.table
(4)特定的列
(5)特定的存儲過程
3、修改密碼
運行以下命令可以修改用戶密碼
update mysql.user set password = password('wolfnew') where user = 'wolf' and host = '%';
flush privileges;
4、刪除用戶
運行以下命令可以刪除用戶:
drop user wolf@'%';
drop user命令會刪除用戶以及對應的權限,執行命令後你會發現mysql.user表和mysql.db表的相應記錄都消失了。
5、常用命令組
創建用戶並授予指定數據庫全部權限:適用於Web應用創建MySQL用戶
create user wolf identified by 'wolf';
grant all privileges on wolfDb.* to wolf@'%' identified by 'wolf';
flush privileges;
創建了用戶wolf,並將數據庫wolfDB的所有權限授予wolf。如果要使wolf可以從本機登錄,那麼可以多賦予localhost權限:
grant all privileges on wolfDb.* to wolf@'localhost' identified by 'wolf';
附一:權限表
權限 |
說明 |
all |
|
alter |
|
alter routine |
使用alter procedure 和drop procedure |
create |
|
create routine |
使用create procedure |
create temporary tables |
使用create temporary table |
create user |
|
create view |
|
delete |
|
drop |
|
execute |
使用call和存儲過程 |
file |
使用select into outfile 和load data infile |
grant option |
可以使用grant和revoke |
index |
可以使用create index 和drop index |
insert |
|
lock tables |
鎖表 |
process |
使用show full processlist |
reload |
使用flush |
replication client |
服務器位置訪問 |
replocation slave |
由複製從屬使用 |
select |
|
show databases |
|
show view |
|
shutdown |
使用mysqladmin shutdown 來關閉mysql |
super |
|
update |
|
usage |
無訪問權限 |