【笔记】Windows 安装 MySQL8 后无法使用 phpmyadmin 登录的问题

Mysql tytrock ⋅ 于 2019-01-02 15:14:19 ⋅ 3298 阅读

系统mysql版本原为5.6,mysql8.0.13后,出现phpmyadmin无法登陆问题,如下图:

image.png

经过查阅相关资料,发现原因是在MySQL 8.0+中,默认身份验证插件已从'mysql_native_password'更改为'caching_sha2_password','root'@'localhost'管理帐户默认使用'caching_sha2_password'身份验证插件。

要恢复MySQL 8.0之前的兼容性,您可以重新配置服务器以恢复到以前的默认身份验证插件mysql_native_password,解决方法如下


使用无密码登陆mysql

先停掉mysql服务,命令行进入mysql安装目录的bin目录下,运行

mysqld –skip-grant-tables

此方法是以--skip-grant-tables参数启动mysql服务,该参数指示在启动时不加载授权表,因此启动成功后root用户可以空密码登陆,但是,实测mysqld –skip-grant-tables这样的命令行,在mysql8中无法成功启动

image.png

经过在网上一番搜索后,在mysql8系统下,用mysqld --console --skip-grant-tables --shared-memory可以无密码启动服务

mysqld --console --skip-grant-tables --shared-memory


image.png


新建命令行窗口,使用无密码登陆mysql

mysql -u root

image.png


进入mysql数据库

use mysql;


更改默认身份验证方式及修改密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';

可是报错了,

image.png


继续网上寻找解决办法:

关掉新主库的只读属性

set global read_only=0;

刷新权限

flush privileges;

重新更改默认身份验证方式及修改密码,成功了

image.png


刷新权限

flush privileges;


重新启动mysql,发现依然无法登录,经查阅相关文档发现,PHP 7.1.4之前的PHP版本和PHP 7.2之前的版本使用PHP MySQL扩展时,即使未使用caching_sha2_password,也无法与default_authentication_plugin = caching_sha2_password连接。

要恢复MySQL 8.0之前的兼容性,您可以重新配置服务器以恢复到以前的默认身份验证插件mysql_native_password!

打开mysql安装目录下的my.ini文件,增加以下一行

default_authentication_plugin=mysql_native_password

保存,重启mysql服务,链接成功!


参考文档:

http://www.xtjx.net/index.php?m=content&c=index&a=show&catid=35&id=860

https://blog.csdn.net/gupao123456/article/details/80766154

https://www.jb51.net/article/119654.htm

https://blog.csdn.net/qq_28347599/article/details/80331484

本帖已被设为精华帖!
回复数量: 0
    暂无评论~~
    • 请注意单词拼写,以及中英文排版,参考此页
    • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
    • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
    • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
    • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
    Ctrl+Enter