Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 17/02/2020, à 19:41

JME44

[Résolu] 18.04 mariadb OK avec WorkBench, inaccessible via apache2

Bonjour,

Dans le cadre d'un changement de matériel, j'ai installé mariadb (plusieurs fois !) et j'ai chargé mes bases depuis un dump de l'autre machine.
J'y accède sans problème avec MySql Workbench : j'ai recréé mes différents utilisateurs, en sudo mysql pour l'administrateur de MySql Workbench, depuis Workbench pour les autres.

Cependant, quand j'utilise mes sites (en local : localhost/...) je reçois pour tous le même message

Site en travaux
Attention : un problème technique (serveur SQL) empêche l’accès à cette partie du site. Merci de votre compréhension.

(ou équivalent suivant si le site utilise un CMS).

Je précise que ces sites sont des versions de travail de sites opérationnels chez un hébergeur et que je n'ai pas oublié de modifier leurs connexions, localhost à la place du site hébergeur, tout le reste (base, user, pwd) est identique. Ils fonctionnent toujours parfaitement sur l'ancienne machine de développement (18.04 + apache2 + mariadb soit la même config)

Le fichier /var/log/mysql/error.log contient

2020-02-17 22:51:38 140167141321856 [Note] InnoDB: innodb_empty_free_list_algorithm has been changed to legacy because of small buffer pool size. In order to use backoff, increase buffer pool at least up to 20MB.

2020-02-17 22:51:38 140167141321856 [Note] InnoDB: Using mutexes to ref count buffer pool pages
2020-02-17 22:51:38 140167141321856 [Note] InnoDB: The InnoDB memory heap is disabled
2020-02-17 22:51:38 140167141321856 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2020-02-17 22:51:38 140167141321856 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
2020-02-17 22:51:38 140167141321856 [Note] InnoDB: Compressed tables use zlib 1.2.11
2020-02-17 22:51:38 140167141321856 [Note] InnoDB: Using Linux native AIO
2020-02-17 22:51:38 140167141321856 [Note] InnoDB: Using SSE crc32 instructions
2020-02-17 22:51:38 140167141321856 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2020-02-17 22:51:38 140167141321856 [Note] InnoDB: Completed initialization of buffer pool
2020-02-17 22:51:38 140167141321856 [Note] InnoDB: Highest supported file format is Barracuda.
2020-02-17 22:51:38 140167141321856 [Note] InnoDB: 128 rollback segment(s) are active.
2020-02-17 22:51:38 140167141321856 [Note] InnoDB: Waiting for purge to start
2020-02-17 22:51:38 140167141321856 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.46-86.2 started; log sequence number 2210238
2020-02-17 22:51:38 140166471612160 [Note] InnoDB: Dumping buffer pool(s) not yet started
2020-02-17 22:51:38 140167141321856 [Note] Plugin 'FEEDBACK' is disabled.
2020-02-17 22:51:38 140167141321856 [Note] Server socket created on IP: '127.0.0.1'.
2020-02-17 22:51:38 140167141321856 [Note] /usr/sbin/mysqld: ready for connections.
Version: '10.1.44-MariaDB-0ubuntu0.18.04.1'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  Ubuntu 18.04

... soit aucun message d'erreur !

Particularité : le répertoire /var/lib/mysql sert à monter une partition dédiée aux bases de données, montée avant l'installation de mariadb.
Les droits sur /var/lib/mysql sont vérifiés (owner : mysql création et suppression de fichiers, group : mysql accès aux fichiers all : accès au fichiers) y compris pour les fichiers inclus.

Merci de vos conseils

Dernière modification par JME44 (Le 18/02/2020, à 16:06)


Ubuntu 22.04 sur AMD Ryzen 7 2700x et autres sous diverses versions d'Ubuntu, y compris sur Raspberry.

Hors ligne

#2 Le 18/02/2020, à 11:34

bruno

Re : [Résolu] 18.04 mariadb OK avec WorkBench, inaccessible via apache2

Bonjour,

