Mysql賬戶管理以及DDT語言

2021-10-07 04:31:49 字數 4353 閱讀 9738

本章講解的是mysql基礎的管理以及其他的一些常識。

賬戶管理是mysql使用者管理最基本的內容。包括登入,退出mysql伺服器、建立使用者、刪除使用者、密碼管理和許可權管理等內容。

1.新建普通使用者

1)使用create user語句建立使用者,必須要擁有create user許可權。其格式如下:

create user user[identified by [password]

'password'],

[user[identified by [password]

'password']]...

其中,user引數表示新建使用者的賬戶,user由使用者名稱(user)和主機名(host)構成;identified by關鍵字用來設定使用者的密碼;password引數表示使用者的密碼;如果密碼是乙個普通的字串,就不需要使用password關鍵字。可以沒有初始密碼。

例:

create user 'admin'@'%' identified by 'admin'
執行之後user表會增加一行記錄,但許可權暫時全部為』n』。

2)用insert語句新建普通使用者

可以使用insert語句直接將使用者的資訊新增到mysql.user表。但必須擁有mysql.user表的insert許可權。

insert into mysql.

user

(host,user,password,ssl_cipher,x509_issuer,x509_subject)

values

('%'

,'newuser1'

,password

('123456'),

'','',

'')

執行insert之後,需要使用一下命令來重新整理許可權:

flush privileges
3)用grant語句來新建普通使用者

用grant來建立新的使用者時,能夠在建立使用者時為使用者授權。但需要擁有grant許可權。

grant priv_type on database.table

to user[identified by [password]

'password'][

,user [identified by [password]

'password']...]

2刪除普通使用者1)drop user語句刪除普通使用者

需要擁有drop user許可權

drop user user[

,user]..

.

user是需要刪除的使用者,由使用者名稱(user)和主機名(host)構成。

drop user 'newuser1'@'%'
2)delete語句刪除普通使用者

可以使用delete語句直接將使用者的資訊從mysql.user表中刪除。但必須擁有對mysql.user表的delete許可權。

delete from mysql.user where host =

'%' and user =

'admin'

刪除完成後,一樣要flush privileges才生效。

3.忘記密碼解決方式

如果root使用者密碼丟失了,會給使用者造成很大的麻煩。但是,可以通過某種特殊方法登入到root使用者下,然後修改密碼。

登入root使用者,並且設定新密碼

mysql -u root

必須使用update語句更新mysql資料庫下的user表,而不能使用set語句,因為–skip-grant-tables不能使用set語句。

修改完密碼以後,flush privileges語句載入許可權表,新密碼即生效。

常用引擎

在mysql中,不需要在整個伺服器中使用同一種儲存引擎,針對具體的要求,可以對每乙個表使用不同的儲存引擎。support列的值表示某種引擎是否能使用:yes表示可以使用、no表示不能使用、default表示該引擎為當前預設的儲存引擎 。下面來看一下其中幾種常用的引擎。

innodb儲存引擎:innodb是事務型資料庫的首選引擎,支援事務安全表(acid),支援行鎖定和外來鍵,上圖也看到了,innodb是預設的mysql引擎。

myisam儲存引擎:myisam基於isam儲存引擎,並對其進行擴充套件。它是在web、資料倉儲和其他應用環境下最常使用的儲存引擎之一。myisam擁有較高的插入、查詢速度,但不支援事物。

memory儲存引擎:memory儲存引擎將表中的資料儲存到記憶體中,未查詢和引用其他表資料提供快速訪問。

不同的儲存引擎都有各自的特點,以適應不同的需求,如圖所示:

常見約束

分類:六大約束

1.not null :非空,用於保證該字段的值不能為空。例如學生表的學生姓名及學號等等。

2.default:預設值,用於保證該字段有預設值。例如學生表的學生性別

3.primary key:主鍵,用於保證該字段的值具有唯一性並且非空。例如學生表的學生學號等。

4.unique:唯一,用於保證該字段的值具有唯一性,可以為空。例如註冊使用者的手機號,身份證號等。

5.check:檢查約束(mysql不支援),檢查欄位的值是否為指定的值。

6.foreign key:外來鍵,用於限制兩個表的關係,用於保證該字段的值必須來自於主表的關聯列的值,在從表新增外來鍵約束,用於引用主表中某些的值。

新增列級約束 :

create table if

not exists t_stuinfo

(2 id int primary key,

3 stuname varchar(20

)not null,

4 gender char(1

)check

(gender=

'男'or gender=

'女')

,5 seat int unique,

6 age int

default18,

7 majorid int references major

(id)8)

;

新增表級約束:

create table if

not exists t_stuinfo

(2 id int

,3 stuname varchar(20

),4 gender char(1

),5 seat int

,6 age int

,7 majorid int

,8 constraint pk primary key

(id)

,9 constraint uq unique

(seat)

,10 constraint ck check

(gender=

'男'or gender=

'女')

,11 constraint fk_stuinfo_major foreign key

(majorid) references major

(id)12)

;

表的管理

建立表語句:

create table employee

(     eid int,

ename varchar(20

),gender char(2

),birthday date,

email varchar(20

),remark varchar(50));

檢視表結構:

desc employee;
刪除表:

drop table employee;
修改多個字段:

update user set birthday=

'2018-08-30'

,score=

99 where sid=

2;

思維導圖

mysql 賬戶管理 MySQL賬戶管理

登陸 退出mysql伺服器 登陸mysql伺服器時,可以使用mysql命令並在後面指定登陸主機以及使用者名稱和密碼。mysql命令的常用引數如下 h主機名,該引數指定主機名或ip,如果不指定,預設是localhost。u使用者名稱,該引數指定使用者名稱。p密碼,該引數指定登陸密碼。如果該引數後面有欄...

mysql 賬戶 mysql 賬戶管理

mysql增加新使用者賬戶 可以用兩種方式建立mysql賬戶 1.使用grant語句 2.直接操作mysql授權表 最好的方法是使用grant語句,因為這樣更精確,錯誤少。建立超級 使用者 mysql grant all privileges on to monty localhost identi...

MYSQL 賬戶管理

方法 1 mysqladmin u user h host password newpass 方法2 set password for user host password newpass 方法3 set password password newpass 這方方法是更改當前登入賬戶密碼 方法4 直...