OVH Community, votre nouvel espace communautaire.

connexion Mysql


bbr18
23/06/2016, 10h58
tu te compliques la vie, pourquoi ne pas faire un script php que tu appelles dans ton cron ?
genre ceci :
Code:
1 10 ** * php /home/ton_script.php
et le fichier php :
Code:
#!/bin/bash
mysqldump -u root -pLE_PASS --opt --all-databases | gzip >toutes_les_bdd.gz

xxavier
23/06/2016, 10h47
Ça y est j'ai trouvé la réponse a mon problème après plus de trois heures à galérer.
J'espère que ça pourra servir à quelqu'un.

En regardant en détail mon fichier my.cnf
je me suis rendu compte que au niveau client le socket était :

Code:
[client]
socket                                          = /var/run/mysqld/mysql.sock
Et qu'au niveau du serveur j'avais

Code:
[mysqld]
socket                                          = /var/run/mysqld/mysqld.sock


après avoir corrigé le socket du client dans my.cnf et relancé mysql ça refonctionne.

Donc problème résolu.
(par contre je n'ai pas trouvé comment marqué ce sujet comme résolu)

xxavier
23/06/2016, 08h51
Merci pour ta reponse,

pour le fichier sock c'est exactement ce que j'avais fait J'ai recréer le fichier avec mysql. (et il a bien les bons droits : mysql:mysql)

phpmyadmin fonctionne tres bien je peux meme faire des dump de mes bases.
C'est juste quand je me connecte en ligne de commande que ca veut pas.

j'ai changé le mdp sans meilleur resultat , pareil en accedant a mysql en root (ca marche lorsque ca vient d'un script php) mais pas en ligne de commande.
Je me demande si c'est pas une histoire de hosts (mais pour le coup je ne sais pas trop comment le gérer.

Nowwhat
23/06/2016, 08h32
Bonjour,

T'as phpmyadmin installé ?
T'as testé avec "utilisateur" et "mot de passe" ?
T'as vérifié avec ton acces "root" de ton serveur MySQL si l’utilisateur existe ?
T'as remis un autre mot de passe pour voir ?

J'ai verifié que le fichier '/var/run/mysqld/mysql.sock' existait bien, je l'ai meme supprimé puis recréer.
Ca ne marche pas comme ça.
Ce n'est pas un fichier que tu puiise supprimer puis recreer.
Le 'socket' est crée par MySQL quand il démarre - c'est un sorte de point d'entrée pour communiquer avec le serveur MySQL - comme localhost:3306 en est un autre.
Redémarre ton serveur MySQL pour le recréer (puis vérifier que ça foire pas, car SI t'as crée '/var/run/mysqld/mysql.sock' avec l’utilisateur root , le service MySQL n'a plus le droit de supprimer et recréer '/var/run/mysqld/mysql.sock' car il tourne 'seulement' avec l'id 'mysql'.)
Donc stop le serveur MySQL.
Supprime manuellement le '/var/run/mysqld/mysql.sock' - et vérifier qu'il n'est plus la.
Démarre MySQL.

xxavier
23/06/2016, 08h25
Bonjour,
Je rencontre un problème curieux et je n'ai pas trouvé de réponse sur le web pour l'instant.
J'ai un script php qui s'execute en tache CRON pour la sauvegarde de mes bases de données.
Je me suis rendu compte que depuis peu ce script ne fonctionnait plus.

En fait au debut du script je me connecte à la base mysql pour recuperer le nom de toutes les base a sauvegarder (ca ca marche).
Ensuite pour chaque base je fais un mysqldump que je lance via une commande system();
et c'est ca qui ne marche plus, le serveur me repond :

mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/var/run/mysqld/mysql.sock' (2) when trying to connect
J'ai verifié que le fichier '/var/run/mysqld/mysql.sock' existait bien, je l'ai meme supprimé puis recréer.
Mon serveur mysql tourne bien.

Lorsque je me connecte depuis un script php la connexion a la base de données se fait bien mais lorsque je tente de me connecter en SSH via un mysql -u utilisateur -p et que je rentre mon mot de passe j'ai la meme erreur qu'indiqué plus haut.

Est ce que quelqu'un aurait une idée ?

Merci

Xavier