D'après ce que tu décris, c'est pourtant bien un problème d'utilisateur ou mot de passe de la base de données.
Il faut vérifier que tu arrives à te connecter en ligne de commande avec le nom d'utilisateur de l'un de tes sites web :

mysql -u toto -p

Hors ligne

#3 Le 18/02/2020, à 12:25

JME44

Re : [Résolu] 18.04 mariadb OK avec WorkBench, inaccessible via apache2

Bonjour Bruno et merci,

Je viens d'en tester 3 et mysql s'est ouvert à chaque fois. Dont un en faisant du copier/coller du mot de passe à partir du fichier de connexion.
Une commande use de la base suivie d'un select et tout fonctionne.
Dans Mysql Workbench (MWB), j'ai installé et testé tous les utilisateurs avec leur mot de passe et leur droits spécifiques sur leur propre base et ça fonctionne.
MWB affiche un serveur fonctionnel.
MWB utilise le port 3306 pour accéder à mysql donc ne se comporte pas en 'localhost'.
À part 'root' tous les utilisateurs sont en accès extérieur From Host '%'.

À ce stade j'ai l'intuition que c'est du côté de apache2 que ça plante mais il n'y a rien de spécifique.
@ suivre


Ubuntu 22.04 sur AMD Ryzen 7 2700x et autres sous diverses versions d'Ubuntu, y compris sur Raspberry.

Hors ligne

#4 Le 18/02/2020, à 14:19

bruno

Re : [Résolu] 18.04 mariadb OK avec WorkBench, inaccessible via apache2

Peux-tu confirmer que tout se trouve sur la me machine : serveur Apache et serveur MariaDB ?
D'après ton premier message le serveur mysql est bien en écoute sur 127.0.0.1:3306
Dans ces conditions autoriser les utilisateurs depuis n’importe quel hôte (%) est tout à fait inutile.

Le retour de cette requête permettait de bien vérifier les utilisateurs :

select user,host,plugin,authentication_string from mysql.user;

Tu peux aussi utiliser un petit script PHP pour tester la connectivité, à mettre dans un fichier PHP à la racine d'un de tes sites :

 <?php
$servername = "localhost";
$username = "username";
$password = "password";

try {
    $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully";
    }
catch(PDOException $e)
    {
    echo "Connection failed: " . $e->getMessage();
    }
?> 

Hors ligne

#5 Le 18/02/2020, à 14:46

JME44

Re : [Résolu] 18.04 mariadb OK avec WorkBench, inaccessible via apache2

Bingo,

Je pense que tu as trouvé : le connect.php répond "Connection failed: could not find driver"
Il semble donc qu'il manque un morceau de php. Reste à savoir quel plugin/librairie ajouter.
Si tu as une idée ... ?
Je vais comparer mes deux phpinfo () mais c'est un sacré paquet.

Merci, on progresse grâce à toi


Ubuntu 22.04 sur AMD Ryzen 7 2700x et autres sous diverses versions d'Ubuntu, y compris sur Raspberry.

Hors ligne

#6 Le 18/02/2020, à 16:05

JME44

Re : [Résolu] 18.04 mariadb OK avec WorkBench, inaccessible via apache2

Explication : il manquait le driver mysql de pdo

sudo apt-get install php7.*-mysql

Puis modifier
/etc/php/7.2/apache2/php.ini et
/etc/php/7.2/cli/php.ini

en dé-commentant la ligne
extension=pdo_mysql

Pour être sûr, j'ai redémarré la machine.

Peut-être faut-il mieux installer php après mysql/mariadb ou le contraire ?

Encore merci à Bruno qui m'a mis sur la bonne piste


Ubuntu 22.04 sur AMD Ryzen 7 2700x et autres sous diverses versions d'Ubuntu, y compris sur Raspberry.

Hors ligne

#7 Le 18/02/2020, à 16:41

bruno

Re : [Résolu] 18.04 mariadb OK avec WorkBench, inaccessible via apache2

Normalement tu aurais du juste installer php-mysql, sans numéro de version. Voir la doc lamp

sudo apt install php-mysql

Et aucune modification de php.ini n'est nécessaire.
L'ordre d'installation n'a pas d'importance.

Hors ligne