0
点赞
收藏
分享

微信扫一扫

mysql8 配置密码和用户创建以及授权

月白色的大狒 2024-11-04 阅读 10



Hphya0Wz4e?@

alter user 'root'@'localhost' identified by 'Hphya0Wz4e?@';
-- alter user 'root'@'localhost' identified by 'root__';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root__';
create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root__';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;

一、mysql8 配置密码问题 ERROR1819

但是新版 mysql 加入密码安全度检测机制,导致报错
解决方法如下
1. 查看当前安全变量值

show VARIABLES LIKE 'validate_password%';

mysql8 配置密码和用户创建以及授权_ide

set global validate_password.policy=0;

mysql8 配置密码和用户创建以及授权_MySQL_02

set global validate_password.length=1;

mysql8 配置密码和用户创建以及授权_ide_03

最短还是为 4 位。

alter user 'root'@'localhost' identified by '123456';
flush privileges;



二、创建用户并授权或者取消授权

创建用户

use mysql;

create user 'root'@'%' identified by 'root__';

-- 查看新创建的用户
select * from user where user = 'username';

-- 查看权限
show grants for 'username'@'localhost';

分配权限

grant all privileges on database.table to 'user'@'%'; // 分配权限到表
grant all privileges on database.* to 'user'@'%'; // 分配权限到数据库
grant all privileges on *.* to 'user'@'%'; // 分配权限到所有数据库

超级用户 

-- grant:授权
-- all privileges:所有的权限
-- on *.*:在哪个数据库的那个表
-- to username@localhost:对哪个用户的哪个主机
-- with grant option:是不是将username用户自己本身的权限赋给其他账户
grant all privileges on *.* to 'username'@'localhost' with grant option;
-- 立即生效
flush privileges;

普通用户

-- usage:无权限,当你想创建一个没有权限的用户时候,指定usage
-- show:查看的权限,赋权限报错了,我也不知道咋回事
-- view:视图的权限(mysql8.0+赋权限出错)ERROR 3619 (HY000): Illegal privilege level specified for VIEW,如下图所示。
-- create temporary tables:创建临时表的权限
-- excute:执行的权限
grant usage,select,insert,update,delete,create temporary tables,execute on *.* to username@localhost;



三、SQLyog 连接 MySQL8.0 报 2058 错误的完美解决方法

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root__';

select host,user,plugin,authentication_string from user where user = 'root';
select host,user,plugin from user where user = 'root';

mysql8 配置密码和用户创建以及授权_ide_04

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root__';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root__';

mysql8 配置密码和用户创建以及授权_mysql_05

引言

用 SQLyog 连接 MySQL8.0 (社区版:mysql-installer-community-8.0.15.0.msi),出现错误 2058 (Plugin caching_sha2_password could not be loaded:xxxx),通过查询资料了解了该错误的原因并在本文中提出了该问题的方案。

原因

该错误提示如下图所示:

mysql8 配置密码和用户创建以及授权_mysql_06

具体原因:新的 MySQL 8.0 安装,在初始化数据目录时,将 ‘root'@'localhost' 创建帐户,并且该帐户 caching_sha2_password 默认使用,密码的加密方法发生了改变,因此 SQLyog 不能正常解析,才报出如上错误。

解决方案

以管理员运行【开始】-【所有程序】-【MySQL】-【MySQL Server 8.0】-【MySQL 8.0 Command Line Client - Unicode】,如下图所示:

mysql8 配置密码和用户创建以及授权_MySQL_07

键入 root 账号的密码如下所示.

mysql8 配置密码和用户创建以及授权_ide_08

按照以下 sql 格式输入命令,其中 password 是指 root 账号的密码。

ALTER USER 'root' @ 'localhost' IDENTIFIED WITH mysql_native_password BY 'password' ;

执行该命令,结果为 Query OK 说明修改成功,如下图所示。

mysql8 配置密码和用户创建以及授权_mysql_09

用 SQLyog 重新连接 MySQL,可以成功连接。此时查看 mysql 数据库中的 user 表,发现 root 账号的插件名称发生了变化,如下所示。

举报

相关推荐

0 条评论