PDA

Ver la Versión Completa : scripts en phpmyadmin


__cadetill
15-04-2004, 15:45:42
Hola de nuevo :p

No sabía si poner esta pregunta aquí o en mySQL, pero ya que pasaba por aquí.... :D

Según leo en el phpmyadmin, el tamaño de los scripts no puede superar los 2Mb. Esto es configurable? Si es así, sabéis desde dónde se configura?

Gracias ;)

roman
15-04-2004, 16:39:59
¡Santo script Batman! :confused: :D :eek:

¿De verdad piensas necesitar un script de más de 2mb?

// Saludos

__cadetill
15-04-2004, 16:51:41
¿De verdad piensas necesitar un script de más de 2mb?

jejejeje, bueno, de hecho es la copia de seguridad de mi base de datos. Lo que pasa es que como trabajo en PCs que no estan conectados entre sí, pues exporto la base de datos de uno para luego importarla en el otro. Esto no es una cosa que se haga a diario, pero las veces que lo hago, pues he de trocear el ficherillo

O hay otra forma mejor de pasar la info de una BD a otra? (a lo mejor estoy haciendo el capullo y yo sin saberlo :D)

roman
15-04-2004, 16:59:49
Pero entonces no estamos hablando de un script sino del tamaño del conjunto de registros que regresa una consulta.

La verdad que no me he dado el tiempo de investigar cómo romper la limitación ya que también a mí me sucede. He terminado haciendo algo quizá no muy elegante pero sí mucho más eficiente que phpMyAdmin: uso mysqldump en el servidor origen para vaciar la tabla en un archivo (digamos tabla.sql), copio el archivo con ftp al servidor destino y ahí uso mysql < tabla.sql

Te garantizo que a fin de cuentas es mucho más rápido.

// Saludos

__cadetill
15-04-2004, 17:10:25
Ok, gracias Román, probaré la sugerencia

raul_sal
16-04-2004, 19:24:13
Soy algo novato en lo que a mysql se refiere, el servidor esta dado por un hosting independiente

como y donde ejecuto este comando.

mysql < tabla.sql

gracias

roman
16-04-2004, 19:34:36
Soy algo novato en lo que a mysql se refiere, el servidor esta dado por un hosting independiente

como y donde ejecuto este comando.

mysql < tabla.sql


Muy posiblemente no podrás. El comando se refiere al ejecutable de MySql que estará localizado en el servidor y al cual muy posiblemente no tengas acceso.

:mad: ¡Caramba! Y ahora que veo tu pregunta me doy cuenta de que mi recomendación a cadetill posiblemente tampoco le sirva en su caso. El problema es que cuando uso dicha técnica, sí tengo acceso a ambos servidores, el origen y el destino.

// Saludos

__cadetill
16-04-2004, 19:39:51
:mad: ¡Caramba! Y ahora que veo tu pregunta me doy cuenta de que mi recomendación a cadetill posiblemente tampoco le sirva en su caso. El problema es que cuando uso dicha técnica, sí tengo acceso a ambos servidores, el origen y el destino.
Pues no, a los 2 ordenadores que me refería sí que tengo acceso ;)
Otra cosa es cuando tenga que subirlo a la web real, que allí sí que tendré que hacerlo en "caxitos", pero bueno, con tiempo y una caña...... ;)

Por cierto, me fué de lujo :p

roman
16-04-2004, 19:46:12
Otra cosa es cuando tenga que subirlo a la web real, que allí sí que tendré que hacerlo en "caxitos"
Pa' na'. ¿O te gusta trabajar en vano? :D

Mejor hazte un programita rápido con Zeos que te haga la transferencia.

// Saludos

__cadetill
16-04-2004, 19:53:14
Mejor hazte un programita rápido con Zeos que te haga la transferencia.

Sí, no es mala idea, se lo comentaré a Emilio a ver si podemos acceder al servidor desde un aplicativo Delphi (aunque ahora ya lo he hecho :o pero pa la próxima...... :D )

roman
16-04-2004, 23:59:58
Según leo en el phpmyadmin, el tamaño de los scripts no puede superar los 2Mb.
A todo esto, ¿me podrías indicar por favor en qué parte leiste ésto?

// Gracias

__cadetill
17-04-2004, 00:34:23
Bueno, en la versión de phpmyadmin que tengo instalada en casa (la 2.5.6), si vas a la pestaña de SQL, al lado del botón "Examinar" para escoger el fichero, pone escrito (Tamaño máximo: 2,048KB)

;)

jachguate
17-04-2004, 00:43:43
pues yo tengo en casa la 2.5.5-pl1 y no dice nada... :eek:

