一、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 root@'%';

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 root@'%';
刷新权限
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有另外的密码复位办法,继续探索中

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

  1. 01-路由跳转 安装less this.$router.replace(path) 解决vue/cli3.0语法报错问题

    2==解决vue2.0里面控制台包的一些语法错误. https://www.jianshu.com/p/5e0a1541418b 在build==>webpack.base.conf.j下注释掉 ...

  2. 解决Navicat连接MySQL总是报错1251的方法

    今天下了个 MySQL8.0,发现Navicat连接不上,总是报错1251: 原因是MySQL8.0版本的加密方式和MySQL5.0的不一样,连接会报错. 试了很多种方法,终于找到一种可以实现的: 更 ...

  3. Kali Linux虚拟机安装完整安装过程及简单配置(视频)

    点击播放视频 附:视频中出现的两个txt文本,包含了大致的安装与配置过程: 文本1:KaliLinux虚拟机安装和初步配置 Kali Linux虚拟机安装和初步配置 大家好,今天给大家演示一下在VMw ...

  4. MyEclipse安装后需要进行的配置

    摘自: http://hi.baidu.com/timesten/item/c826983a6f9654ffde2221c0 MyEclipse安装后需要进行的配置 在MyEclipse中编写Web ...

  5. wampserver安装后的基本配置

    wampserver安装后的基本配置 1.WampServer的安装 下载好安装包后,你能在保存其文件夹中找到这样一个图标: 双击它,会弹出如下提示 提示信息:不要试图从Wamp5 1.x(x代表任意 ...

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

    一.图形化界面配置(假设为电脑A) 如果你的Linux安装有图形化界面,那么通过以下方式来配置: 我这里是有两块网卡,第一个网卡在上篇中已经通过DHCP来配置了:Linux 最小化安装后IP的配置(D ...

  7. Linux 最小化安装后IP的配置(DHCP获取IP地址)

    图形化Linux的DHCP好配置,我就不讲了.主要将一下Linux最小化安装后IP的配置: linux最小化安装后没有ifconfig这个命令: yum install net-tools.x86_6 ...

  8. 【java】JDK安装后,没有配置环境变量,也可以java -version查看到版本信息

    JDK安装后,没有配置环境变量,也可以java -version查看到版本信息 原因是:jdk安装过程,java.javaw.javaws三个命令被复制到C:\windows\system32目录下 ...

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

    找了两天才找到解决办法…….晕晕晕...用第二种方法解决了. 网上找到的方法都没有写这一条 If objASPError.ASPDescription > "" Then 后 ...

随机推荐

  1. LintCode #3 统计数字

    解题思路请参考 代码(可以通过,不过很乱,需要整理): /// <summary> /// 计算n在数组[targetNum]中出现的次数 /// 形如:[0, 1, 2, 3, 4, 5 ...

  2. (转)libhybris及EGL Platform-在Glibc生态中重用Android的驱动

    原文地址:http://blog.csdn.net/jinzhuojun/article/details/41412587 libhybris主要作用是为了解决libc库的兼容问题,目的是为了在基于G ...

  3. Python资料收藏(杂乱版)

    http://blog.csdn.net/vagrxie/article/category/343814 http://blog.sina.com.cn/s/articlelist_280149524 ...

  4. 分享9款最新超酷HTML5/CSS3应用插件

    新的一周开始了,小编继续要为大家分享实用超酷的HTML5应用,今天分享的这9款最新HTML5/CSS3应用你一定会很喜欢,一起来看看. 1.HTML5 Canvas模拟衣服撕扯动画 超级逼真 今天又要 ...

  5. u3d加载外部视屏

    u3d的外部加载视屏,采用www方式,可以使用gui播放,也可以绑定到gameobject上作为动态材质使用,不过目前只支持.ogg格式,需要转... using UnityEngine;using ...

  6. Java多线程——线程范围内共享变量和ThreadLocal

    多个线程访问共享对象和数据的方式 1.如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享数据,例如,买票系统就可以这么做. package java_ ...

  7. c#实现word,excel转pdf代码及部分Office 2007文件格式转换为xps和pdf代码整理

    转换功能是通过调用安装了转换XPS和PDF的AddIn的Office2007对象模型完成的. 代码支持Office 2007支持的一切文件格式: Office 2007组件 扩展名 Word DOC, ...

  8. 1 最简单的hello world

    preface 今天我开始自学flask了,由此记录学习中的点点滴滴. 有问题请联系我(Mr.Leo 18500777133@sina.cn) include: 简介flask hello world ...

  9. HTTP 请求未经客户端身份验证方案“Anonymous”授权。

    今天调取WebService的时候报: HTTP 请求未经客户端身份验证方案“Anonymous”授权. 解决办法: 配置文件里改: <basicHttpBinding> <bind ...

  10. Phpcms V9手机门户设置教程:怎么用PC V9做手机网站

    一.在PHPcms V9管理后台设置手机门户 1.1.开启手机网站.位置:模块 >手机门户 > 添加手机站点,具体设置可参照截图: 填写站点名和LOGO文件相对位置,绑定用于手机网站的二级 ...