Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Problema exportacion / importacion phpmyadmin

Estas en el tema de Problema exportacion / importacion phpmyadmin en el foro de Mysql en Foros del Web. Tengo una base de datos de un manual multilingüe. Durante algunos meses todo fue bien. Pero desde hace un tiempo, estoy teniendo problemas con la ...
  #1 (permalink)  
Antiguo 21/05/2010, 08:27
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Problema exportacion / importacion phpmyadmin

Tengo una base de datos de un manual multilingüe. Durante algunos meses todo fue bien. Pero desde hace un tiempo, estoy teniendo problemas con la traducción alemana.

Resulta que como la db está en construcción, suelo hacer backups con phpmyadmin. Y luego, los restauro.

Por alguna razón, el contenido html de las pagina alemanas está siendo alterado y "roto" al importar la base de datos. Probé muchas veces hoy hacer una importación de una base de datos vieja, que funciona bien (los contenidos html se muestran bien en el navegador web). Luego, al exportar esa db e importarla nuevamente, el html aparece roto.

Mi conclusión es que ya no puedo hacer backups! Tengo 14 archivos de backup. A partir del 10 ya las paginas alemanas aparecen rotas. Es decir, tengo que restaurar la db con el backup 9, y luego... que haré? Si la exporto y la vuelvo a importar los contenidos aparecen rotos. Pero por que?

Si necesitaran ver un ejemplo de html roto, vean esto: http://www.aoi-castellano.com.ar/AoI...ndering_de.php

Todos los items del menu conducen a pagina rotas. Pero si uno navegara por la version inglesa todo va bien, siendo que la base de datos es la misma:
http://www.aoi-castellano.com.ar/AoI.../rendering.php
  #2 (permalink)  
Antiguo 21/05/2010, 08:30
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Problema exportacion / importacion phpmyadmin

Les pongo un ejemplo de lo que exporta phpmyadmin (que creo que es exactamente que hacía hasta mi backup numero 9):

Cita:
-- phpMyAdmin SQL Dump
-- version 3.2.0.1
-- http://www.phpmyadmin.net
--
-- Servidor: localhost
-- Tiempo de generación: 09-05-2010 a las 23:31:45
-- Versión del servidor: 5.1.36
-- Versión de PHP: 5.2.9

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Base de datos: `aoimanual`
--

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `languages`
--

