da Postgres a Mysql

Devo passare un progetto da postgres a Mysql.

Per connettersi usa PEAR.

Domanda:

Come faccio a convertire il DAtabase?

Ho visto i MySQL migration Tools, ma non c'è Postgres tra i DAtabase di partenza...

Qualcuno lo ha mai fatto?

inviato 8 anni fa
ilbonzo
X 0 X

potresti installarti i driver odbc per postgres ed effettuar la migrazione con SQLYog (e forse anche con MySQL Migration Toolkit)

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Ho installato SQLyog

ora devo prendere i driver odbc:

http://www.postgresql.org/ftp/odbc/versions/msi/

quali prendo:

postgres dul server è:

psql --version

psql (PostgreSQL) 7.4.17

contiene il supporto per l'editing da riga di comando

risposto 8 anni fa
ilbonzo
X 0 X

quelli più recenti  :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Ok, am come faccio da Yogsql?

qll'inizio mi chiede di definire un Mysql host?

definisco il server Myqsl poi potrò importartci i dati da postgres?

Grazie mille ;)

risposto 8 anni fa
ilbonzo
X 0 X

Si, prima devi indicare il server MySQL di destinazione, poi devi creare un DSN che punti a Postgresql. Per fare ciò ti verrà richiesto di selezionare i driver ODBC che hai installato e di inserire qualche altro parametro.

Più di questo non posso dirti perché non ho una installazione di Postgre a portata di mano.

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Ho creato una macchina virtuale Mysql, settato la password di root e tolto il firewall.

Ora non riesco a connettermi con SQLyog:

mi da ErrorNo. 2003

Can't connect to MySQL server on 'xxx.xxx.xxx.xxx'(10061)

la password entrando come root da phpmyadmin funziona, quindi dovrebbe essere giusta.

come faccio a connettermi al server Mysql (debian) dal mio client (windows)?

con SQLyog o con MySQLadministrator?

devo abilitare il mio IP da qualche parte?

risposto 8 anni fa
ilbonzo
X 0 X

Probabilmente MySQL non è configurato per accettare accessi da remoto. Nel file di configurazione my.ini dovresti controllare se sia presente la direttiva bind-address = indirizzo IP della macchina e che la direttiva skip-networking non ci sia o sia commentata (con un #).

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Grazie, nel file /etc/mysql/my.cnf

#bind-address           = 127.0.0.1

#############################################################

Ho commentato questa riga.

risposto 8 anni fa
ilbonzo
X 0 X

ok, mi sembra funzioni, ma il migration toolkit è solo nella versione enterprise che è a pagamento, trial 30 giorni e solo due tabelle ad importazione....

su mysql migration toolkit mi chiede si usare i driver jdbc....

http://jdbc.postgresql.org/

li predno da qui, ma non li so usare.... suggerimenti?

risposto 8 anni fa
ilbonzo
X 0 X

i driver jdbc sono una libreria per programmi java, non devi installarli ma semplicemente renderli visibili al programma in questione

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

http://blog.ilbonzo.org/upload/varie/jdbc.png

I parametri che devo inserire sono qui, suggerimenti?

risposto 8 anni fa
ilbonzo
X 0 X

Da pannello di controllo, variabili d'ambiente, verifica la presenza della variabile CLASSPATH tra le variabili di sistema. Se non c'è creala. Come valore devi mettere la cartella in cui hai messo il driver jdbc di postgresql.

Fatto ciò puoi usare il migration toolkit con i seguenti parametri:

Class name: org.postgresql.Driver

Connection string: (una di queste tre)

    jdbc:postgresql:database

    jdbc:postgresql://host/database

    jdbc:postgresql://host:port/database

ovviamente devi sostituire i valori corretti a database, host e port

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Ho tentato, ma mi da questo log di errore:

Connecting to source database and retrieve schemata names.
The list of schema names could not be retrieved (error: 0).
ReverseEngineeringGeneric.getSchemata :org.postgresql.Driver
Details: 
java.net.URLClassLoader$1.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(Unknown Source)
java.lang.ClassLoader.loadClass(Unknown Source)
sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
java.lang.ClassLoader.loadClass(Unknown Source)
java.lang.ClassLoader.loadClassInternal(Unknown Source)
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Unknown Source)
com.mysql.grt.modules.ReverseEngineeringGeneric.establishConnection(ReverseEngineeringGeneric.java:84)
com.mysql.grt.modules.ReverseEngineeringGeneric.getSchemata(ReverseEngineeringGeneric.java:230)
risposto 8 anni fa
ilbonzo
X 0 X

prova ad aprire il prompt del dos e a lanciare questo comando:

set CLASSPATH=C:\percorso\al\driver\jdbc\di\postgresql

poi sempre dallo stesso prompt del dos (e non cliccando nel menù avvio di winvows) devi lanciare il MySQL Migration tool.

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

C:\Programmi\MySQL\MySQL Tools for 5.0>MySQLMigrationTool.exe

Mi da sempre lo stesso errore.

C:\Programmi\MySQL\MySQL Tools for 5.0>set

...

CLASSPATH=C:\my_document\Apps\postgres\postgresql-8.3-603.jdbc4.jar

....

li ho messo il jar del jdbc.

risposto 8 anni fa
ilbonzo
X 0 X

set CLASSPATH=C:\my_document\Apps\postgres\

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Purtroppo mi da sempre lo stesso errore.... :tichedoff:

risposto 8 anni fa
ilbonzo
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda