2010-03-30 11 views
6

Intentar extraer mi base de datos de Heroku da un error a mitad del proceso (abajo).Problema de Heroku durante la extracción de la base de datos de la aplicación: Mysql :: Error El servidor MySQL se ha ido

Uso: Snow Leopard; heroku-1.8.2; grifos-0.2.26; rails-2.3.5; mysql-5.1.42. La base de datos es pequeña, como se puede ver en el mensaje de error.

El soporte técnico de Heroku dice que es un problema en mi sistema, pero no ofrece nada para resolverlo.

He visto el problema informado anteriormente, por ejemplo here. ¿Cómo puedo evitar este problema?

El error:

$ heroku db:pull 
Auto-detected local database: mysql://[...]@localhost/[...]?encoding=utf8 
Receiving schema 
Receiving data 
17 tables, 9,609 records 
[...] 
/Library/Ruby/Gems/1.8/gems/sequel-3.0.0/lib/sequel/adapters/mysql.rb:166:in `query': Mysql::Error MySQL server has gone away (Sequel::DatabaseError) 
    from /Library/Ruby/Gems/1.8/gems/sequel-3.0.0/lib/sequel/adapters/mysql.rb:166:in `_execute' 
    from /Library/Ruby/Gems/1.8/gems/sequel-3.0.0/lib/sequel/adapters/mysql.rb:125:in `execute' 
    from /Library/Ruby/Gems/1.8/gems/sequel-3.0.0/lib/sequel/connection_pool.rb:101:in `hold' 
    from /Library/Ruby/Gems/1.8/gems/sequel-3.0.0/lib/sequel/database.rb:461:in `synchronize' 
    from /Library/Ruby/Gems/1.8/gems/sequel-3.0.0/lib/sequel/adapters/mysql.rb:125:in `execute' 
    from /Library/Ruby/Gems/1.8/gems/sequel-3.0.0/lib/sequel/database.rb:296:in `execute_dui' 
    from /Library/Ruby/Gems/1.8/gems/sequel-3.0.0/lib/sequel/dataset.rb:276:in `execute_dui' 
    from /Library/Ruby/Gems/1.8/gems/sequel-3.0.0/lib/sequel/adapters/mysql.rb:365:in `execute_dui' 
    from /Library/Ruby/Gems/1.8/gems/sequel-3.0.0/lib/sequel/dataset/convenience.rb:126:in `import' 
    from /Library/Ruby/Gems/1.8/gems/sequel-3.0.0/lib/sequel/dataset/convenience.rb:126:in `each' 
    from /Library/Ruby/Gems/1.8/gems/sequel-3.0.0/lib/sequel/dataset/convenience.rb:126:in `import' 
    from /Library/Ruby/Gems/1.8/gems/sequel-3.0.0/lib/sequel/adapters/mysql.rb:144:in `transaction' 
    from /Library/Ruby/Gems/1.8/gems/sequel-3.0.0/lib/sequel/connection_pool.rb:108:in `hold' 
    from /Library/Ruby/Gems/1.8/gems/sequel-3.0.0/lib/sequel/database.rb:461:in `synchronize' 
    from /Library/Ruby/Gems/1.8/gems/sequel-3.0.0/lib/sequel/adapters/mysql.rb:138:in `transaction' 
    from /Library/Ruby/Gems/1.8/gems/sequel-3.0.0/lib/sequel/dataset/convenience.rb:126:in `import' 
    from /Library/Ruby/Gems/1.8/gems/taps-0.2.26/lib/taps/client_session.rb:211:in `cmd_receive_data' 
    from /Library/Ruby/Gems/1.8/gems/taps-0.2.26/lib/taps/client_session.rb:203:in `loop' 
    from /Library/Ruby/Gems/1.8/gems/taps-0.2.26/lib/taps/client_session.rb:203:in `cmd_receive_data' 
    from /Library/Ruby/Gems/1.8/gems/taps-0.2.26/lib/taps/client_session.rb:196:in `each' 
    from /Library/Ruby/Gems/1.8/gems/taps-0.2.26/lib/taps/client_session.rb:196:in `cmd_receive_data' 
    from /Library/Ruby/Gems/1.8/gems/taps-0.2.26/lib/taps/client_session.rb:175:in `cmd_receive' 
    from /Library/Ruby/Gems/1.8/gems/heroku-1.8.2/bin/../lib/heroku/commands/db.rb:17:in `pull' 
    from /Library/Ruby/Gems/1.8/gems/heroku-1.8.2/bin/../lib/heroku/commands/db.rb:119:in `taps_client' 
    from /Library/Ruby/Gems/1.8/gems/taps-0.2.26/lib/taps/client_session.rb:21:in `start' 
    from /Library/Ruby/Gems/1.8/gems/heroku-1.8.2/bin/../lib/heroku/commands/db.rb:115:in `taps_client' 
    from /Library/Ruby/Gems/1.8/gems/heroku-1.8.2/bin/../lib/heroku/commands/db.rb:16:in `pull' 
    from /Library/Ruby/Gems/1.8/gems/heroku-1.8.2/bin/../lib/heroku/command.rb:45:in `send' 
    from /Library/Ruby/Gems/1.8/gems/heroku-1.8.2/bin/../lib/heroku/command.rb:45:in `run_internal' 
    from /Library/Ruby/Gems/1.8/gems/heroku-1.8.2/bin/../lib/heroku/command.rb:17:in `run' 
    from /Library/Ruby/Gems/1.8/gems/heroku-1.8.2/bin/heroku:14 
    from /usr/bin/heroku:19:in `load' 
    from /usr/bin/heroku:19 
+0

Encontré esta publicación, tengo el mismo problema. ¿Alguna suerte? Me pregunté sobre la codificación ya que mi db local está en utf-8 de manera predeterminada, pero no he podido hacer que funcione. – wesgarrison

+0

No utilice una base de datos diferente en producción y desarrollo. No use los grifos. Usa pgbackups. Pruebe http://postgresapp.com para instalar postgres en os x. – Will

Respuesta

1

Es un problema en el sistema. Su conexión con su servidor MySQL local se ha eliminado al intentar presionar a Heroku. Una versión más nueva de Sequel puede ayudar, pero no estoy seguro de si la usarán.

16

Me encontré con el mismo problema en mi sistema. Finalmente descubrí que el problema es que el error radica.

Al acceder a la biblioteca de Sequel, pude determinar que el error real que estaba recibiendo era "Tengo un paquete más grande que 'max_allowed_packet' bytes". Establecer lo siguiente en /etc/my.cnf y reiniciar mysql solucionó el problema.

[mysqld] 
    max_allowed_packet = 32M 

De forma predeterminada, mysql está configurado para permitir un máximo de cargas de datos de 1 meg. Lo anterior establece el límite de 32 megas.

+0

¡No olvide reiniciar mysql! – Smickie

+0

Funcionó muy bien! Gracias por la corrección. – eAlchemist

-1

Como arriba esto funciona. Simplemente cree un archivo: /etc/my.cnf y reinicie mysql.

[mysql] 
max_allowed_packet=32M 
[mysqld] 
max_allowed_packet=32M 
+2

No es necesario duplicar una respuesta ya existente. – ybakos

Cuestiones relacionadas