roman
17-04-2004, 01:04:10
2.3.0 y nada :(

Realmente me intriga esta limitación ya que no parece tener que ver con el tiempo límite de un script- que además puede cambiarse al vuelo -sino exclusivamente con el tamaño del archivo que lee desde el cliente. No quería pero habrá que echarse un clavadito en el código :) .

// Saludos

__cadetill
17-04-2004, 01:21:57
Pos pa muestra, un botón..... http://www.clubdelphi.com/users/cadetill/images/phpmyadmin.jpg :D

jachguate
17-04-2004, 01:24:09
recuerdo haber leido alguna vez... pero no se si es en php o en apache, que puede limitarse el tamaño de un archivo enviado por el método post... es probable que por alli vayan los tiros, y que el phpMyAdmin solamente averigue el tamaño de dicha limitación... En todo caso, o nos actualizamos de versión, o quien se tiene que hechar el clavado en el código es cadetill... que ya tiene el algoritmo que produce ese resultado.

Hasta luego.

;)

roman
17-04-2004, 01:26:45
:eek: ¡Cáspita!

Pero, ¿de dónde te bajas tú estas versiones amigo?

Deja tú el letrero, yo jamás, en ninguna versión de phpMyAdmin he visto esas opciones de compresión. :confused:

// Saludos

jachguate
17-04-2004, 01:37:04
bueno... pero que son esas preguntas... jeje http://prdownloads.sourceforge.net/phpmyadmin/phpMyAdmin-2.5.6.zip?download

jejeje... pues yo ya la tengo instalada, y la verdá... se ve buena, buena... pero yo no tengo las opciones de compresión del amigo cadetill... solo el mensaje de los 2048K máximos... :( :(

jachguate
17-04-2004, 01:59:13
ya clavadito algo en el código... veo lo siguiente:

para que aparezcan las opciones de configuración... evalua:


//db_details.php line 86:
$is_gzip = ($cfg['GZipDump'] && @function_exists('gzopen'));
$is_bzip = ($cfg['BZipDump'] && @function_exists('bzdecompress'));


con respecto del tamaño... veo en la línea 81 del mismo archivo:


<input type="file" name="sql_file" class="textfield" />&nbsp;
<?php echo PMA_displayMaximumUploadSize($max_upload_size);?><br />


y luego tenemos en libraries/common.lib.php linea 204:

if (!$filesize = ini_get('upload_max_filesize')) {
$filesize = "5M";
}
$max_upload_size = get_real_size($filesize);

if ($postsize = ini_get('post_max_size')) {
$postsize = get_real_size($postsize);
if ($postsize < $max_upload_size) {
$max_upload_size = $postsize;
}


a partir de lo cual sabemos que depende de los parámetros de configuración upload_max_filesize y post_max_size de php (el menor de los dos).

Hasta luego.

;)

roman
17-04-2004, 02:09:10
Así es jachguate, ya me había percatado de ello. Al parecer se puede configurar max_upload_size por directorio aunque para ello hay que ajustar apache y bueno, eso ya no depende de nosotros :(

// Saludos

jachguate
17-04-2004, 04:57:41
Solo para que quede constancia gráfica... aqui tenes una porción de mi nuevo upload de 20M (http://www.clubdelphi.com/users/jachguate/images/php_upload_20M.gif) que a estas alturas debe ser la envidia de cadetill... :D :D

Hasta luego.

;)

roman
17-04-2004, 05:11:32
Ok, y ¿cómo lo lograste? Porque hasta donde veo esto será posible si puedes modificar php.ini, cosa que no sucederá en el caso de cadetill. ¿Me equivoco?
De ser así me encantaría (y creo que a cadetill también) saber cómo hacerlo.

// Saludos

jachguate
17-04-2004, 05:23:40
a partir de lo cual sabemos que depende de los parámetros de configuración upload_max_filesize y post_max_size de php (el menor de los dos).

Es decir, sin en php.ini tenemos los parámetros:

upload_max_filesize = 10M
post_max_size = 20M

tomará el mas pequeño de los dos, que es en efecto, el upload mas grande que permitirá el script.

Se me ocurrió ver el manual... y tenemos que aparentemente también podemos modificar estos valores :) por directorio... es decir, en el archivo .htaccess de cada dir.


Nombre Predeterminado Modificable
upload_max_filesize "2M" PHP_INI_SYSTEM|PHP_INI_PERDIR
post_max_size "8M" PHP_INI_SYSTEM|PHP_INI_PERDIR


Hasta luego.

;)

jachguate
17-04-2004, 05:39:37
solo aclarar que la sintaxis, según entiendo, ya que nunca lo he hecho, en el archivo .htaccess es la siguiente:

php_value upload_max_filesize 20M
php_value post_max_size 20M

si alguien lo prueba y funciona, que lo confirme en este hilo.

Hasta luego.

;)

