Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

neotheone

Importar pelo phpMyAdmin

Recommended Posts

Estou com uma tabela que possui + ou - 63 mil registros (17 megas e uns quebrados) o phpMyAdmin não permite + que 2 megas, ele trava, como importar uma tabela desse tamanho para o banco? Se tiver que dividir em 2 tabelas, como seria?

 

brigaduu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou com uma tabela que possui + ou - 63 mil registros (17 megas e uns quebrados) o phpMyAdmin não permite + que 2 megas, ele trava, como importar uma tabela desse tamanho para o banco? Se tiver que dividir em 2 tabelas, como seria?

 

brigaduu!

Se eu não me engano no phpmyadmin tem como escolher a importação por quantidade de registro, seria ideal você exportar em varias partes

Agora uma outra pergunta pq você não se conecta com o MySqlAdministrator e faz esta exposrtação?

Compartilhar este post


Link para o post
Compartilhar em outros sites

EXPORTAR DO BANCO ORIGINAL:

select * from tabela_A into outfile '/home/giesta/txt_out/tabela.txt'

 

 

IMPORTAR :

load data INFILE '/home/giesta/txt_out/tabela.txt' into table tabela_B

 

 

obviamente você troca o "/home.." por um caminho no seu pc

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Noite!

 

Giesta será que você poderia me ajudar?

 

Eu tenho uma lista de aniverdariantes (500) mais ou menos no excel em duas colunas nome e data e preciso puxar isso pra uma tabela aniversariantes no banco mysql...

 

criei a tabela aniversariantes com os campos id, nome, data

 

tentei salvar como txt e executar como citou acima mas ele só registra o id.

load data INFILE 'c:/teste/niver.txt' into table aniversariantes

Se puder me ajudar como fazer, ficou muitíssimo grato!

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

o mysql importa por padrao com tabulaçao(TAB) e o xls exporta por padrao como CSV(ponto e virgula) , por isso mto provavelmente ele soh consegue ler a primeira coluna

 

entao ou você manda o excel exporta direito ou você muda os parametros de importaçao do mysql

 

http://dev.mysql.com/doc/refman/5.0/en/load-data.html

 

o site acima deve resolver seus problemas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom. . .se sua tabela tiver mais de 16MB, você terá que modificar o tamanho da diretiva do my.ini chamada max_allowed_packet para bem maior para que o phpMyAdmin permita fazer esta importação que, na verdade, não é o phpMyAdmin, é o MySQL mesmo!!

 

Observe isso, http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Duas coisas:

 

o que controla o tamanho limite da importacao no phpmyadmin eh o seguinte pedaço de codigo do import.php e as variaveis a q ele se refere, por padrao eh 2 megas

 

// We can not read all at once, otherwise we can run out of memory

$memory_limit = trim(@ini_get('memory_limit'));

// 2 MB as default

if (empty($memory_limit)) {

$memory_limit = 2 * 1024 * 1024;

}

// In case no memory limit we work on 10MB chunks

if ($memory_limit = -1) {

$memory_limit = 10 * 1024 * 1024;

}

 

 

 

2- Eh possivel importar arquivos de texto de qualquer tamanho(ate onde eu sei/testei) o max_allowed_packet refere-se ao tamanho maximo de uma SQL (nunca vi alguem escrever um sql de 16 megas) ou o tamanho maximo de uma LINHA a ser inserida no banco e nao do arquivo a ser importado, quem tiver duvida faça o teste.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal giesta...boa discussão!

 

Caso você precise de mais detalhes sobre aquilo que eu postei anteriormente, acesse esse link e leia com atenção, por favor, o terceiro parágrafo: http://dev.mysql.com/doc/refman/5.0/en/packet-too-large.html .

 

When a MySQL client or the mysqld server receives a packet bigger than max_allowed_packet bytes, it issues a Packet too large error and closes the connection. With some clients, you may also get a Lost connection to MySQL server during query error if the communication packet is too large.

Both the client and the server have their own max_allowed_packet variable, so if you want to handle big packets, you must increase this variable both in the client and in the server.

NÃO É O PHPMYADMIN que controla o que o SERVIDOR MYSQL fará ou não, ele'somente é mais um front para o SGBD como qualquer outro, o mais utilizado, acredito, pela sua facilidade.

 

Outra, não é a SQL ou mesmo o comando SQL que tem todo esse tamanho, e sim a quantidade de dados que deverá ser primeiro colocada na memória e posterior inserção nas páginas de dados que alimentam as tabelas de um banco de dados contido no SGBD MySQL. Geralmente, instituições financeiras manipulam muito mais dados que 16MB em seus processos, por exemplo, de folha de pagamento...têm processos que rodam 4 dias até. http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

 

Forte abraço e acho que merecemos continuar esse papo! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.