CREATE TABLE IF NOT EXISTS `languages` (
`id` int(2) NOT NULL AUTO_INCREMENT,
`language` varchar(10) CHARACTER SET utf8 NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `language` (`language`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=4 ;

--
-- Volcar la base de datos para la tabla `languages`
--

INSERT INTO `languages` (`id`, `language`) VALUES
(3, 'es'),
(2, 'de'),
(1, 'en');

-- --------------------------------------------------------
También una linea del backup 13, con contenido aleman, donde aparece un caracter utf-8. Será un problema de codificación al exportar/importar?

Cita:
(14, 'layout', 'Art of Illusion Einführung', 'pageName', 'de', 'admin'),
Sin embargo, esta misma linea está en mi backup 9, que funciona bien.
  #3 (permalink)  
Antiguo 21/05/2010, 12:53
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Problema exportacion / importacion phpmyadmin

Sigo haciendo pruebas. Tengo una base que funciona, la 9. Si la exporto con otro nombre y la vuelvo a importar ya no funciona.

Estoy haciendo una comparación visual con el Notepad++ y los dos archivos parecen idénticos. Sin embargo, se me remarcan todos los caracteres especiales, como acento y ä. Pero a mis ojos los dos documentos son iguales.

Que puede estar pasando?
  #4 (permalink)  
Antiguo 21/05/2010, 16:43
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Problema exportacion / importacion phpmyadmin

Acabo de encontrar dos sugerencias para solucionar el tema, pero ninguna me es valida:

http://mrkents.wordpress.com/2010/02...-8/#comment-70
http://www.forosdelweb.com/f54/expor...yadmin-675001/

Tiene que haber algo mejor!

En este post en ingles se habla de lo mismo:
http://www.webproworld.com/webmaster...ort-amp-Import

Lo curioso es que el mes pasado no tenía estos problemas!!!
  #5 (permalink)  
Antiguo 23/05/2010, 19:49
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Problema exportacion / importacion phpmyadmin

Tengo un script para exportar sin PHPMyAdmin, directamente desde PHP. Y también una manera de crear las tablas e insertar los datos cono PHP. Y me da el mismo problema. Entonces no tengo un problema con phpmyadmin necesariamente.

Alguien sabe de otros casos así? Tendrán que ver con utf-8 unicode? Creo que el unico cambio que hice el mes pasado fue de utf-8 general a utf-8 unicode.
  #6 (permalink)  
Antiguo 12/08/2010, 04:09
Avatar de anf
anf
 
Fecha de Ingreso: junio-2009
Mensajes: 30
Antigüedad: 14 años, 10 meses
Puntos: 4
Respuesta: Problema exportacion / importacion phpmyadmin

Hola mayid, 2 Cositas:

Primero phpmyadmin es una basura exportando bases de datos, yo he tenido problemas por confiarme en ese gestor, no se en que circunstancias no exporta según que configuraciones de la base de datos, te recomiendo no utilizarlo y usar mysqldump que lo exporta e importa todo.

Segundo es muy probable que los caracteres de la base de datos sean utf8 GENERAL en vez de UNICODE, o mucho peor esten en otra codificación, esto de GENERAL o UNICODE no da demasiados problemas salvo en lenguajes que no se conocen ni en la selva ya, lo que tienes que hacer es en tu configuración de php.ini en la sección de mysql ponerlo todo como utf8 UNICODE y antes de lanzar la query despues de la conexión asegúrate que haces un:

mysql_query("SET NAMES utf8");

Con esto se solucionan los problemas multi-lenguaje y multibyte por completo, cuando hace la conexión a la base de datos aunque tu HTML sea utf8, tu base de datos sea utf8 la conexion puede hacerla en swedish o latin1 o alguna otra mierda que no debería por que hacerla, metiendo esa query antes de todos los INSERTS / SELECTS el problema queda solucionado.

Si te sirve de algo esto contesta y opina, si no trataremos de buscar otra solución.

Saludos!
  #7 (permalink)  
Antiguo 12/08/2010, 08:07
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Problema exportacion / importacion phpmyadmin

anf: te agradezco mucho! La linea que propusiste funciona perfecto. Al fin puedo hacer backups desde un script, sin que se rompan los caracteres alemanes.

La implemento así:
Cita:
include_once "conection.php";
mysql_query("SET NAMES utf8");
Mi pregunta ahora es cómo devolver los datos a la db con un script, porque el mio no funciona más (si mal no recuerdo, el año pasado anduvo).

Código PHP:
        

        $installDataBase 
mysqli_connect($dbhost$dbusuario$dbpassword$db);
        
mysqli_set_charset($installDataBase,'utf8');
                
        if (!
$installDataBase) {
            die(
'Connect Error (' mysqli_connect_errno() . ') '
                    
mysqli_connect_error("conection error"));
        };
        
        
$backupSource =  file_get_contents('installDataBase.sql');
            
        if(
mysqli_multi_query($installDataBase$backupSource)){
            do {
            echo 
"doing";
                
/* store first result set */
                
if ($result mysqli_store_result($installDataBase)) {
                    while (
$row mysqli_fetch_row($result)) {
                        
printf("%s\n"$row[0]);
                    }
                    
mysqli_free_result($result);
                }
                
/* print divider */
                
if (mysqli_more_results($installDataBase)) {
                    
printf(".");
                }
            } while (
mysqli_next_result($installDataBase));

            
$response "<h3>Tables successfully created. </h3>";
            
            
/* close connection */
            
mysqli_close($installDataBase); 
            } else 
$response "<h3>Error in multiquery: </h3>".mysql_error();        
            
            echo 
$response
Me da el "Error in multiquery: ". Es decir que falla uno de los dos parametros. Pero los datos de conexion están bien, y si imprimo el texto del segundo parametro también se imprime bien (es decir que el archivo se lee bien).

Según las pruebas que hice un tiempo atrás, al borrar ciertos sectores de la consulta el script funcionaba bien. Que puede ser?
  #8 (permalink)  
Antiguo 12/08/2010, 08:31
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Problema exportacion / importacion phpmyadmin

Acabo de subir la tolerancia en megabytes para mi archivo mysql. Pesa 1.4mb y si hago esta consulta en mysql me dice que el limite es 1mb:

Cita:
SHOW VARIABLES LIKE 'max_allowed_packet'
Me devolvía: max_allowed_packet 1048320

Lo cambie a: max_allowed_packet 16777216

Ahora sí me funciona la consulta.

En fin, así se cambia el valor desde php:

Cita:
mysql_query("SET GLOBAL max_allowed_packet=16*1024*1024");
Muchas gracias anf por el empujón!

Última edición por mayid; 12/08/2010 a las 08:46

Etiquetas: exportacion, importacion, phpmyadmin
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:36.