AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 7746
Accepted
grant tailor
grant tailor
Asked: 2011-11-09 22:39:23 +0800 CST2011-11-09 22:39:23 +0800 CST 2011-11-09 22:39:23 +0800 CST

importando arquivo SQL grande phpmyadmin

  • 772

Estou tentando importar este arquivo SQL no phpmyadmin e recebi esta mensagem

#1064 - You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version 
for the right syntax to use near 
'<br /> <b>Fatal error</b>: Allowed memory size of 134217728 bytes exhausted (tr' at line 1

O que eu faço para fazer essa importação?

mysql php
  • 5 5 respostas
  • 67450 Views

5 respostas

  • Voted
  1. Best Answer
    gabe
    2011-11-09T23:16:44+08:002011-11-09T23:16:44+08:00

    Supondo que você não possa aumentar ainda mais o tamanho da memória, existem algumas opções.

    • Se você não estiver familiarizado com a linha de comando e realmente quiser manter uma importação de estilo GUI, poderá usar o BigDump ( http://www.ozerov.de/bigdump/ ). Usei uma vez, mas faz tempo. Pelo que me lembro, você vai baixar um arquivo chamado bigdump.php (com algumas instruções) e colocá-lo em seu servidor web no diretório com o arquivo de despejo do MySQL DB que é muito grande para importar via PHPMYADMIN. Em seguida, navegue até ele usando seu navegador - algo como http://your-website.com/bigdump.php .

    • Se você estiver familiarizado com a linha de comando e usando um sistema baseado em Linux, poderá usar um código como este:

      mysql -u USERNAME -p DATABASENAME <FILENAME.sql

    O banco de dados e o usuário (com privilégios para o banco de dados) precisarão existir antes de executar este comando. Observe que copiei o comando acima de outra fonte. Eu sempre faço meus dumps e restores assim: DUMP: mysqldump -u DB_USER -h DB_HOST -pDB_PASSWORD DB_NAME | gzip -9 > DB_NAME.sql.gz RESTORE:gunzip < PATH_TO_DUMP/DB_NAME.sql.gz | mysql -u DB_USER -pDB_PASSWORD DB_NAME

    • Finalmente, e mais dolorosamente, você pode optar por despejar tabelas individuais ou grupos de tabelas em despejos pequenos o suficiente. Em seguida, restaure esses dumps individuais, um de cada vez, via PHPMYADMIN.

    Instruções de FTP e RESTORE:

    Baixe o FileZilla aqui: http://filezilla-project.org/download.php?type=client

    Normalmente, você pode usar o FTP em seu servidor (especialmente um host compartilhado) usando o mesmo login e senha que usaria para SSH (seu login de linha de comando). Apenas certifique-se de configurar a conexão com seu servidor corretamente no FileZilla.

    Uma vez conectado, seu caminho padrão provavelmente será sua pasta $HOME (em máquinas nix). Se você não planeja fazer muito FTP, basta despejar o que deseja lá. Você sempre pode movê-lo a partir da linha de comando.

    Se você fez um FTP do MySQL Dump em sua pasta $HOME, o comando RESTORE para um banco de dados chamado mydb e um arquivo de despejo de banco de dados chamado mydb.sql.gz (na pasta $HOME) seria:

    gunzip < $HOME/mydb.sql.gz | mysql -u DB_USER -pDB_PASSWORD mydb
    

    onde você obviamente precisaria alterar os valores DB_USER e DB_PASSWORD para qual usuário e senha você configurou para o banco de dados.

    Lembrar:

    • O banco de dados já deve existir (mas estar vazio) antes que o comando RESTORE seja executado
    • O DB_USER e DB_PASSWORD devem ser configurados para o banco de dados antes do comando RESTORE (você pode fazer isso em PHPMYADMIN - guia Privileges)
    • Quando você configura o DB_USER do PHPMYADMIN, o padrão é permitir apenas que o DB_USER acesse o banco de dados do localhost (o servidor no qual o banco de dados está hospedado). Estou assumindo que isso é bom para sua concessão de situação. Quando você entra em DUMPs e RESTOREs mais avançados, pode querer fazê-lo de outra máquina inteiramente, o que não é difícil, mas requer mais algumas informações fornecidas e DB_USER com os privilégios apropriados.

    FTP do DB e RESTAURA-lo... Passo a Passo

    1. Localize o arquivo de despejo MySQL compactado em sua área de trabalho (Exemplo: C:\Web\DB\Dumps\mydb.sql.zip)
    2. Baixe e instale o FileZilla
    3. No FileZilla vá para File->Site Manager e clique no botão New Site (quadrante inferior esquerdo da GUI). Defina o host para um domínio (Exemplo: dest.com) que resida em seu servidor DESTINATION. Defina o protocolo para FTP ou SFTP (isso depende da sua hospedagem, pergunte a eles). Defina o usuário e a senha (exemplo: usuário = concessão, senha = senha da concessão) - se o protocolo FTP for SFTP, qualquer conjunto de credenciais de login SSH válidas deve funcionar.
    4. (No FileZilla) Clique em Conectar (botão inferior esquerdo)
    5. (No FileZilla) Uma vez conectado ao servidor remoto (deve ser seu servidor DESTINATION), use o lado esquerdo do FileZilla para navegar até o diretório onde reside o arquivo de despejo localizado na Etapa 1. (O caminho para a máquina local está na extrema esquerda, mais ou menos na metade do caminho e é rotulado Local site:. Em nosso exemplo, a caixa de texto ao lado de Local site: seria C:\Web\DB\Dumps.)
    6. (No FileZilla) Localize o rótulo Site remoto: diretamente à direita de Site local:.
    7. (No FileZilla) Não há nenhuma razão técnica para que você não possa colocar o DB DUMP na pasta que o FileZilla abre. Provavelmente, o padrão será seu diretório $HOME. Se você não tiver nenhum motivo para colocar o DB Dump em um diretório específico - como para seus próprios fins organizacionais - deixe o caminho no site remoto sozinho. Anote esse caminho (Exemplo do Linux: /usr/grant).
    8. (No FileZilla) Localize o arquivo em sua máquina local na metade esquerda do FileZilla logo abaixo da Árvore mostrada abaixo do rótulo Site local: que você encontrou na Etapa 5. Clique duas vezes nesse arquivo e o FileZilla o enviará por FTP para o seu Site Remoto.
    9. Dentro do PHPMYADMIN em seu servidor DESTINATION, crie um novo banco de dados (digite mydb na caixa de texto Criar novo banco de dados e clique no botão Criar).
    10. (No PHPMYADMIN) Escolha mydb no menu à esquerda.
    11. (No PHPMYADMIN) Clique na guia Privilégios (canto superior direito). Uma vez nessa página, clique em Adicionar novo usuário.
    12. (Em PHPMYADMIN->Privileges->Add New User) Forneça um nome de usuário (Exemplo: mydb_grant) e senha (Exemplo: mydb_password). Na lista suspensa Host, escolha Local. Certifique-se de que o botão de opção ao lado de "Conceder todos os privilégios no banco de dados" esteja selecionado. Em seguida, clique em Ir (canto inferior direito da tela).
    13. SSH em seu servidor DESTINATION.
    14. (No seu terminal SSH) Navegue até o diretório que você anotou na Etapa 7. Usando um comando como - cd $HOMEou cd /usr/grant. (Em máquinas Linux, $HOME é uma variável de ambiente que será igual a /usr/grant.)
    15. (No seu terminal SSH) Execute o seguinte comando: gunzip < /usr/grant/mydb.sql.gz | mysql -u mydb_grant -pmydb_password mydb(não há espaço entre -p e a senha porque é assim que precisa ser, não é um erro de digitação).

    Depois que o último comando for concluído, seu banco de dados foi RESTAURADO. Eu não recomendo usar o usuário e a senha do banco de dados que eu forneci, basta substituí-los por opções mais seguras de sua preferência.

    DUMP e RESTORE em diferentes servidores sem FTP

    Se você deseja pular as coisas do FTP e não se importa em refazer o DUMP, pode fazê-lo desta maneira:

    1. Faça login no servidor DESTINATION (onde você deseja que o banco de dados resida - chamaremos de destination.com)
    2. Crie o banco de dados, usuário e privilégios apropriados conforme mencionado acima no servidor DESTINATION
    3. Certifique-se de que os privilégios no servidor SOURCE permitem que SOURCE_DB_USER acesse o banco de dados remotamente - permita o acesso de dest.com ou de % (% - todos e em qualquer lugar se tiverem o nome de usuário e a senha corretos)
    4. No servidor DESTINATION, execute: mysqldump -u SOURCE_DB_USER -h source.com -pSOURCE_DB_PASSWORD mydb| gzip -9 > $HOME/mydb.sql.gzonde source.com é o servidor SOURCE (onde o banco de dados reside atualmente)
    5. Então (no servidor DESTINATION) execute:gunzip < $HOME/mydb.sql.gz | mysql -u DEST_DB_USER -pDEST_DB_PASSWORD mydb

    Isso deve ser tudo o que você precisa fazer para mover o banco de dados de um servidor para outro. As ressalvas são que eu só fiz isso no meu próprio Ubuntu dedicado (com LAMP padrão) e nos servidores VPS da Dreamhost (que acredito executar o CentOS, mas posso estar errado).

    • 12
  2. Salman
    2011-11-09T23:21:48+08:002011-11-09T23:21:48+08:00

    Você pode:

    • aumentarmemory_limit
    • aumentarpost_max_size
    • aumentarmax_execution_time
    • deve reiniciar o Apache depois de fazer tudo isso.
    • ou use Big Dump
    • 3
  3. Jeremy
    2012-04-02T07:35:20+08:002012-04-02T07:35:20+08:00

    Seu arquivo SQL está compactado? Eu tive esse problema com um arquivo sql compactado de 6 MB. Eu o descompactei em um arquivo sql descompactado de 53 MB e funcionou. A descompactação do arquivo de despejo em processo deve consumir toda a memória.

    • 1
  4. Sumit Bijvani
    2011-11-09T23:08:56+08:002011-11-09T23:08:56+08:00

    se o tamanho do seu banco de dados for maior que 128 MB, divida seu banco de dados em partes.

    Use o software SQL Dump Splitter

    SQL Dump Splitter é um aplicativo de 430 KB que oferece controle total sobre a divisão de bancos de dados enormes em arquivos SQL menores com facilidade. Com o SQL Dump Splitter você pode:

    • Escolha o tamanho de cada pedaço
    • Opte por pular comentários (para reduzir até mesmo o tamanho do banco de dados)
    • Automatize a atividade.
    • 0
  5. yas375
    2011-11-09T23:20:14+08:002011-11-09T23:20:14+08:00

    se você tiver acesso ssh ao servidor com mysql, poderá colocar o arquivo com mysql dump em algum lugar, digite mysql console:

    mysql -u myUser myDatabase
    

    Ou se o servidor mysql estiver em outro local que não o localhost e permitir conexões não apenas do localhost do que:

    mysql -u myUser -h mysql.example.com myDatabase
    

    Então você será solicitado a senha para o seu usuário mysql. Agora você no console mysql. Aqui você pode digitar

    source ~/mydump.sql;
    

    Você verá como os comandos do seu dump serão executados.

    Neste método você não se importa com nenhum limite de memória do php.

    • 0

relate perguntas

  • Existem ferramentas de benchmarking do MySQL? [fechado]

  • Onde posso encontrar o log lento do mysql?

  • Como posso otimizar um mysqldump de um banco de dados grande?

  • Quando é o momento certo para usar o MariaDB em vez do MySQL e por quê?

  • Como um grupo pode rastrear alterações no esquema do banco de dados?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Como você mostra o SQL em execução em um banco de dados Oracle?

    • 2 respostas
  • Marko Smith

    Como selecionar a primeira linha de cada grupo?

    • 6 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Posso ver Consultas Históricas executadas em um banco de dados SQL Server?

    • 6 respostas
  • Marko Smith

    Como uso currval() no PostgreSQL para obter o último id inserido?

    • 10 respostas
  • Marko Smith

    Como executar o psql no Mac OS X?

    • 11 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Marko Smith

    Passando parâmetros de array para um procedimento armazenado

    • 12 respostas
  • Martin Hope
    Manuel Leduc Restrição exclusiva de várias colunas do PostgreSQL e valores NULL 2011-12-28 01:10:21 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Stuart Blackler Quando uma chave primária deve ser declarada sem cluster? 2011-11-11 13:31:59 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    BrunoLM Guid vs INT - Qual é melhor como chave primária? 2011-01-05 23:46:34 +0800 CST
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +0800 CST
  • Martin Hope
    Patrick Como posso otimizar um mysqldump de um banco de dados grande? 2011-01-04 13:13:48 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve