【MySQL8】 安装后的简单配置(主要解决navicat等客户端登陆报错问题)

一、navicat等客户端登陆报错的原因

使用mysql,多数我们还是喜欢用可视化的客户端登陆管理的,个人比较喜欢用navicat。一般装好服务器以后,习惯建一个远程的登陆帐号,在mysql8服务器上,用老方法创建的帐号,可以用mysql自己命令行正常登入,但是用navicat等软件登入却会提示错误

原因是MySQL8的新特性,MySQL8默认使用 caching_sha2_password 身份验证机制。旧客户端不支持这种验证,当然就无法登入了。

所以解决办法也很简单,只需要我们在服务器上用旧的认证机制(mysql_native_password)设置密码就可以了。旧模式不是MySQL8默认模式,所以需要在创建用户或者修改密码时,明确指定为mysql_native_password模式。

首先我们试验下,用默认模式创建用户,

执行 ALTER USER ‘root‘@‘%‘ IDENTIFIED BY ‘aaabbb‘; 创建的记录是这样的

这种情况下,客户端登入不会成功

如果在创建/或者修改命令中 用WITH mysql_native_password 指明密码模式

例如ALTER USER ‘root‘@‘%‘ IDENTIFIED WITH mysql_native_password BY ‘aaabbb‘;

执行后的用户记录如下,可见plugin被设置为了mysql_native_password

此时再次测试,客户端就可以正常登入了。

二、例:完整的创建一个远程管理员帐号

1、创建一个可以远程登陆的root用户

CREATE USER ‘root‘@‘%‘ IDENTIFIED WITH mysql_native_password BY ‘新密码‘;

注意@后面“%”允许远程登入,WITH mysql_native_password 修饰允许旧模式的客户端登入

2、为账户开放权限

grant all privileges on *.* to [email protected]‘%‘;

flush privileges;

三、例:创建一个普通用户并为其分配一个数据库

这是开发中比较常见的需求,即给特定用户指定数据库内部的全部权限

1、添加一般账户

CREATE USER ‘用户名‘@‘%‘ IDENTIFIED WITH mysql_native_password BY ‘密码‘;

2、创建新数据库

CREATE DATABASE IF NOT EXISTS 数据库名;
或者干脆
CREATE DATABASE 数据库名;

以前常常还要指定默认utf8字符集,现在MySQL 8.0的默认字符集是utf8mb4,所以默认即可。

默认生成的数据库字符集是这样的

3、新账户授权新数据库

grant all privileges on 数据库名.* to 用户名@‘%‘;

为方便常常用户名和数据库名设为相同以便管理。

附:其他常用的命令

平时配置数据库少,很多命令不算熟悉,所以罗列起来,用的时候复制粘贴加修改是最方便的了。。。

创建用户(WITH mysql_native_password 是可选的,为了适应客户端兼容性)
CREATE USER ‘root‘@‘%‘ IDENTIFIED WITH mysql_native_password BY ‘密码‘;
设置/修改密码
ALTER USER ‘root‘@‘localhost‘ IDENTIFIED WITH mysql_native_password BY ‘密码‘;
ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘密码‘;
alter user ‘yzd‘@‘%‘ identified by ‘aaa‘;
清除密码
ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘‘;
UPDATE user SET authentication_string=‘‘ WHERE user=‘root‘;
删除用户
drop user 用户名@ localhost;
Delete FROM mysql.user Where User="用户名" and Host=”localhost”;
分配权限
grant all privileges on *.* to [email protected]‘%‘;
刷新权限
flush privileges;
创建数据库
CREATE DATABASE IF NOT EXISTS yzd DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
查询数据库列表
show databases;
查询数据表列表
show tables;
查询用户列表
select host,user,plugin,authentication_string from mysql.user;
查询当前用户名
select user();
查询当前用户权限
show grants;

mysql8有很多新特性,密码丢失后找回的操作也和旧版不同了。这几天为恢复一个python项目后台库密码,折腾了不少时间,网上mysql5的手段反复试了都走不通。

后来发现,MySQL8有另外的密码复位办法,继续探索中

原文地址:https://www.cnblogs.com/richerdyoung/p/9207074.html

时间: 2024-10-12 08:59:56

【MySQL8】 安装后的简单配置(主要解决navicat等客户端登陆报错问题)的相关文章

Centos7/redhat7最小化安装后的简单配置

一.配置本地yum源 1.挂载: [[email protected] ~]# mount /dev/cdrom /mnt mount: block device /dev/cdrom is write-protected, mounting read-only [[email protected] ~]# cd /etc/yum.repos.d/ [[email protected] yum.repos.d]# vi rhel-debuginfo.repo     --添加下面内容 [loca

树莓派玩耍笔记1 -- 开箱 & 安装系统以及简单配置

零.前言 树莓派是什么? 吃的么? 呵呵,如果您连这个还不知道,真是out 了.麻烦出门左拐,百度去(或者,看看官网去?),算了,还是粘贴一些大家都知道的树莓派百科吧: 树莓派由注册于英国的慈善组织"Raspberry Pi 基金会"开发,Eben·Upton/埃·厄普顿为项目带头人.2012年3月,英国剑桥大学埃本·阿普顿(Eben Epton)正式发售世界上最小的台式机,又称卡片式电脑,外形只有信用卡大小,却具有电脑的所有基本功能,这就是Raspberry Pi电脑板,中文译名&q

Linux 最小化安装后IP的配置(手动获取静态IP地址)

一.图形化界面配置(假设为电脑A) 如果你的Linux安装有图形化界面,那么通过以下方式来配置: 我这里是有两块网卡,第一个网卡在上篇中已经通过DHCP来配置了:Linux 最小化安装后IP的配置(DHCP获取IP地址) 第一块王卡: 看一下配置2: 另外一块网卡打算使用手动获取 看一下配置1:  二.如果你的Linux是最小安装请看下面的配置(电脑B) 也是两块网卡,第一块网卡同样是DHCP获取IP,在上篇中已经通过DHCP来配置了:Linux 最小化安装后IP的配置(DHCP获取IP地址),

[转]解决IIS下UTF-8文件报错乱码的问题

找了两天才找到解决办法…….晕晕晕...用第二种方法解决了. 网上找到的方法都没有写这一条 If objASPError.ASPDescription > "" Then 后面的回车去掉(这个地方微软写错了) 将这一句后面的<br>注释掉即可! Response.Write Server.HTMLEncode(objASPError.ASPDescription)' & "<br>" 转自:http://blog.csdn.ne

解决上传到github报错Successfully created project &#39;autotest&#39; on GitHub, but initial commit failed:

通过IDEA上传代码到GitHub上可是有时候会碰到这样的问题. 当我们选择VCS->Import into Version Control->Share Project on GitHub提交代码.点击OK.然后就跳出了这样的信息: Can't finish GitHub sharing process Successfully created project 'autotest' on GitHub, but initial commit failed: *** Please tell m

【已解决】mac上appium报错:“Could not find aapt Please set the ANDROID_HOME environment variable with the Android SDK root directory path”

按照网上教程配置完appium环境后,真机跑自动化过程,遇到如下报错: appium报错如下: [ADB] Checking whether aapt is present [ADB] The ANDROID_HOME environment variable is not set to the Android SDK root directory path. ANDROID_HOME is required for compatibility with SDK 23+. Checking al

VS Code中怎么解决 TSLint: &quot; should be &#39; (quotemark) 报错问题?

VS Code配置typescript问题: VS Code中, user setting中将autoFixOnSave 设置为true. ref:https://github.com/praveenpuglia/angular-sanity/issues/4 VS Code中怎么解决 TSLint: " should be ' (quotemark) 报错问题? 原文地址:https://www.cnblogs.com/watermarks/p/9520949.html

安装zabbix之后登陆报错:Error connecting to database: No su

安装zabbix之后登陆报错:Error connecting to database: No such file or directory解决办法:经过网络上找了好久也没见到个解决办法,最后被一片文章提醒了. 是不是php和mysql的调用问题呢?尝试着做了一下. 1.把mysql.sock 通过软链接到一个指定位置.[[email protected]_zabbix4_007117 etc]# ln -s /var/lib/mysql/mysql.sock /tmp/ 2.修改php.ini

latex之安装宏包及LaTeX Error: File &#39;&#39;xxx.sty&#39;&#39; not Found报错

1. 找出所缺少的宏包, 2.获取所缺宏包,宏包地址. 3.Download  4. 4.1 .解压后放到安装路径下(如:D:\01soft\CTEX\MiKTeX\tex\latex)4.2 .win7 左下角搜索框输入 setting(Admin),reflesh,Yes4.3 .运行.ins文件便可得到.sty文件4.4 .重复步骤3 5. 打开winedt 重新运行 latex之安装宏包及LaTeX Error: File ''xxx.sty'' not Found报错 原文地址:htt