Bonjour à tous,
Et oui je sorts encore les rames pour ce qui est de la réplication de bases Mysql.
Et dans le script ci-dessous, j'ai une erreur de type :
Undefined offset: 2 in C:\wamp\www\dbsync\test2.php on line 72
Undefined offset: 1 in C:\wamp\www\dbsync\test2.php on line 72
The question is : que faire dans ce cas ?
Voici le script :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
| <html>
<head>
<title> Online Mysql Server status </title>
</head>
<body>
<form name="ShowStatus" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<br/>
<table border=1 align=center>
<tr align=center bgcolor=gray><td colspan=2><b> Online DB Server Status </b></td> </tr>
<?php
if(isset($_POST['server'])) $server=$_POST['server'];
else $server="";
?>
<tr><td align=centre> Select Server: <select name="server">
<option value="s1" <?php if ($server == "s1") echo "selected"; ?> > Server 1
<option value="s2" <?php if ($server == "s1") echo "selected"; ?> > Server 2
<option value="s3" <?php if ($server == "s1") echo "selected"; ?> > Server 3
<option value="s4" <?php if ($server == "s1") echo "selected"; ?> > Server 4
</select> </td>
<td align=centre> <input type=submit name='show' value='Show Status'></td></tr>
</form>
</table>
<?php
$serverUp=1; ## if any of your server not configured, set this variable to 0 below
$serverString="localhost"; ## server name
$serverIP="192.168.16.16"; ## default IP, anyhow will be changed later
$dbuser="bla";
$dbpassword="bla";
$imgShow="<img src='led-green.gif' />";
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
switch($_POST['server']){
case "s1":
$serverString="Server 1";
$serverIP="IP1";
break;
case "s2":
$serverString="Server 2";
$serverIP="IP2";
break;
case "s3":
$serverString="Server 3";
$serverIP="IP3";
break;
case "s4":
$serverString="Server 4";
$serverIP="IP4";
$serverUp=0;
break;
}
?>
<br/>
<table border=1 align=center width=50%>
<tr align=center bgcolor=gray><td colspan=4><b> Status de <?php echo $serverString." : ". $serverIP; ?> </b></td> </tr>
<tr > <th bgcolor=lightgray> Status </th> <th bgcolor=lightgray > Replication </th> <th bgcolor=lightgray> Delay </th> <th bgcolor=lightgray> Erreur </th> </tr>
<?php
if (!$serverUp) {
?>
<tr> <td align=center colspan=4> Ce serveur n'est pas encore configuré! </td> </tr>
<?php
}
else {
$contactAdmin="<a href='mailto:blabla@yourmail.com?subject=Replication issue in $serverString'> Contact Admin </a>";
$RepStatus = `mysql -h $serverIP -u $dbuser -p$dbpassword -e "show slave status\G;" | egrep "Slave_IO_Running: | Slave_SQL_Running: | Seconds_Behind_Master:" | cut -d':' -f2`; $RepStatus= trim($RepStatus);
list($RepRun, $SqlRun, $RepDelay) = preg_split("/ /",$RepStatus);
$RepRun = trim($RepRun);
$SqlRun = trim($SqlRun);
$RepDelay = trim($RepDelay);
// echo "<br/> Reprun=$RepRun, IO Run =$SqlRun, Replication delay =$RepDelay";
if($RepRun == "Yes") { $RepRun = "OK"; $contactAdmin=""; } else { $RepRun = "Replication (IO) Not Running!"; $imgShow="<img src='led-red.gif' />"; }
if($SqlRun == "Yes") { $SqlRun = "None"; $contactAdmin=""; } else {$SqlRun = "SQL thread stopped! "; $imgShow="<img src='led-red.gif' />";}
if($RepDelay == 0 ) { $RepDelay = "None"; } else { $RepDelay .= " seconds."; $contactAdmin=""; }
?>
<tr> <td align=center> <?php echo $imgShow; ?> </td> <td align=center> <?php echo $RepRun; ?> </td> <td align=center> <?php echo $RepDelay; ?> </td> <td align=center> <?php echo $SqlRun; ?> </td> </tr>
<?php
if ($contactAdmin != "") { echo "<tr> <td align=center colspan=4> $contactAdmin </td></tr>"; }
}
?>
</table>
<?php
}
?>
</html>
</body> |
et la ligne 72 correspond à :
list($RepRun, $SqlRun, $RepDelay) = preg_split("/ /",$RepStatus);
En vous remerciant pour l'aide.
Partager