支持管理員鎖定/解鎖用戶帳戶,語句:
創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供古田網(wǎng)站建設、古田做網(wǎng)站、古田網(wǎng)站設計、古田網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、古田企業(yè)網(wǎng)站模板建站服務,十載古田做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。
?
1鎖定
ALTER USER 'hechunyang'@'%' ACCOUNT LOCK; |
?
當鎖定后,用戶再次登錄時,提示如下信息:
# MySQL -h227.0.0.1 -uhechunyang -p -P3312 Enter password: ERROR 4151 (HY000): Access denied, this account is locked |
?
2解鎖
ALTER USER 'hechunyang'@'%' ACCOUNT UNLOCK; |
?
注:帳戶被鎖定,現(xiàn)有連接不受影響,新的客戶端不允許連接。
?
3查看賬戶鎖定信息
> show create user hechunyang@'%'\G; *************************** 1. row *************************** CREATE USER for hechunyang@%: CREATE USER 'hechunyang'@'%' IDENTIFIED BY PASSWORD '*1DA3AF2348DE66F7554E816DEDC1F1340814842E'ACCOUNT LOCK |
?
> select * from mysql.global_priv where user='hechunyang'\G; *************************** 1. row *************************** Host: % User: hechunyang Priv: {"access":1073740799,"plugin":"mysql_native_password","authentication_string":"* 1DA3AF2348DE66F7554E816DEDC1F1340814842E","password_last_changed":15 76823835,"account_locked":true} |
1設置用戶到期時間
>CREATE USER 'hechunyang'@'%' PASSWORD EXPIRE INTERVAL 1 DAY; ? >ALTER USER 'hechunyang'@'%' PASSWORD EXPIRE INTERVAL 1 DAY; |
?
注:單位默認只有DAY(天),最小為1天。
?
當用戶權(quán)限到期后,登錄時提示修改密碼,如下:
hechunyang@127.0.0.1[(none)]>show processlist; ERROR 1820 (HY000): You must SET PASSWORD before executing this statement ERROR 1820 (HY000): You must SET PASSWORD before executing this statement ERROR 1820 (HY000): You must SET PASSWORD before executing this statement |
?
2解除限制
>ALTER USER 'hechunyang'@'%' PASSWORD EXPIRE NEVER; |
?
MariaDB支持表的某一字段,或者整張表,字符集utf8轉(zhuǎn)換為utf8mb4采用ALGORITHM=INSTANT算法(只修改字典信息)
?
例表結(jié)構(gòu):
CREATE TABLE t1 ( ??id int(11) DEFAULT NULL, ??cid int(11) DEFAULT NULL, ??name varchar(60) DEFAULT NULL, ??KEY IX_cid (cid) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; |
?
DDL變更語句(秒級更改)
alter table t1 modify name varchar(60) charset utf8mb4, ALGORITHM=INSTANT; |
?
需要注意的地方:
1)反過來utf8mb4->utf8是不支持INSTANT算法的。
2)如果你的字段是latin1拉丁文,轉(zhuǎn)utf8/utf8mb4是不支持INSTANT算法的。
?
注:在MySQL 8.0.18版本中,修改字符集utf8->utf8mb4是無法使用到INSTANT算法的,需要重建表(ALGORITHM=COPY算法),且會鎖表,update/delete/insert/replace into語句會被MDL鎖?。╓aiting for table metadata lock)
例表結(jié)構(gòu):
CREATE TABLE t1 ( ??id int(11) DEFAULT NULL, ??cid int(11) DEFAULT NULL, ??name varchar(60) DEFAULT NULL, ??KEY IX_cid (cid) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; |
?
DDL變更語句(秒級更改)
alter table t1 modify name varchar(80) DEFAULT NULL, ALGORITHM=INSTANT; |
?
需要注意的地方:
1)varchar(60)減少到varchar(40)是不支持INSTANT算法的。
2)大于并等于varchar(256),這里的256是指字節(jié)(UTF8占用3字節(jié)),是不支持INSTANT算法的。
?
注:只對varchar類型采用INSTANT算法,char和int是無效的,仍舊是需要拷貝數(shù)據(jù)且鎖表。