MariaDB 10.4.11(GA)の変更および改良

1、アカウントのロックアウト

ロックへの管理者が許可する / ユーザーアカウント、声明のロックを解除:

 

1 ロック

ALTER USER 'hechunyang' @ '%' のACCOUNT LOCK;

 

ときに、ユーザーがログイン再び上で、ロックされた場合は、次のメッセージが表示されます。

#mysqlの-h127.0.0.1 -uhechunyang -p -P3312

パスワードを入力する:

ERROR 4151(HY000):アクセスが拒否された、このアカウントがロックされています

 

2 ロック解除

ALTER USER 'hechunyang' @ '%' ACCOUNTのUNLOCK;

 

注:アカウントがロックアウトされ既存の接続は影響を受けません、新しいクライアントが接続を許可しません。

 

3 ビューアカウントのロックアウト情報

>は、ユーザーhechunyang @ '%' \ Gを作成して表示し、

*************************** 1行******************** *******

hechunyang @%のためのユーザーを作成します。USER 'hechunyang' を作成@ '%'

PASSWORD BY IDENTIFIED

'* 1DA3AF2348DE66F7554E816DEDC1F1340814842E' 口座LOCK

 

> \ユーザー= 'hechunyang' mysql.global_privから* Gを選択します。

*************************** 1行******************** *******

ホスト: %

ユーザー:hechunyang

プライベート:

{ "アクセス":1073740799、 "プラグイン": "mysql_native_password"、 "authentication_string": "*

1DA3AF2348DE66F7554E816DEDC1F1340814842E」、 "" password_last_changed:15

76823835、真: "account_locked" }


2、ユーザーのパスワードが期限切れになります

1 セットの有効期限ユーザー

> 'hechunyang' @ '%' PASSWORDは1 DAY INTERVALを期限切れUSERを作成します。

 

> ALTER USERの 'hechunyang' @ '%' PASSWORDはINTERVAL DAY 1 EXPIRE。

 

注:のみ、デフォルトの単位の DAY (日)、最低1 日。

 

ユーザーは、右の期限が切れると、次のように、次回ログオン時にパスワード変更を促さ:

[email protected] [(なし)]>表示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;

 

3、支持更改字符集utf8->utf8mb4采用ALGORITHM=INSTANT算法

MariaDB支持表的某一字段,或者整张表,字符集utf8转换为utf8mb4采用ALGORITHM=INSTANT算法(只修改字典信息)

 

例表结构:

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拉丁文,转utf8/utf8mb4不支持INSTANT算法的。

 

注:MySQL 8.0.18版本中,修改字符集utf8->utf8mb4是无法使用到INSTANT算法的,需要重建表(ALGORITHM=COPY算法),且会锁表,update/delete/insert/replace into语句会被MDL锁住(Waiting for table metadata lock


4、字段长度不大于varchar(256),支持采用ALGORITHM=INSTANT算法

例表结构:

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;

 

需要注意的地方:

1varchar(60)减少到varchar(40)是不支持INSTANT算法的。

2)大于并等于varchar(256),这里的256是指字节(UTF8占用3字节),是不支持INSTANT算法的。

 

注:只对varchar类型采用INSTANT算法,charint是无效的,仍旧是需要拷贝数据且锁表。





おすすめ

転載: blog.51cto.com/hcymysql/2460464