roman
17-04-2004, 06:37:24
No lo he probado aunque no dudo que funcione. Peeeeero...

Leyendo más el manual vemos una tabla que muestra a qué nivel pueden cambiarse las opciones siendo los niveles:

PHP_INI_USER - Entry can be set in user scripts
PHP_INI_PERDIR - Entry can be set in php.ini, .htaccess or httpd.conf
PHP_INI_SYSTEM - Entry can be set in php.ini or httpd.conf
PHP_INI_ALL - Entry can be set anywhere

y las opciones upload_max_filesize y post_max_size están marcadas como PHP_INI_SYSTEM así que seguimos teniendo un problema. Claro que quizá no estoy entendiendo la documentación pero aún cuando pudiera hacerse en .htaccess aún se requiere que en httpd.conf se nos de derecho de sobreescribir directivas por directorio, lo cual no será el caso muchas veces.

Si alguien me contradice que lo haga en este hilo :)

// Saludos

jachguate
17-04-2004, 06:46:54
PHP_INI_PERDIR - Entry can be set in php.ini, .htaccess or httpd.conf
PHP_INI_SYSTEM - Entry can be set in php.ini or httpd.conf

y las opciones upload_max_filesize y post_max_size están marcadas como PHP_INI_SYSTEM[b] así que seguimos teniendo un problema... pero aún cuando pudiera hacerse en .htaccess aún [b]se requiere que en httpd.conf se nos de derecho de sobreescribir directivas por directorio, lo cual no será el caso muchas veces.




Hola. Igual yo no lo he hecho nunca, ni tengo tiempo de probarlo ahora... solo aclaro lo que veo y entiendo.

En primer lugar, no solo están marcadas como PHP_INI_SYSTEM, sino a la vez como PHP_INI_PERDIR. Luego, no he entendido (quizas por inexperiencia) que en httpd.conf tenga que darse algun permiso especial para sobreescribir las directivas por directorio. No digo que no sea lógico, pues si que lo es, solo digo que de la documentación que yo he visto, no he encontrado nada que soporte esta idea. Mas bien, me ha dado a entender que siempre será posible sobreescribir los parámetros desde .htaccess.

Si no hay alguien que nos aclare para el fin de semana... espero tener tiempo de hacer unas pruebas y ver que pasa, aunque igual, y no se que tenga que haber (o no tenga que haber) en el httpd.conf para habilitar/deshabilitar el permiso... al menos probaré si en mi configuración logro sobreescribir los parámetros.

Hasta luego.

;)

jachguate
17-04-2004, 06:50:47
pensandolo un poco mas despacio.. creo que los tiros de román van a si apache procesará o ignorará los archivos .htaccess. Claro que si no los tiene habilitados, no habrá posibilidad de sobreescribir nada, pero lo típico es que si tenga habilitada esta característica, al menos en mi experiencia.

:eek:

roman
17-04-2004, 08:21:22
Ok. Confirmado.

La prueba está hecha y funciona tal como dices jachguate. Sí me refería a la directiva en httpd.conf que indica si se procesan o no los .htaccess y para el caso de cadetill parece ser que se podrá, al menos funciona en mi cuenta del club.

Así, en resumen, para que cadetill lo vea apenas se despierte en unas horas tiene que crear el archivo .htaccess


php_value upload_max_filesize 20M
php_value post_max_size 20M

y colocarlo en su directorio.

Aclaración
La prueba no la hice con phpMyAdmin. Me limité a correr el siguiente script:


<?
echo ini_get('upload_max_filesize').'<br>';
echo ini_get('post_max_size').'<br>';
?>


que me mostró los nuevos valores.

// Saludos

roman
17-04-2004, 08:24:42
Por cierto, todo esto va también para raul_sal, que pruebe con la cuenta que tenga y vea si le sirve entonces el phpMyAdmin.

// Saludos

