WikiOpenTruc:BD Mediawiki : Différence entre versions

De WikiOpenTruc
Aller à : navigation, rechercher
m
m (Import BD)
Ligne 42 : Ligne 42 :
 
<code>
 
<code>
 
<?PHP
 
<?PHP
  error_reporting(E_ALL); // Activer le rapport d'erreurs PHP
+
error_reporting(E_ALL); // Activer le rapport d'erreurs PHP
  
  $db_charset = "latin1"; /* mettre utf8 ou latin1 */
+
$db_charset = "latin1"; /* mettre utf8 ou latin1 */
  
  $db_server        = "xxxxxx"; // Nom du serveur MySQL.  ex. mysql5-26.perso
+
$db_server        = "xxxxxx"; // Nom du serveur MySQL.  ex. mysql5-26.perso
  $db_name          = "xxxxxx"; // Nom de la base de données.  ex. mabase
+
$db_name          = "xxxxxx"; // Nom de la base de données.  ex. mabase
  $db_username      = "xxxxxx"; // Nom de la base de données.  ex. mabase
+
$db_username      = "xxxxxx"; // Nom de la base de données.  ex. mabase
  $db_password      = "xxxxxx"; // Mot de passe de la base de données.
+
$db_password      = "xxxxxx"; // Mot de passe de la base de données.
  
  $cmd_mysql = "mysql";
+
$cmd_mysql = "mysql";
  
  $archive_SQL      = "Sauve_Base.SQL";
+
$archive_SQL      = "Sauve_Base.SQL";
  
  if (!is_file($archive_SQL))  echo "<font color=red>Le fichier <b>".$archive_SQL."</b> n'existe pas </font> <br> \n";
+
if (!is_file($archive_SQL))  echo "<font color=red>Le fichier <b>".$archive_SQL."</b> n'existe pas </font> <br> \n";
  
  echo " Restauration de la base <font color=red><b>$db_name</b></font> par <b>mysql</b> depuis le fichier <b>$archive_SQL</b> <br> \n";
+
echo " Restauration de la base <font color=red><b>$db_name</b></font> par <b>mysql</b> depuis le fichier <b>$archive_SQL</b> <br> \n";
  $commande = "$cmd_mysql --host=$db_server  --user=$db_username --password=$db_password $db_name  < $archive_SQL";
+
$commande = "$cmd_mysql --host=$db_server  --user=$db_username --password=$db_password $db_name  < $archive_SQL";
  $CR_exec = system($commande);  
+
$CR_exec = system($commande);  
 
?>  
 
?>  
 
</code>
 
</code>

Version du 13 octobre 2015 à 18:39

Maintenance des tables


Sauvegardes

  • a priori, le mieux semble être via mysqldump en ligne de commande (avec putty) ou dans un php.
  • phpMyAdmin ne semble absolument pas fiable pour les sauvegardes. Jamais 2 fois la même taille !
  • penser à sauvegarder aussi les images, pdfs, etc



Import BD

<?PHP error_reporting(E_ALL); // Activer le rapport d'erreurs PHP

$db_charset = "latin1"; /* mettre utf8 ou latin1 */

$db_server = "xxxxxx"; // Nom du serveur MySQL. ex. mysql5-26.perso $db_name = "xxxxxx"; // Nom de la base de données. ex. mabase $db_username = "xxxxxx"; // Nom de la base de données. ex. mabase $db_password = "xxxxxx"; // Mot de passe de la base de données.

$cmd_mysql = "mysql";

$archive_SQL = "Sauve_Base.SQL";

if (!is_file($archive_SQL)) echo "Le fichier ".$archive_SQL." n'existe pas
\n";

echo " Restauration de la base $db_name par mysql depuis le fichier $archive_SQL
\n"; $commande = "$cmd_mysql --host=$db_server --user=$db_username --password=$db_password $db_name < $archive_SQL"; $CR_exec = system($commande); ?>


Upgrade uplib

  • souci à l'update. La taille de la BD semble poser problème pour sa modification.

https://www.mediawiki.org/wiki/Manual:Upgrading/fr#Web_browser

If your database is already big and in high production usage, then you should not be using the Web updater, e.g. because the update process

will time out when the maximum_execution_time is reached. In that case you should use update.php from the command-line interface (not from the web). What exactly is "too big" depends on your server (e.g. on its performance, the load and on how long the maximum execution time of PHP allows the script to run). If your wiki is too big for the web updater and your hosting provider does not allow command-line access, then you need to migrate your wiki to another hosting account, preferably to one that does have shell access.

Opentruc pesait 72Mo au total, et c'est passé. Uplib pèse ~200Mo au total, soit presque le triple. Mais ça semble ne plus passer.

Or, la plus grosse table (de loin) est mwi_text dont la structure mediawiki semble ne pas avoir subi de modification depuis la version 1.9. Donc, une idée serait de sauvegarder cette table, de l'effacer de la BD pour la ramener à une taille raisonnable. Puis de faire l'update de la structure ... et puis de réimporter la table.

Je peux faire cela éventuellement directement sur la nouvelle BD MySQL 5.5.