OS-sw ver.: CCBot/2.0 (https://commoncrawl.org/faq/)
Login date: 24 Mar 19 - 02:45:49
IP Address: 54.87.18.165Cursore

Registrati

---------------------------------------------------------------------------------
Lo script da piazzare sulla macchina locale
---------------------------------------------------------------------------------



In poche parole questo script permette di replicare le tabelle del nostro database di casa su quello di Altervista.
Tutto ciò perchè i DB Mysql di Altervista non consentono la configurazione di replica (nb...e hai un solo DB in Altervista)

In pratica, non faccio altro che lanciare con cron il seguente script (una o più volte al giorno) che si connette al mio DB, esegue eventuali query da un'altro script sql, faccio un dump sulla mia macchina delle tabelle che mi servono, tramite ftp invio il dump in una cartella prestabilita del mio sito, faccio in modo che da Altervista venga eseguito uno script php di import, rimuovo eventuali file temporanei ed eseguo un eventuale script di post.

P.S. Il pre e post non sono fondamentali ovviamente.

di seguito lo script da modificare a proprio piacimento:

#!/bin/sh
HOST='miohost.altervista.org'
USER='username'
PASSWD='password'
FILE='outputreplica.sql'
cd /opt/scripts/
#Eventuale script sql di pre dump OPZIONALE
#------------------------------------------
mysql -h localhost -u root -p********* Nomedatabase < CodiceSQL.sql
#------------------------------------------
#Dump delle tabelle del DB nel file $FILE in locale (--single-transaction da usare in caso dovesse dare errore)
mysqldump -u root -p********** Nomedatabase Nometabella1 Nometabella2 Nometabella3 --single-transaction > $FILE
#Connessione e invio file via ftp al sito Altervista
ftp -in $HOST << EOT
ascii
user $USER $PASSWD
cd replica
put $FILE
bye
EOT
#Rimozione del file di Dump $FILE da locale
rm $FILE
#Faccio eseguire lo script di import dal mio sito Altervista
wget http://$HOST/pathscriptreplica/replica.php
sleep 120
#Rimuovo il file che mi ha scaricato dopo il wget
rm replica.php
#Eventuale script sql di post export OPZIONALE
#------------------------------------------
/usr/bin/mysql -h localhost -u root -p********* Nomedatabase < CodiceSQLdrop.sql
#------------------------------------------

---------------------------------------------------------------------------------
I pre e post della macchina locale (OPZIONALE)
---------------------------------------------------------------------------------



CodiceSQL.sql:

CREATE TABLE tabellaX_export AS
SELECT *
FROM tabellaX


CodiceSQLdrop.sql:

DROP TABLE tabellaX_export


---------------------------------------------------------------------------------
Lo script da piazzare sul sito di Altervista
---------------------------------------------------------------------------------

Script php da posizionare sul sito Altervista per effettuare l'import (da mettere nella stessa dir di dove viene depositato il dump):

replica.php

<?php
// Name of the file
$filename = 'outputreplica.sql';
// MySQL host
$mysql_host = 'localhost';
// MySQL username
$mysql_username = 'usernamealtervista';
// MySQL password
$mysql_password = '';
// Database name
$mysql_database = 'my_nomealtervista';
// Connect to MySQL server
mysql_connect($mysql_host, $mysql_username, $mysql_password) or die('Error connecting to MySQL server: ' . mysql_error());
// Select database
mysql_select_db($mysql_database) or die('Error selecting MySQL database: ' . mysql_error());
// Eventuali drop di tablelle OPZIONALE
// ------------------------------------
mysql_query( "DROP TABLE `_export`" );
mysql_query( "DROP TABLE `tabellaX`" );
// ------------------------------------
// Temporary variable, used to store current query
$templine = '';
// Read in entire file
$lines = file($filename);
// Loop through each line
foreach ($lines as $line)
{
// Skip it if it's a comment
if (substr($line, 0, 2) == '--' || $line == '')
    continue;
// Add this line to the current segment
$templine .= $line;
// If it has a semicolon at the end, it's the end of the query
if (substr(trim($line), -1, 1) == ';')
{
    // Perform the query
    mysql_query($templine) or print('Error performing query \'<strong>' . $templine . '\': ' . mysql_error() . '<br /><br />');
    // Reset temp variable to empty
    $templine = '';
}
}
// Eventuale query di rename tabella OPZIONALE
// ------------------------------------
mysql_query( "RENAME TABLE `tabellaX_export` TO `tabellaX`" );
// ------------------------------------
echo "Tables imported successfully";
?>

Visite totali62109
Questo sito web usa i cookies per gestire alcune funzionalità, quali navigazione, autenticazione, commenti, etc. Utilizzando il nostro sito web, accetti l'utilizzo dei cookies.