Windows安装Mysql 8 以及mysql8 密码重置

虽然一般公司都有研发环境的研发库,但是感觉还是没有搞个自己的本地研发库乱搞来得爽,今天在我的小红点本本上搞了个MySql  8.x,记录一下。

下载安装就不过多介绍了,就是直接去官网,click download就OK,官网download链接:https://dev.mysql.com/downloads/【默认是8.x】,

5.7 链接:https://dev.mysql.com/downloads/windows/installer/5.7.html,因为本文主要是写安装8.0的坑,所以其他就不过多介绍了,直接 google吧。

windows修改密码:https://www.cnblogs.com/woider/p/6725867.html

mysql 8.0 + 安装:https://blog.csdn.net/qq_37856300/article/details/83060124

1.下载

 

 

省略 N个click

*

*

*

安装完成你就会和我一样纳闷,为啥没有设置密码就直接安好了,这畅快的太不自然了,然后安装完会生成一个默认密码,记得要把他保存起来排【待会登录时候不能粘贴,需要手动输入】,我就比较坑了,密码中有个l,也不知道他是大写L还是小写l,还是大写I还是小写i,还是数字1,麻蛋,然后就有了下文。

2.以下是改密码操作

2.1密码配置文件内容:

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456a?';

2.2自定义密码启动

D:\my-Java\mysql-8.0.15-winx64\bin>mysqld --init-file="D:\\my-Java\\mysql-8.0.15-winx64\\pass.txt" --console

参考:http://yshblog.com/blog/195

3.新增用户操作

3.1 创建用户

CREATE USER 'rose'@'%' IDENTIFIED BY '123456';

说明:

  • hostxxx:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%
  • passwordxxx:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器

示例:

CREATE USER 'jack'@'localhost' IDENTIFIED BY '123456'; CREATE USER 'rose'@'192.168.38.110_' IDENDIFIED BY '123456'; CREATE USER 'rose'@'%' IDENTIFIED BY '123456'; CREATE USER 'rose'@'%' IDENTIFIED BY ''; CREATE USER 'rose'@'%';

注意:

创建用户后,该用户只能连接到数据库服务器,但并没有操作该数据库服务器的权限。

3.2 授权

GRANT privilegesxxx ON databasenamexxx.tablenamexxx TO 'usernamexxx'@'hostxxx'

说明:

  • privilegesxxx:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
  • databasenamexxx:数据库名
  • tablenamexxx:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*

示例:

GRANT SELECT, INSERT ON DbXXX.user TO 'jack'@'%'; GRANT ALL ON *.* TO 'jack'@'%'; GRANT ALL ON DbXXX.* TO 'jack'@'%';

注意:

1.  授权之后需要用户重连MySQL,才能获取相应的权限。

2. 用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:

GRANT privilegesxxx ON databasenamexxx.tablenamexxx TO 'usernamexxx'@'hostxxx' WITH GRANT OPTION;

3.3 设置与更改用户密码

SET PASSWORD FOR 'usernamexxx'@'hostxxx' = PASSWORD('newpasswordxxx');

如果是当前登陆用户用:

SET PASSWORD = PASSWORD("newpasswordxxx");

示例:

SET PASSWORD FOR 'jack'@'%' = PASSWORD("123456");

3.4 撤销用户权限

REVOKE privilegexxx ON databasenamexxx.tablenamexxx FROM 'usernamexxx'@'hostxxx';

示例:

REVOKE SELECT ON *.* FROM 'jack'@'%';

注意:

假如你在给用户'jack'@'%'授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'jack'@'%',则在使用REVOKE SELECT ON *.* FROM 'jack'@'%';命令并不能撤销该用户对test数据库中user表的SELECT 操作。相反,如果授权使用的是GRANT SELECT ON *.* TO 'jack'@'%';则REVOKE SELECT ON test.user FROM 'jack'@'%';命令也不能撤销该用户对test数据库中user表的Select权限。

具体信息可以用命令SHOW GRANTS FOR 'jack'@'%'; 查看。

3.5 删除用户

DROP USER 'usernamexxx'@'hostxxx';

4.连接异常处理

MySql 8.0.11 客户端连接失败:2059 - Authentication plugin 'caching_sha2_password' cannot be loaded: ....

 

原来,MySql 8.0.11 换了新的身份验证插件(caching_sha2_password), 原来的身份验证插件为(mysql_native_password)。而客户端工具Navicat Premium12 中找不到新的身份验证插件(caching_sha2_password),对此,我们将mysql用户使用的  登录密码加密规则  还原成  mysql_native_password,即可登陆成功。

具体操作:

4.1.首先使用 MySql 数据库自带的命令行客户端工具登录数据库

use mysql

4.2.从数据库的user表中查询 mysql 用户原来使用的身份验证插件

select user,host,plugin,authentication_string from user;

4.3.将用户Xue使用的身份验证插件 替换为之前版本使用的 mysql_native_password ,修改成功后再次使用客户端工具 Navicat Premium12 ,如无其它意外 , 应该是可以正常连接登录了。

alter user 'Xue'@'%' identified with mysql_native_password by '123456';

5.操作过程

 

 

 

参考:

https://blog.csdn.net/GRAY_KEY/article/details/80659916

https://blog.csdn.net/huxinguang_ios/article/details/80887175 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值