欢迎来到资源库(www.zyku.net)

MySQL

当前位置:首页 > 数据库 > MySQL > MySQL8

MySQL 8.0的新特性和解决办法

时间:2021-03-20|栏目:MySQL|点击:|我要投稿

一、创建用户和授权

在mysql8.0创建用户和授权和之前不太一样了,其实严格上来讲,也不能说是不一样,只能说是更严格,mysql8.0需要先创建用户和设置密码,然后才能授权。

先创建一个用户

create user 'hong'@'%' identified by '123123';

再进行授权

grant all privileges on *.* to 'hong'@'%' with grant option;

如果还是用原来5.7的那种方式,会报错误:

grant all privileges on *.* to  'sroot' @ '%'  identified by  '123123' ;

ERROR 1064 (42000): You have an error  in  your SQL syntax; check the manual that corresponds to

your MySQL server version  for  the right syntax to use near  'identified by ' 123123 ''  at line 1

二、MySQL8.0 的远程链接

MySQL8.0 安装完成后出现无法远程链接的现象,这是因为MySQL8.0 只支持 localhost 访问,我们必须设置一下才可以远程访问。

具体设置步骤如下:

① 登录MySQL

执行命令为:

mysql -u root -p 

回车后输入密码

② 选择 mysql 数据库

执行命令为:

use mysql;

查看mysql 数据库中存储的用户信息的 user 表。

③ 查看mysql 数据库的 user 表中当前 root 用户的相关信息

执行命令为:

select host,user,authentication_string,plugin from user;

执行完命令后显示一个表格, root 用户的 host默认显示的 localhost,说明只支持本地访问,不允许远程访问。

④ 更改 host 的默认配置

执行命令为:

update user set host='%' where user='root';

⑤ 刷新

执行命令为:

flush privileges;

之前以为这样就行了,然后呢,在用navicat进行mysql的远程连接时,出现了弹窗报错:

出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种,一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password. 我用是第二种方式 :

ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则 

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用户的密码 

FLUSH PRIVILEGES; #刷新权限 

(资源库 www.zyku.net)

原文链接:https://blog.csdn.net/huangyuehong914/article/details/80503195

上一篇:MySQL 8.0创建用户授予权限报错解决方法

栏    目:MySQL

下一篇:csv导入mysql中文乱码等问题解决方法

本文标题:MySQL 8.0的新特性和解决办法

本文地址:https://www.zyku.net/mysql/2085.html

关于我们 | 版权申明 | 寻求合作 |

重要申明:本站所有的文章、图片、评论等内容,均由网友发表或上传并维护或收集自网络,仅供个人学习交流使用,版权归原作者所有。

如有侵犯您的版权,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:95148658 | 邮箱:mb8#qq.com(#换成@)

苏ICP备2020066115号-1

本网站由提供CDN加速/云存储服务