__cadetill
17-04-2004, 22:14:39
jejeje... pues yo ya la tengo instalada, y la verdá... se ve buena, buena... pero yo no tengo las opciones de compresión del amigo cadetill... solo el mensaje de los 2048K máximos... :( :(
jejeje, sí, la verdad es que está muy bien esta versión del phpmyadmin y, las opciones de compresión.... creo recordar que desde hace varias versiones que las veo :D ¿Quizás esto dependa de la versión del PHP instalado? Creo recordar que tengo la 4.3.4

Por otro lado, el tema está para trabajar en equipos en local, por lo que ya me vale la solución de tocar el apache ;)

Gracias de nuevo :p

__cadetill
17-04-2004, 22:41:04
:eek: :( sorry, no me he fijado que había 2 páginas de respuestas y creo que me adelanté al responder.

Ahora mismo estoy haciendo la prueba de lo comentado en todo el hilo y os digo algo

__cadetill
18-04-2004, 00:02:17
Bueno, a ver, he hecho la prueba

He probado lo mismo que Román y, efectivamente por pantalla salen los 20Mb
No obstante, he intentado ejecutar un script de 3Mb y no me ha dejado

También he probado en local cambiando en php.ini las variables upload_max_filesize y post_max_size. El resultado, el mismo, da un error en la ejecución (si bien no el mismo que el anterior en el que sólo aparece un ShowMessage advirtiendo que el archivo no contiene datos :confused: )


Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, XXXXXXXX and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Osea, que falta algo en la configuración local para que permita este tamaño de archivos. Me he estado mirando el httpd.conf pero no he encontrado nada.

Por otro lado, estais hablando de una documentación. Cuál? De PHP? de Apache? de phpmyadmin? Es que no he sabido encontrar lo que comentais en los mensajes anteriores :o

Bueno, pos nada más, gracias por las molestias

jachguate
18-04-2004, 14:40:47
pues yo, en todos los casos, he hablado de la documentación de php.

si tenes un script del tamaño adecuado (que yo no creo disponer de ninguno), enviamelo para que yo pueda hacer las pruebas correspondientes en mi servidor local, ya que realmente no he hecho mas que ver el tamaño mostrado en el explorador.

Hasta luego.

;)

Emilio
19-04-2004, 00:09:22
Hola,

Algunos de vosotros tenéis dominios en clubdelphi y seguramente os interesará saber que en el nuevo server, cada dominio tiene su propio php.ini, no sólo eso claro, además cada dominio se gestiona como un servidor virtual, lo cual implica que tiene su propio sistema de ficheros /etc /home bla bla... y por lo tanto una configuración propia para cada dominio sin afectar al resto.

Me ha llamado la atención eso de "mysql < tabla.sql", digamos que eso queda algo pobre además de erroneo, la sintaxis sería algo así...

para el backup
mysqldump --opt -uusuario -p base_datos > fichero.sql

para el restore
mysql -u usuario -p base_datos < fichero.sql

Para hacer un backup también es posible entrar por FTP a /var/lib/mysql y bajarte todos los ficheros de datos.

En cuanto al tema de ejecutar comandos, por norma general no doy acceso SSH, no obstante imposible no es ;)

marto
19-04-2004, 00:48:57
Wop!

Pues yo tengo un problema similar para subir ficheros de unos 5M mediante un post a un script PHP en el club. He probado con lo que comentáis con el fichero .htaccess y me he encontrado con 2 problemas. Tal y como dice Cadetill, un scritpt que funcionaba bien con ficheros de tamaño inferior, ahora da error. Además, como accedo por ftp y el archivo es oculto... no puedo ni borrarlo!!!!:mad:

roman
19-04-2004, 18:03:25
Me ha llamado la atención eso de "mysql < tabla.sql", digamos que eso queda algo pobre además de erroneo, la sintaxis sería algo así...

Je, je, bueno, qué exigente, estaba obviando la autenticación y la selección de la base (que puede venir en el fichero sql) sólo para recordar que podía usarse el redireccionamiento.

Saludos

roman
19-04-2004, 18:05:08
Además, como accedo por ftp y el archivo es oculto... no puedo ni borrarlo!!!!:mad:
Pero según entiendo no es que no puedas borrarlo sino sólo que tu cliente ftp no lo lista. Yo lo que hago en esos casos es recurrir al ftp de Windows.

Saludos

marto
19-04-2004, 21:11:10
Pero según entiendo no es que no puedas borrarlo sino sólo que tu cliente ftp no lo lista. Yo lo que hago en esos casos es recurrir al ftp de Windows.

Como decia Cuyff: totalmente de acuedo :D

raul_sal
21-04-2004, 23:48:28
A todo esto señores, pregunto: Es posible desde delphi con los componentes Zeos comunicarme directamente con mi base de datos MySQL en el servidor de la empresa que me presta el Hosting, de ser asi cuales serian los Pros y Los Contras?

jachguate
22-04-2004, 00:10:20
Hola raul_sal. Te recomiendo la lectura de la guia de estilo (vinculo en mi firma). Si tenes una pregunta que, como en este caso, no tiene que ver con la original de hilo, se recomienda la apertura de un hilo nuevo.

;)