php7.4 mysqli hat eine zeitüberschreitung mit "weggegangen"


8

Ich habe gerade php7.4 installiert, alles scheint in Ordnung zu sein, aber wenn ich versuche, auf mein phpmyadmin zu gehen, kann ich nicht: Hinweis funktioniert gut in php7.3 vor dieser Installation

Der Fehler ist:

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

Suche in meiner PHP-MySQL-Bibliothek : php7.4-mysql. es ist installiert.

Etwas vergessen ? Vielen Dank.

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

Haben Sie getan, was die Mitteilungen vorgeschlagen
RiggsFolly

Ja, das mache ich.
Michel

Hinweis: Mit phpstorm sehe ich meine Datenbank. Die Verbindung funktioniert
Michel

Ich habe diesen Fehler im Protokoll gesehen: MySQL-Server ist verschwunden
Michel

Antworten:


3

Ich hatte das gleiche Problem, aber die Verwendung mysql_native_passwordwar mit nicht möglich PHP7.4-mysql-pdo, selbst beim Einrichten, my.cnfwährend es funktionierte PHP7.3-mysql-pdo.

Ich musste jeden Benutzer mit dieser Abfrage ändern :

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

Dabei usernameist der Datenbankbenutzername und passworddas Kennwort des Datenbankbenutzers angegeben.


2

Wenn Sie immer noch das datierte verwenden mysql_native_passwordMethode, die wird dringend abgeraten , da sie als weniger sicher, können Sie die Standard - Authentifizierungs - Plug-in zu nativen Passwort festgelegt durch Zugabe default_authentication_plugin = mysql_native_passwordzu dem [mysqld]Abschnitt von my.cnf .


1

Im Ordner /etc/mysql/my.cnf

Nach dem [mysqld]Hinzufügen: default-authentication-plugin = mysql_native_password

Beispiel meiner /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

Und denken Sie daran, dass mysql_native_password aus Sicherheitsgründen nicht gut ist.


0

Sie können die Verschlüsselung des Passworts folgendermaßen ändern.

ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'youpassword';
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.