8

我刚刚安装了 php7.4,一切似乎都很好,但是当我尝试继续使用我的 phpmyadmin 时,我不能:注意在此安装之前在 php7.3 中工作正常

错误是:

mysqli_real_connect(): Unexpected server response while doing caching_sha2 auth: 109
 mysqli_real_connect(): (HY000/2006): MySQL server has gone away

看我的 php mysql 库:php7.4-mysql。它已安装。

忘了什么?谢谢你。

NOTICE: Not enabling PHP 7.4 FPM by default.
NOTICE: To enable PHP 7.4 FPM in Apache2 do:
NOTICE: a2enmod proxy_fcgi setenvif
NOTICE: a2enconf php7.4-fpm
NOTICE: You are seeing this message because you have apache2 package installed.
Traitement des actions différées (« triggers ») pour libapache2-mod-php7.4 (7.4.
0-1+ubuntu19.10.1+deb.sury.org+1) ...

apt-cache policy php7.4
php7.4:
  Installé : 7.4.0-1+ubuntu19.10.1+deb.sury.org+1
  Candidat : 7.4.0-1+ubuntu19.10.1+deb.sury.org+1
 Table de version :
 *** 7.4.0-1+ubuntu19.10.1+deb.sury.org+1 500
        500 http://ppa.launchpad.net/ondrej/php/ubuntu eoan/main amd64 Packages
        500 http://ppa.launchpad.net/ondrej/php/ubuntu eoan/main i386 Packages
        100 /var/lib/dpkg/status
4

4 回答 4

3

我遇到了同样的问题,但mysql_native_password无法使用PHP7.4-mysql-pdo,即使在设置时my.cnf也是如此PHP7.3-mysql-pdo

我不得不用这个查询改变每个用户:

ALTER USER 'username'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';

其中username是数据库用户名,password是数据库用户的密码。

于 2019-12-07T14:39:34.090 回答
2

如果您仍然使用过时的mysql_native_password方法,由于被认为不太安全,因此非常不赞成default_authentication_plugin = mysql_native_password,您可以通过添加到my.cnf[mysqld]的部分来将默认身份验证插件设置为本机密码。

于 2019-12-01T08:50:32.823 回答
1

在文件中/etc/mysql/my.cnf

添加后[mysqld]default-authentication-plugin = mysql_native_password

我的例子/etc/mysql/my.cnf

[mysqld]
user   = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket   = /var/run/mysqld/mysqld.sock
port   = 3306
basedir    = /usr
datadir    = /var/lib/mysql
tmpdir   = /tmp
lc-messages-dir  = /usr/share/mysql
log-error    = /var/log/mysql/error.log
explicit_defaults_for_timestamp

bind-address = 0.0.0.0

# PHP 7.4 Fix
default-authentication-plugin = mysql_native_password

# Recommended in standard MySQL setup
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

记住使用 mysql_native_password 不好,因为安全。

于 2019-12-05T07:25:42.080 回答
0

您可以像这样更改密码的加密。

ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'youpassword';
于 2019-11-30T21:36:42.137 回答