PDA

Visualizza la versione completa : Da PHPMyAdmin a MySQL Administrator


Imnotdead
16-01-2011, 11:50
Buongiorno a tutti,
scusate in anticipo per la domanda da nabba, per ho sempre lavorato con PHP My Admin e mi trovo ora a dover importare un database (esportato da PHP My Admin) in MySQL Administrator. Guardando in giro ho letto che MySQL Administrator importa SOLO i suoi files sql di backup....mmm....io ho un SQL esportato da PHPMyAdmin, come faccio ad importarlo?

Grazie

deleted_29
16-01-2011, 14:07
premesso che non uso mai myphpadmin...
1) installalo anche dove devi ripristinare
2) verifica se un mysqldump, nel caso "correggilo" con notepad++ (se non veramente gigantesco)

Imnotdead
16-01-2011, 14:17
Ciao e grazie per la risposta. Purtroppo non posso installarlo dove c'e' MySQL Admin, il server di un cliente e non ho gli accessi. PHPMyAdmin lo uso localmente. Problema n.2, come faccio a verificare se un mysqldump? XD

deleted_29
16-01-2011, 17:08
Originariamente inviato da Imnotdead
Problema n.2, come faccio a verificare se un mysqldump? XD
... lo apri col notepad (/notepad++) :mem:
---
Ricorda che i dump non sono niente pi di
"istruzioni varie"
"sequenzona di insert"

nulla ti vieta di editare a manina le "istruzioni varie" e/o purgare la "sequenzona insert"

Imnotdead
16-01-2011, 19:16
Ok, guardato. Si, un dump di MySQL, ci sono istruzioni di "create table" e di "insert", quindi credo che il formato vada bene. Il dump molto lungo perch il database molto ampio, quindi vorrei evitare di fare modifiche. In ogni caso, quello che non capisco perch non riesco ad importarlo, trattandosi cmq di un file .sql, quindi la sintassi dovrebbe essere la stessa, sia per PHPMyAdmin sia per MySQL Administrator.

Grazie ancora per l'aiuto.

deleted_29
16-01-2011, 19:28
in breve:no

mysqladministrator ha "il suo" formato, non che siano "tutti uguali".
tra l'altro codifica in utf8 praticamente sempre
---
se vuoi andare sul sicuro "pulisci" a mano (o con un programma-script) il dump ed importalo direttamente da mysql.

normalmente bastano 5 minuti
---
se invece vuoi... prova direttamente a fare il
mysql -uroot -ppassword nome_db <nome_dump.sql

se non c' troppa "roba strana" dovresti riuscirci

Imnotdead
16-01-2011, 19:40
Ah ok, ecco un tassello che mi mancava e che essenziale: MySQL Administrator ha il suo formato. Grazie per la spiegazione. Ultima domanda, dato che la prima volta che lo faccio: quando ho provato ad importare il file, MySQL Admin mi dice "Error in importing" ma non mi dice dove sta l'errore, sai dirmi piu o meno cosa esattamente devo pulire nel dump?

Bow

deleted_29
16-01-2011, 20:20
... tutto :mem:

se non hai esigenze particolari, taglia via tutto che non siano le
"create table" ed "insert"

il resto della croppa sono ottimizzazioni varie, inutili nel caso di db piccoli.
In realt potresti provare a "trasformarlo", ma non ha un gran senso, se un lavoro che devi fare una volta sola

questo un esempio prima della "purga"

-- MySQL Administrator dump 1.4
--
-- ------------------------------------------------------
-- Server version 5.1.40-community


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;


--
-- Create schema prova
--

CREATE DATABASE IF NOT EXISTS prova;
USE prova;

--
-- Definition of table `libri`
--

