IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux下MySQL出现ERROR 1698 (28000): Access denied for user ‘root‘@‘localhost‘和ERROR 1045 (28000)的一些解决方法 -> 正文阅读

[系统运维]Linux下MySQL出现ERROR 1698 (28000): Access denied for user ‘root‘@‘localhost‘和ERROR 1045 (28000)的一些解决方法

先说环境版本号,我使用的是:

1.虚拟机:VMware? Workstation 16 Pro
版本16.2.1

2.Linux环境:Ubuntu64位
版本ubuntu-20.04.3-desktop-amd64

3.Mysql:使用apt安装
版本mysql-server-8.0,mysql-server-core-8.0

在这里插入图片描述
不管是用Navicat连,还是用终端连,都会出现ERROR 1698

先说原因

因为在Ubuntu下用apt装mysql是没有设置密码的环节的
所以一开始就是没有密码,而且密码也不是为空值,直接敲回车也进不去mysql

所以我们这个时候可以直接mysql -u root
直接进入mysql
在这里插入图片描述
——————————————手动分隔符————————————————————————————

进入mysql后

我们先use mysql;,使用mysql数据库
再输入SELECT User, Host, plugin FROM mysql.user;,查看我们root用户的身份认证器插件
在这里插入图片描述
这里可以看到我们root用户的认证器插件(plugin)是auth _socket
auth_socket这个插件的验证方式不要求输入密码,即使输入了密码也不验证
而它也只能用 UNIX 的 socket 方式登陆,这就是说只能本地登陆
以及操作系统的用户和 MySQL 数据库的用户名必须一致,例如你要登陆 MySQL 的 root 用户,必须用操作系统的 root 用户登陆

再就是Mysql8.0版本后,默认认证方式都改成sha2了,就是图上的 caching_sha2_password
但很多开发环境都没有sha2的插件,就导致这个sha2问题贼多,所以我们要换成最稳的那个认证插件:mysql_native_password

所以我们再输入 UPDATE user SET plugin='mysql_native_password' WHERE User='root';
将root用户的认证插件改为mysql_native_password
在这里插入图片描述
修改成功后再输入一次SELECT User, Host, plugin FROM mysql.user;查看用户插件
在这里插入图片描述
可以看到是修改成功了,然后再输入FLUSH PRIVILEGES;使其生效
在这里插入图片描述

然后我们重启一下mysql服务,输入sudo service mysql restart;

接着再次尝试进入mysql
在这里插入图片描述
发现依然报错,只不过变成了ERROR 1045
因为我们虽然修改了认证插件,但依然没有添加密码

我们再用mysql -u root进入mysql
在这里插入图片描述

而添加密码也有深坑
先说我这个版本环境下成功使用的命令

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
#将密码设置为123456

在这里插入图片描述
这个命令就能修改成功

但绝大多数的文章都是用 update user set authentication_string=password("你的密码") where user="root";
来修改成功的,我用就一直报错,又看了很多文章后,也只得到了“可能是认证插件不同”或“mysql版本不同”的模糊答案

密码设置成功后我们再尝试用终端进入
在这里插入图片描述
直接成功!

然后我们再尝试不用密码看能不能进入

在这里插入图片描述
好的直接报错,接下来就都要用刚刚设置的密码进入mysql了

——————————————————————————————————————————————

接下来可以看到Navicat也能正常连上了

在这里插入图片描述
最后总结下:安装的版本很重要很重要很重要!

参考链接:https://www.cnblogs.com/zhangkanghui/p/9613844.html
https://www.freesion.com/article/66331015861/
https://www.cnblogs.com/yangzhou33/p/11380425.html
https://www.cnblogs.com/py1612919884/p/9327015.html
https://blog.csdn.net/maoxinwen1/article/details/88629313

                                                              ———————————————————————练级路上肯定枯燥煎熬,一定加油!
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-12-05 12:23:43  更:2021-12-05 12:25:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 2:49:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码