Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Administration
Administration Forum d'entraide sur l'administration de MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/02/2011, 19h15   #1
Invité de passage
 
Inscription : janvier 2011
Messages : 17
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 17
Points : 4
Points : 4
Par défaut Flush log binaire

Bonjour à toutes et à tous,

Je me heurte à un petit problème lors de la regénération de log binaire.
Lorsque j'exécute la commande FLUSH LOGS dans la console mysql, tout se passe correctement.

Cependant, lorsqu'il s'agit d'exécuter cette commande dans un script PHP, rien ne se passe. J'ai essayé avec l'aternative mysqladmin --flush logs mais rien n'y fait. Je tiens à préciser que j'ai effectué une connexion à la base au préalable dans le script.
Voici le code :

Code :
1
2
3
4
$cmdflush = "mysqladmin flush-logs";
					exec($cmdflush, $retour, $res);
					echo "res flush = $res\r\n";
					print_r($retour);
J'ai essayé avec les "--" devant flush sans succès. J'ai le code retour : 1

Aussi, comment savoir dans le fichier index des log binaires lequel est actuellement utilisé par mysql ? Il me semblait que c'était celui précédé des caractères ./ : ./mysql-bin.000001 par exemple. Mais dans mon cas voici le contenu de mon fichier index :

Citation:
.\mysql-bin.000001
.\mysql-bin.000002
.\mysql-bin.000003
.\mysql-bin.000004
.\mysql-bin.000005
.\mysql-bin.000006
.\mysql-bin.000007
.\mysql-bin.000008
.\mysql-bin.000009
.\mysql-bin.000010
.\mysql-bin.000011
.\mysql-bin.000012
Est-ce normal ?

En espérant être compréhensible,

Cdlt, deletMe
deletme est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 15h02   #2
Invité de passage
 
Inscription : janvier 2011
Messages : 17
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 17
Points : 4
Points : 4
Quelqu'un pourrait-il copier le contenu de son fichier index pour commencer ?
deletme est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 13h42   #3
Invité de passage
 
Inscription : janvier 2011
Messages : 17
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 17
Points : 4
Points : 4
Bonjour à toutes et à tous,

Je viens de demander de l'aide à mon responsable projet et voici les solutions :
  • FLUSH LOGS : se connecter en premier à la base avec mysql_connect puis faire un mysql_query('FLUSH LOGS', $lienbdd);
  • mysqladmin : $cmd = 'mysqladmin -u user -p password flush-logs';
    exec($cmd,$retour,$res);

Voilà, en espérant que ça en aide certain(e)s.

Cependant je n'ai toujours pas trouver la façon de déterminer le log binaire actif. Il est vrai qu'après un flush le serveur utilise forcément le log dont l'index est le plus haut... Je vais voir de ce côté là.
deletme est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 14h18   #4
Membre éclairé
 
Inscription : avril 2009
Messages : 331
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : avril 2009
Messages : 331
Points : 397
Points : 397
Pour voir le log binaire actif, il suffit de faire :

Code :
1
2
3
4
5
6
7
8
9
10
 
mysql:root:b1> SHOW master STATUS;
+--------------------------+----------+--------------+------------------+
| File                     | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------------------+----------+--------------+------------------+
| myserver02_logbin.000008 |     2480 |              |                  |
+--------------------------+----------+--------------+------------------+
1 row IN SET (0.01 sec)
 
mysql:root:b1>
Rachid
mydb_server est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 14h27   #5
Invité de passage
 
Inscription : janvier 2011
Messages : 17
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 17
Points : 4
Points : 4
En effet merci pour l'information. Cependant est-il possible de récupérer cette info autrement que dans la console ? En retour de fonction par exemple ?
deletme est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2011, 08h49   #6
Invité de passage
 
Inscription : janvier 2011
Messages : 17
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 17
Points : 4
Points : 4
Bonjour,

Voici une solution que l'on a trouvé, qui fonctionne et que je vous propose :

Code :
1
2
3
$result = mysql_query("SHOW MASTER STATUS"); // montre le log en cours
$dernier_log = mysql_result($result, 0);//recupere le log en cours			
$result = mysql_query("PURGE MASTER LOGS TO '$dernier_log'"); //purge de tous les logs anterieur à celui cité
Cdlt, deletMe
deletme est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h20.


 
 
 
 
Partenaires

Hébergement Web