热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MySQL8.0上的phpMyAdmin

如何解决《MySQL8.0上的phpMyAdmin》经验,为你挑选了8个好方法。

我已经安装了MySQL 8.0服务器和phpMyAdmin,但是当我尝试从浏览器访问它时,会发生以下错误:

#2054 - The server requested authentication method unknown to the client
mysqli_real_connect(): The server requested authentication method unknown to the client [caching_sha2_password]
mysqli_real_connect(): (HY000/2054): The server requested authentication method unknown to the client

我想它必须与实施的强密码和MySQL版本的相对新鲜度有关.

但我对最先进的驱动程序和连接配置一无所知.

有人遇到同样的问题并解决了吗?:d


使用apt安装编辑

apt-get install mysql-server phpmyadmin

András Szabá.. 86

使用root用户登录MySQL控制台:

root@9532f0da1a2a:/# mysql -u root -pPASSWORD

并使用密码更改Authentication Plugin:

mysql> ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';
Query OK, 0 rows affected (0.08 sec)

您可以在MySQL 8.0参考手册上阅读有关首选身份验证插件的更多信息

https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password

它在码头化的环境中完美运行:

docker run --name mysql -e MYSQL_ROOT_PASSWORD=PASSWORD -p 3306:3306 -d mysql:latest

docker exec -it mysql bash

mysql -u root -pPASSWORD

ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';

exit

exit

docker run --name phpmyadmin -d --link mysql:db -p 8080:80 phpmyadmin/phpmyadmin:latest

因此,您现在可以使用root/PASSWORD 在http:// localhost:8080上登录phpMyAdmin


MySQL的/ MySQL的服务器

如果您使用的是mysql/mysql-server docker镜像

但请记住,它只是开发环境中的"快速而肮脏"的解决方案.更改MySQL首选身份验证插件是不明智的.

docker run --name mysql -e MYSQL_ROOT_PASSWORD=PASSWORD -e MYSQL_ROOT_HOST=% -p 3306:3306 -d mysql/mysql-server:latest
docker exec -it mysql mysql -u root -pPASSWORD -e "ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';"
docker run --name phpmyadmin -d --link mysql:db -p 8080:80 phpmyadmin/phpmyadmin:latest

在10/04/2018更新了解决方案

通过取消注释default_authentication_plugin=mysql_native_password设置来更改MySQL默认身份验证插件 /etc/my.cnf

使用风险自负

docker run --name mysql -e MYSQL_ROOT_PASSWORD=PASSWORD -e MYSQL_ROOT_HOST=% -p 3306:3306 -d mysql/mysql-server:latest
docker exec -it mysql sed -i -e 's/# default-authentication-plugin=mysql_native_password/default-authentication-plugin=mysql_native_password/g' /etc/my.cnf
docker stop mysql; docker start mysql
docker run --name phpmyadmin -d --link mysql:db -p 8080:80 phpmyadmin/phpmyadmin:latest

在01/30/2019更新了解决方法

docker run --name mysql -e MYSQL_ROOT_PASSWORD=PASSWORD -e MYSQL_ROOT_HOST=% -p 3306:3306 -d mysql/mysql-server:latest
docker exec -it mysql sed -i -e 's/# default-authentication-plugin=mysql_native_password/default-authentication-plugin=mysql_native_password/g' /etc/my.cnf
docker exec -it mysql mysql -u root -pPASSWORD -e "ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';"
docker stop mysql; docker start mysql
docker run --name phpmyadmin -d --link mysql:db -p 8080:80 phpmyadmin/phpmyadmin:latest

default_authentication_plugin



1> András Szabá..:

使用root用户登录MySQL控制台:

root@9532f0da1a2a:/# mysql -u root -pPASSWORD

并使用密码更改Authentication Plugin:

mysql> ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';
Query OK, 0 rows affected (0.08 sec)

您可以在MySQL 8.0参考手册上阅读有关首选身份验证插件的更多信息

https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password

它在码头化的环境中完美运行:

docker run --name mysql -e MYSQL_ROOT_PASSWORD=PASSWORD -p 3306:3306 -d mysql:latest

docker exec -it mysql bash

mysql -u root -pPASSWORD

ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';

exit

exit

docker run --name phpmyadmin -d --link mysql:db -p 8080:80 phpmyadmin/phpmyadmin:latest

因此,您现在可以使用root/PASSWORD 在http:// localhost:8080上登录phpMyAdmin


MySQL的/ MySQL的服务器

如果您使用的是mysql/mysql-server docker镜像

但请记住,它只是开发环境中的"快速而肮脏"的解决方案.更改MySQL首选身份验证插件是不明智的.

docker run --name mysql -e MYSQL_ROOT_PASSWORD=PASSWORD -e MYSQL_ROOT_HOST=% -p 3306:3306 -d mysql/mysql-server:latest
docker exec -it mysql mysql -u root -pPASSWORD -e "ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';"
docker run --name phpmyadmin -d --link mysql:db -p 8080:80 phpmyadmin/phpmyadmin:latest

在10/04/2018更新了解决方案

通过取消注释default_authentication_plugin=mysql_native_password设置来更改MySQL默认身份验证插件 /etc/my.cnf

使用风险自负

docker run --name mysql -e MYSQL_ROOT_PASSWORD=PASSWORD -e MYSQL_ROOT_HOST=% -p 3306:3306 -d mysql/mysql-server:latest
docker exec -it mysql sed -i -e 's/# default-authentication-plugin=mysql_native_password/default-authentication-plugin=mysql_native_password/g' /etc/my.cnf
docker stop mysql; docker start mysql
docker run --name phpmyadmin -d --link mysql:db -p 8080:80 phpmyadmin/phpmyadmin:latest

