MySql8

MySql8.0简介

2018.4.20发布MySql8.0

主要增强: SQL窗口函数, 共用表表达式, NOWALT和SKIP LOCKED, 降序索引, 分组, 正则表达式, 字符集, 成本模型和直方图, JSON扩展语法, 改进排序和部分更新功能

8.0新特性:

  1. JSON表函数,可以使用json数据的sql机制
  2. gis地理支持
  3. ddl元数据存储在单个事物数据表字典中
  4. 可观察性能架构,配置变量和错误记录增强
  5. sql角色,密码强度等

账号授权创建

-- 旧版本授权
grant all privileges on . to 'abc'@'localhost' identified by 'abcsss';
-- 新版本授权,需要分开执行
create user 'abc'@'localhost' identified by 'abcd1234';
grant all privileges on . to 'abc'@'localhost';

认证插件

-- 查看身份认证插件命令
show variables like 'default_authentication_plugin%';
5.7 ---> mysql_native_password
8.0 ---> caching_sha2_password
-- 查看当前版本
select version();
-- 修改系统变量更改配置 my.ini文件的mysqld
default_authentication_plugin=mysql_native_password

密码管理

-- 查看当前管理策略
show variables like 'password%';

password_history	0  -- 修改密码不允许与进几次使用的密码重复
password_require_current	OFF  -- 修改密码是否需要提供当前密码
password_reuse_interval	0  --修改密码不允许与近几天密码重复
my.ini配置文件中课更改配置重启服务器生效
或者只修改当前用户的策略,不用重启服务器
alter user 'abc'@'localhost' password history 5;

角色管理

-- 创建角色
create role 'superman';
-- 添加权限
grant insert,update on . to 'superman';
-- 创建用户
create user 'user_1' identified by 'abcd1234';
-- 给用户添加角色权限
grant 'superman' on . to 'user_1';
-- 查看用户权限
show grants for 'user_1';
-- 启用角色
set default role 'superman' to 'user_1';
-- 启用多个角色
set default role all to 'user_1';
-- 撤销权限
revoke insert,update on . from 'user_1';

升级到Mysql8准备

注意事项:

  1. 字符集设置,避免新旧对象字符集不一致, 可在配置文件江字符集合校验规则改为旧版本
  2. 密码认证插件, 可以采用旧的mysql_native_password认证
  3. sql_model支持, 8.0不支持NO_AUTO_CREATE_USER
-- 查看当前管理策略
show variables like 'default_authentication_plugin%';
-- 查看版本
select version();
-- 查看密码策略
show variables like 'password%';
-- 查看mysql字符集设置
show variables like 'character%';
– character_set_server:默认的内部操作字符集
– character_set_client:客户端来源数据使用的字符集
– character_set_connection:连接层字符集
– character_set_results:查询结果字符集
– character_set_database:当前选中数据库的默认字符集
– character_set_system:系统元数据(字段名等)字符集

-- 查看mysql所有数据库字符集
select SCHEMA_NAME,DEFAULT_CHARACTER_SET_NAME,DEFAULT_COLLATION_NAME,SQL_PATH from information_schema.SCHEMATA;
-- 查看表字符集
show table status from oauth_test like '%t6%' ;
-- 查看列字符集
show full columns from oauth_test.`t_user`;
-- 查看sql_mode
select @@SESSION.sql_mode;

posted @ 2024-12-17 15:52  若云  阅读(20)  评论(0)    收藏  举报