DROP TABLE IF EXISTS `libri`;
CREATE TABLE `libri` (
`chiave` int(10) unsigned NOT NULL,
`autore` varchar(45) NOT NULL,
`titolo` varchar(45) NOT NULL,
`casa` varchar(45) NOT NULL,
PRIMARY KEY (`chiave`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `libri`
--

/*!40000 ALTER TABLE `libri` DISABLE KEYS */;
INSERT INTO `libri` (`chiave`,`autore`,`titolo`,`casa`) VALUES
(491193293,'calvino','il sentiero dei nidi di ragno','rizzoli');
/*!40000 ALTER TABLE `libri` ENABLE KEYS */;


--
-- Definition of table `ordini`
--

DROP TABLE IF EXISTS `ordini`;
CREATE TABLE `ordini` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`totale` int(10) unsigned DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1;

--
-- Dumping data for table `ordini`
--

/*!40000 ALTER TABLE `ordini` DISABLE KEYS */;
INSERT INTO `ordini` (`id`,`totale`) VALUES
(1,10),
(2,11),
(3,12),
(4,13),
(5,14),
(6,15),
(7,16),
(8,17),
(9,18);
/*!40000 ALTER TABLE `ordini` ENABLE KEYS */;


--
-- Definition of table `stato_ordini`
--

DROP TABLE IF EXISTS `stato_ordini`;
CREATE TABLE `stato_ordini` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`stato` int(10) unsigned NOT NULL,
`id_ordine` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`),
KEY `Index_2` (`id_ordine`,`stato`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1;

--
-- Dumping data for table `stato_ordini`
--

/*!40000 ALTER TABLE `stato_ordini` DISABLE KEYS */;
INSERT INTO `stato_ordini` (`id`,`stato`,`id_ordine`) VALUES
(1,1,1),
(2,2,1),
(3,1,2),
(4,2,2),
(5,1,3),
(6,2,3),
(7,3,3),
(8,1,4),
(9,2,4);
/*!40000 ALTER TABLE `stato_ordini` ENABLE KEYS */;




/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;


----------
e dopo (questo funziona con mysql)

CREATE DATABASE IF NOT EXISTS prova;
USE prova;
DROP TABLE IF EXISTS `libri`;
CREATE TABLE `libri` (
`chiave` int(10) unsigned NOT NULL,
`autore` varchar(45) NOT NULL,
`titolo` varchar(45) NOT NULL,
`casa` varchar(45) NOT NULL,
PRIMARY KEY (`chiave`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `libri` (`chiave`,`autore`,`titolo`,`casa`) VALUES
(491193293,'calvino','il sentiero dei nidi di ragno','rizzoli');
DROP TABLE IF EXISTS `ordini`;
CREATE TABLE `ordini` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`totale` int(10) unsigned DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1;
INSERT INTO `ordini` (`id`,`totale`) VALUES
(1,10),
(2,11),
(3,12),
(4,13),
(5,14),
(6,15),
(7,16),
(8,17),
(9,18);
DROP TABLE IF EXISTS `stato_ordini`;
CREATE TABLE `stato_ordini` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`stato` int(10) unsigned NOT NULL,
`id_ordine` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`),
KEY `Index_2` (`id_ordine`,`stato`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1;
INSERT INTO `stato_ordini` (`id`,`stato`,`id_ordine`) VALUES
(1,1,1),
(2,2,1),
(3,1,2),
(4,2,2),
(5,1,3),
(6,2,3),
(7,3,3),
(8,1,4),
(9,2,4);

-------
Essenzialmente dopo aver "purgato" con cura il file, ti basta lanciarlo come script sql (fai attenzione al drop/create schema!)

ti basta "piparlo" dentro mysql, oppure caricarlo con source a riga di comando (nell'ipotesi che il file dump.sql sia nella directory corrente)

mysql -uroot -ppassword <dump.sql

oppure

mysql -uroot -ppassword
mysql> source dump.sql;


oppure (se hai tolto il nome del db, cosa buona e giusta)

mysql -uroot -ppassword
mysql> create schema nome_db;
mysql> use nome_db;
mysql> source dump.sql

Imnotdead
16-01-2011, 22:11
Ok, in serata o domani provo a pulire il file (dato che il dump di PHPMyAdmin proprio pieno di commenti vari ecc). Intanto ti ringrazio, casomai torno ad assillarti domani :)

Loading