在01/30/2019更新了解决方法

docker run --name mysql -e MYSQL_ROOT_PASSWORD=PASSWORD -e MYSQL_ROOT_HOST=% -p 3306:3306 -d mysql/mysql-server:latest
docker exec -it mysql sed -i -e 's/# default-authentication-plugin=mysql_native_password/default-authentication-plugin=mysql_native_password/g' /etc/my.cnf
docker exec -it mysql mysql -u root -pPASSWORD -e "ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';"
docker stop mysql; docker start mysql
docker run --name phpmyadmin -d --link mysql:db -p 8080:80 phpmyadmin/phpmyadmin:latest

default_authentication_plugin


祝福你.我浪费了很多时间试图解决这个问题.顺便说一下,在MacOS上使用phpMyAdmin与Brew时,我必须运行的命令是:ALTER USER root @ localhost IDENTIFIED WITH mysql_native_password BY'secret'(否则我收到了"ERROR 1396(HY000):操作ALTER USER失败'根'@'%')
@Pathros你应该改变用户root @'localhost'IDENTIFIED WITH mysql_native_password BY'PASSWORD'; ...所以直接指定localhost

2> 小智..:

新的MySQL 8.0.11 caching_sha2_password用作默认身份验证方法.我认为phpMyAdmin无法理解这种身份验证方法.您需要使用旧的身份验证方法之一创建用户,例如CREATE USER xyz@localhost IDENTIFIED WITH mysql_native_password BY 'passw0rd'.

更多信息请访问https://dev.mysql.com/doc/refman/8.0/en/create-user.html和https://dev.mysql.com/doc/refman/8.0/en/authentication-plugins.html



3> 小智..:

另一个想法:只要phpmyadmin和其他php工具无法使用它,只需将此行添加到您的文件/etc/mysql/my.cnf

default_authentication_plugin = mysql_native_password

另请参见: Mysql参考

我知道这是一个安全问题,但如果工具不能与caching_sha2_password一起使用该怎么办?



4> 小智..:

我通过执行以下操作解决了这个问题:

    添加default_authentication_plugin = mysql_native_password
    my.cnf 的[mysqld]部分

    输入mysql并通过执行类似操作创建新用户 CREATE USER 'root'@'localhost' IDENTIFIED BY 'password';

    必要时授予权限.呃GRANT ALL PRIVILEGES ON * . * TO 'root'@'localhost';然后FLUSH PRIVILEGES;

    用新用户登录phpmyadmin



5> 小智..:

我去了系统

首选项 - > mysql - >初始化数据库 - >使用旧密码加密(而不是强) - >输入相同的密码

作为我的config.inc.php文件,重新启动apache服务器,它工作.我仍然怀疑它,所以我停止了apache和mysql服务器并再次启动它们,现在它正在工作.



6> Lakhwinder S..:

要解决此问题,我只需在mysql控制台中运行一个查询。

对于使用此登录到mysql控制台

mysql -u {username} -p{password}

之后,我只运行一个查询,如下所示:

ALTER user '{USERNAME}'@'localhost' identified with mysql_native_password by '{PASSWORD}';

当我运行此查询时,我得到该查询已执行的消息。然后使用用户名/密码登录到PHPMYADMIN。



7> 小智..:

我基本上用András的答案解决了我的问题:

1-使用root用户登录MySQL控制台:

root@9532f0da1a2a:/# mysql -u root -pPASSWORD

并输入auth的root用户密码.

2-我创建了一个新用户:

mysql> CREATE USER 'user'@'hostname' IDENTIFIED BY 'password';

3-授予新用户所有权限:

mysql> GRANT ALL PRIVILEGES ON *.* To 'user'@'hostname';

4-使用密码更改Authentication Plugin:

mysql> ALTER USER user IDENTIFIED WITH mysql_native_password BY 'PASSWORD';

现在,phpmyadmin可以很好地记录新用户.



8> 小智..:

我遇到了这个问题,在Windows中找不到任何ini文件,但是对我有用的解决方案非常简单。
1.打开mysql安装程序。
2.重新配置mysql服务器,这是第一个链接。
3.转到身份验证方法。
4.选择“旧版身份验证”。
5.输入您的密码(下一个字段)。
6.应用更改。

就是这样,希望我的解决方案也对您有效!


推荐阅读
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • 本文主要复习了数据库的一些知识点,包括环境变量设置、表之间的引用关系等。同时介绍了一些常用的数据库命令及其使用方法,如创建数据库、查看已存在的数据库、切换数据库、创建表等操作。通过本文的学习,可以加深对数据库的理解和应用能力。 ... [详细]
  • 如何用JNI技术调用Java接口以及提高Java性能的详解
    本文介绍了如何使用JNI技术调用Java接口,并详细解析了如何通过JNI技术提高Java的性能。同时还讨论了JNI调用Java的private方法、Java开发中使用JNI技术的情况以及使用Java的JNI技术调用C++时的运行效率问题。文章还介绍了JNIEnv类型的使用方法,包括创建Java对象、调用Java对象的方法、获取Java对象的属性等操作。 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • 本文介绍了一个React Native新手在尝试将数据发布到服务器时遇到的问题,以及他的React Native代码和服务器端代码。他使用fetch方法将数据发送到服务器,但无法在服务器端读取/获取发布的数据。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
author-avatar
仰望天空说再见
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有