Newsgroup: it.comp.www.php
Titolo: Trasferire un database dal locale al remoto

Ho creato , in locale , un database con Mysql ed ora vorrei trasferirlo sul
server remoto , dove ho già lo spazio MySql.
Vorrei sapere :
- che strumento ci vuole per trasferire il database (solo dati)?
- potreste spiegarmi la procedura?
Ho sentito parlare di dump , di che si tratta?
Grazie , Paolo

dalla macchina A alla B
sull macchina A:
mysqldump nome_miodb_da_esportare >  file.export.sql
sull' altra macchina B:
mysql < file.export.sql
-- 
Valter Mazzola -  Software/Databases for Enterprise Web Internet Sites
   PHP, Java Servlets, Applets, Jsp, ASP, PERL, Mod_Perl, Apache, IIS.
* 
HTTP://SITIDINAMICI.COM/?nttp
 ----- 
http://italia.LinSwap.com/?nttp
 
Phone:(+39) 347/129-07-16.  Fax:(+39) 02/700-539-403

 - potreste spiegarmi la procedura?
Come ti è stato scritto, sulla macchina locale usa
    mysqldump (-T nome_della_directory) nome_del_database
L'opzione [-T] di mysqldump è facoltativa ma io te la raccomando vivamente
insieme con il consiglio di indicare una directory facile da raggiungere
(magari il desktop, tanto per essere originali).
La utility "mysqldump" crea due file per ciascuna tabella, i quali hanno
come prefisso il nome della tabella stessa e come suffisso, rispettivamente,
".sql" (il file che contiene le istruzioni SQL per la creazione della
tabella) e ".txt" (il file che contiene i dati della tabella).
Se in remoto hai già la tabella, trasferisci il solo file con estensione
.txt e al server remoto dai il comando
    mysqlimport nome_del_file.txt nome_del_database
E' tutto.
ciao
_China

 mysqlimport nome_del_file.txt nome_del_database
Scusa, la solita sbadataggine. Inverti l'ordine:
    mysqlimport nome_del_database nome_del_file.txt
_China

- potreste spiegarmi la procedura?
Dipende se, su questa macchina, hai un accesso SSH, un accesso a MySQL
dall'esterno, un accesso FTP, un accesso telnet, o niente ;-)
$ACCESSO_MYSQL
	Il server ha la porta 3306 aperta e non firewallata; il server
	MySQL accetta connessioni su questa porta; si dispone di user,
	password e grants necessari per fare qualsiasi cosa sia quella
	che dobbiamo fare.
$ESTRAZIONE
	mysqldump -A --opt
	Questo estrae tutti i dati dal database locale.
$REMOTA
	$OPERAZIONE -C --host=NOMEDELSERVER --user=<> --password=<>
	Esegue $OPERAZIONE da/su un db su NOMEDELSERVER purche' questo
        abbia $ACCESSO_MYSQL.
$REIMMISSIONE
	mysql <parametri> < nomefile.dump
	Prende i dati in "nomefile.dump" e li immette nel database.
$DUMP_SU_FILE
	$ESTRAZIONE > nomefile.dump
	crea un file "nomefile.dump" che puo' essere sottoposto ad una
	$REIMMISSIONE, eventualmente anche $REMOTA.
Allora:
	1. Accesso SSH
	E' possibile effettuare una $ESTRAZIONE e una $REIMMISSIONE in
	simultanea:
		$ESTRAZIONE | ssh -C utente@server "$REIMMISSIONE"
	Questo estrae i dati in locale, li manda, compressi e cifrati,
	lungo un tunnel SSH/stdin, fino al client MySQL sul 'server' -
	non e' necessario avere $ACCESSO_MYSQL - che li immettera' "in
	locale"... sul "suo" locale :-).
	2. Accesso Telnet + FTP
	Telnet non consente il tunneling di stdin. E quindi bisognera'
	usare FTP per spedire sul server il file ottenuto mediante una
	$ESTRAZIONE, e, da telnet, effettuare la $REIMMISSIONE.
	3. $ACCESSO_MYSQL
	Si puo' effettuare $ESTRAZIONE e $REIMMISSIONE in simultanea.
	$ESTRAZIONE | $REIMMISSIONE $REMOTA
	oppure (su Windows 9X/ME e' meglio, su Linux/W2K/NT e' peggio)
	$ESTRAZIONE > file.dump
	$REIMMISSIONE $REMOTA < file.dump
	DEL file.dump	(se volete)
	Questo estrae IN LOCALE il database, e lo rispedisce IN CHIARO
	sul server remoto, senza usare il client remoto.
	4. Niente
	$ESTRAZIONE > file.dump
	pkzip -ex dmp.zip file.dump
	mail -s "Aggiornamento db" root@server --attach=dmp.zip
	   Caro amministratore,
		allego il dump del mio database MySQL. Potrebbe
		effettuarne un restore con i miei permessi?
	   Suo,
		Vmile Vtente
	.
	quit
Leonardo
-- 
Time's angles, mages tell, conceal a place
incredible, beyond the mundane mind;
night-shrouded and between the seas of space
dread creatures drift in the ageless winds.