una - Importar archivos sql más grandes en MySQL
importar base de datos mysql mayor a 2mb (14)
Tengo un archivo de copia de seguridad sql grande de 400MB. Intento importar ese archivo en la base de datos MySQL usando WAMP-> importar, pero la importación no fue exitosa debido a muchas razones, como que el tamaño del archivo de carga es demasiado grande, y así sucesivamente. Entonces, hice algunos cambios en la configuración de PHP y MySQL bajo WAMP. Los cambios realizados son
Under WAMP->MySQL->my.ini
max_allowed_packet = 800M
read_buffer_size = 2014K
Under WAMP->PHP->PHP.ini
max_input_time = 20000
memory_limit = 128M
Mi pregunta es, ¿es esta la manera correcta de importar archivos sql tan grandes usando WAMP-> import? Si es así, ¿realicé los cambios correctos en los archivos de configuración? ¿Cuáles son los valores máximos permitidos para la variable anterior?
3 cosas que tienes que hacer, si lo haces localmente:
en php.ini
o php.cfg
de tu instalación php
post_max_size=500M
upload_max_filesize=500M
memory_limit=900M
o establecer otros valores. Reinicie Apache .
O
Use la herramienta php big dump es la mejor que he visto. es gratuito y de código abierto
Como usted declara (en un comentario de aclaración a la respuesta de otra persona) que está utilizando MySQL Workbench, puede intentar usar la opción "script sql" allí. Esto evitará la necesidad de usar la línea de comando (aunque estoy de acuerdo con la otra respuesta que es bueno subir a ese caballo y aprender a montar).
En MySQL Workbench, vaya al menú Archivo, luego seleccione "abrir secuencia de comandos". Probablemente llevará mucho tiempo e incluso puede bloquear la aplicación, ya que no está hecho para abrir cosas que son tan grandes como las que describe.
La mejor manera es usar la línea de comando. Asegúrese de tener instalado el cliente MySQL en su máquina. Esto significa el MySQL real (no la GUI de Workbench o PhpMyAdmin ni nada de eso). Aquí hay un enlace que describe la herramienta de línea de comandos . Una vez que haya descargado e instalado, abra una ventana de terminal en su máquina, y tiene dos opciones para sorber datos de su sistema de archivos (como en un archivo de copia de seguridad) en su base de datos de destino. Una es usar el comando ''fuente'' y la otra es usar el <operador de redirección.
Opción 1: desde el directorio donde está su archivo de respaldo:
$mysql -u username -p -h hostname databasename < backupfile.sql
Opción 2: desde el directorio donde está su archivo de respaldo:
$mysql -u username -p -h hostname
[enter your password]
> use databasename;
> source backupfile.sql
Obviamente, estas dos opciones requieren que tenga un archivo de respaldo que sea SQL.
Creo que la manera más fácil es subir el archivo usando la línea de comandos MYSQL.
utilizando el comando desde la terminal para acceder a la línea de comando mysql y ejecutar fuente
mysql --host=hostname -uuser ppassword
source filename.sql
o directamente desde la terminal
mysql --host=hostname -uuser ppassword < filename.sql
en el prompt
Encontré este enlace Cómo cargar grandes archivos de volcado sql (memoria, HTTP o problemas de tiempo de espera) en MYSQL. da el bosquejo de qué hacer para cargar un SQL grande. Me ayudó cuando me encontré con un cliente de 196mb sql dump. Algo que el PHPMySql no pudo manejar.
En el ítem 1.16 de phpMyAdmin dicen:
1.16 No puedo cargar archivos de volcado grande (memoria, HTTP o problemas de tiempo de espera).
Comenzando con la versión 2.7.0, el motor de importación ha sido reescrito y estos problemas no deberían ocurrir. Si es posible, actualice su phpMyAdmin a la última versión para aprovechar las nuevas funciones de importación.
Las primeras cosas que debe verificar (o pedirle a su proveedor de host que verifique) son los valores de upload_max_filesize
, memory_limit
y post_max
_size en el archivo de configuración de php.ini
. Todas estas tres configuraciones limitan el tamaño máximo de los datos que PHP puede enviar y gestionar. Un usuario también dijo que post_max_size
y memory_limit
deben ser mayores que upload_max_filesize. Existen varias soluciones si su carga es demasiado grande o su proveedor de alojamiento no desea cambiar la configuración:
Mire la característica $cfg[''UploadDir'']
. Esto le permite cargar un archivo al servidor a través de scp, ftp o su método de transferencia de archivos favorito. PhpMyAdmin puede importar los archivos desde el directorio temporal. Más información está disponible en la Configuración de este documento.
Usar una utilidad (como http://www.ozerov.de/bigdump/ ) para dividir los archivos antes de cargarlos. No podemos admitir esta o ninguna aplicación de terceros, pero somos conscientes de que los usuarios tienen éxito con ella.
Si tiene acceso de shell (línea de comando), use MySQL para importar los archivos directamente. Puedes hacer esto al emitir el comando "fuente" desde MySQL:
source filename.sql;
Hemos experimentado el mismo problema al mover el servidor sql en nuestra empresa.
Una buena solución que terminamos usando es dividir el archivo sql en fragmentos. Hay varias maneras de hacer eso. Utilizar
http://www.ozerov.de/bigdump/ parece bueno (pero nunca lo usó)
http://www.rusiczki.net/2007/01/24/sql-dump-file-splitter/ usó y fue muy útil para sacar la estructura del desorden y se puede tomar desde allí.
Espero que esto ayude :)
La pregunta tiene algunos meses, pero para otras personas que buscan
Una forma más sencilla de importar un archivo grande es hacer que un subdirectorio ''cargue'' en su carpeta c: /wamp/apps/phpmyadmin3.5.2 y edite esta línea en el archivo config.inc.php en el mismo directorio para incluir la carpeta name $ cfg [''UploadDir''] = ''upload'';
A continuación, coloque el archivo .sql entrante en la carpeta / carga.
Trabajando desde dentro de la consola de phpmyadmin, ve a la nueva base de datos e importa. Ahora verá una opción adicional para cargar archivos desde esa carpeta. Elija el archivo correcto y sea un poco paciente. Funciona.
Si aún obtiene un error de tiempo de espera intente agregar $ cfg [''ExecTimeLimit''] = 0; al mismo archivo config.inc.php.
Tuve dificultades para importar un archivo .sql donde el nombre de usuario era root y la contraseña difería de la contraseña de mi nuevo servidor. Simplemente quité la contraseña antes de exportar el archivo .sql y la importación funcionó sin problemas.
La solución más simple es mySql workBench simplemente copie el texto del archivo .sql para consultar la ventana de mysql-workbenck y simplemente ejecútelo, todos los cambios de nombre lo hará.
Puede importar archivos grandes de esta manera de línea de comandos:
mysql -h yourhostname -u username -p databasename < yoursqlfile.sql
Puede realizar el comando de importación desde cualquier buscador de consultas SQL usando el siguiente comando:
source C:/path/to/file/dump.sql
Ejecute el código anterior en la ventana de consulta ... y espere un momento :)
Esto es más o menos igual a la versión de línea de comando previamente establecida. La principal diferencia es que se ejecuta desde MySQL en su lugar. Para aquellos que usan codificaciones no estándar, esto también es más seguro que usar la versión de línea de comando debido a un menor riesgo de fallas de codificación.
Realmente me gusta que BigDump haga. Es un archivo PHP muy simple que puede editar y enviar con su enorme archivo a través de SSH o FTP. Corre y espera! Es muy fácil configurar la codificación de caracteres, viene UTF-8 por defecto.
Si está utilizando el comando de origen en Windows, recuerde utilizar f:/myfolder/mysubfolder/file.sql
y no f:/myfolder/mysubfolder/file.sql
Tuve un problema similar, pero en Windows. Estaba intentando descubrir cómo abrir un gran archivo MySQL sql en Windows, y estos son los pasos que tuve que seguir:
- Vaya al sitio web de descarga ( http://dev.mysql.com/downloads/ ).
- Descargue MySQL Community Server e instálelo (seleccione el desarrollador o la instalación completa, de modo que instalará las herramientas de cliente y servidor).
- Abra MySql Command Line Client desde el menú Inicio.
- Ingrese su contraseña utilizada en la instalación.
En el prompt, mysql>, ingrese:
CREATE DATABASE database_name;
USE database_name;
FUENTE myfile.sql
Eso debería importar tu archivo grande.
usuario esto desde la ventana de comando mysql:
mysql> use db_name;
mysql> source backup-file.sql;
my.ini
max_allowed_packet = 800M
read_buffer_size = 2014K
PHP.ini
max_input_time = 20000
memory_limit = 128M
post_max_size=128M