web-dev-qa-db-fra.com

Ubuntu 20.04 Ensemble MySQL PHPMYADMIN ROOT Mot de passe

J'ai installé une lampe sur Ubuntu 20.04.

(Allemand) https://wiki.ubuntuutusers.de/mysql/werkzeuge/

C'est toujours un problème d'obtenir le mot de passe root pour vous connecter au localhost/phpmyadmin. À Ubuntu 18.04, il y avait un bon tutoriel (plusieurs):

SERVER BEENDEN:
  Sudo service mysql stop
  Sudo mkdir -p /var/run/mysqld
  Sudo chown mysql:mysql /var/run/mysqld
  Sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
PRÜFEN MIT:
  jobs
STARTEN von MYSQL:
  mysql -u root
    mysql> FLUSH PRIVILEGES;
    mysql> USE mysql; 
    mysql> UPDATE user SET authentication_string=PASSWORD("NEWPASSWORD") WHERE user='root';
    mysql> UPDATE user SET plugin="mysql_native_password" WHERE User='root';
    mysql> quit
  Sudo pkill mysqld
  Sudo service mysql start

Dans la version Ubuntu actuelle, il semble que la commande de mot de passe ne soit pas connue. Je reçois l'erreur suivante.

mysql> UPDATE user SET authentication_string=password('YOURNEWPASSWORD') WHERE user='root';

Erreur 1064 (42000): Vous avez une erreur dans votre syntaxe SQL; Vérifiez le manuel qui correspond à votre version de Server MySQL pour la syntaxe de droite à utiliser à proximité de '(YourNewpassword') où User = 'root' 'à la ligne 1

Ma version mysql:

mysql ver 8.0.19-0ubuntu5 pour Linux sur x86_64 ((Ubuntu))

3
Umbrella Brothers

Il y a quelques parties à ce puzzle

Pour changer un mot de passe

Connectez-vous à la racine de la CLI:

Sudo mysql -u root -p

Puis

ALTER USER 'root'@'localhost' IDENTIFIED BY '<New-Password-Here>';

Pour vraiment faire travailler les choses

de phpmyadmin.net

En raison de modifications de la méthode d'authentification MySQL, PHP Les versions avant 7,4 sont incapables d'authentifier à un MySQL 8.0 blah bla bla blahttps: //bugs.php.net/bug.php?id=7624 .

Il existe une solution de contournement, c'est-à-dire de définir votre compte utilisateur pour utiliser la méthode Hash de mot de passe de style actuel, mysql_native_password. Ce manque malheureux de coordination a provoqué l'incompatibilité d'affecter tous PHP applications non seulement phpmyadmin.

Alors

UPDATE user SET plugin="mysql_native_password" WHERE user='root';

Pour vraiment bien faire travailler les choses ... vraiment

MySQL a changé de modèle de sécurité et La connexion racine nécessite maintenant un sudo. Ceci est correct pour le CLI, mais cela signifie que phpmyadmin et tous les autres clients ne pourra pas utiliser les informations d'identification racine

La meilleure solution consiste à créer un nouvel utilisateur pour phpmyadmin (ou utilisez-le existant s'il a été créé lors de l'installation) et de l'accorder les privilèges requis.

CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY '<New-Password-Here>';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Utilisez cet utilisateur n'importe où que vous souhaitiez "root" Accès.


Assurez-vous également que vous utilisez la dernière version de PHP. Voici mon script d'installation complet

PHP

Sudo apt install -y php7.4
Sudo apt install php7.4-curl php7.4-Gd php7.4-json php7.4-mbstring php7.4-xml

Apache

Sudo apt install Apache2 libapache2-mod-php7.4

MYSQL

Sudo apt install mysql-server php7.4-mysql
Sudo mysql_secure_installation

PHPMYADMIN

Sudo apt install phpmyadmin
2
Jonathan Spiller