start mac instalar instal mysql ruby-on-rails-3 mysql2

instalar - start mysql server mac



Mysql 5.6 dolores de cabeza en Mac OSX (7)

Descubrimos que usar las siguientes soluciones esto para nosotros:

brew install mysql --use-llvm

Esto está en una raíles 2.3 ontop de REE (1.8.7) en rbenv en OSX 10.8. YMMV

Varios de mis colegas y yo hemos actualizado recientemente de MySQL 5.5 a MySQL 5.6 utilizando homebrew en nuestros Mac para realizar pruebas locales antes de actualizar nuestros servidores. Desde esta actualización, todos hemos experimentado errores intermitentes de MySQL al ejecutar nuestro código de rieles:

Lost connection to MySQL server at ''sending authentication information'', system error: 32

Hemos intentado volver a crear nuestros nombres de usuario y contraseñas en nuestra base de datos, y aumentar el tiempo de espera de conexión, pero ninguno ha solucionado el problema. Los registros de errores no mencionan el problema. La única solución que hemos encontrado cuando nos encontramos con el problema es matar a mysql y reiniciarlo. Incluso he notado este error más recientemente usando mysql -u root -p en la línea de comandos. Parece que una vez que empiezo a recibir este error, no puedo exceder mi número actual de conexiones sin importar el nombre de usuario que use. Si cierro una conexión, puedo volver a abrir una.

Tenemos los siguientes entornos:

  • algunos de nosotros: Rails 3.2, Ruby 2, mysql2 0.3.13, MySQL 5.6.12, Mac OSX 10.8.4
  • otros de nosotros: Rails 3.2, Ruby 1.9, mysql2 0.3.13, MySQL 5.6.10, Mac OSX 10.8.4

¿Alguna idea de lo que podría estar causando esto?

¡Gracias! Julie


En Mavericks, esto funcionó para mí:

mysql.server stop brew install mysql mysql.server start gem remove mysql2 gem install mysql2

Reinstalé Homebrew después de actualizar a Mavericks. Homebrew instaló la versión embotellada de MySQL 5.6.13.


Ese es un problema con la última versión de mysql que se instala a través de homebrew.

5.6.x crea el problema. la degradación a 5.5.x resolvió el problema para mí.

Puede instalar viejas versiones de fórmulas con bastante facilidad con homebrew:

brew versions mysql le dará el sha que tiene que pagar en / usr / local para poder instalar una versión anterior

cd /usr/local git checkout 336c976 brew info mysql

Esto te mostrará 5.5.29 como la versión de mysql. A continuación, puede desinstalar mysql según estas instructions y reinstalar simplemente ejecutando

brew install mysql

y ejecutando el proceso de instalación normal con homebrew:

unset TMPDIR mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

Espero que ayude.

Puede verificar el maestro en / usr / local luego de instalar nuevamente la versión anterior de mysql. El comando brew versions incluso te da el comando de simplemente verificar la fórmula de mysql, pero no creo que tenga ninguna ventaja sobre solo consultar todo el repositorio para el sha y luego volver al maestro después de instalar la versión anterior de mysql.


Estoy teniendo el mismo problema en la misma configuración (mysql 5.6.12). Acabo de actualizar mysql con homebrew a la versión 5.6.13 y el problema se ha ido.


Me tocó este problema con mysql 5.6.16, recién instalado a través de Homebrew en Mavericks, junto con rbenv y rieles, etc.

Decidió reiniciar antes de trabajar con las otras soluciones aquí. ¡Problema resuelto!

Entonces, si no ha reiniciado desde la instalación de mysql, recomiendo reiniciar antes de buscar las respuestas aquí.


Ninguna de las respuestas aquí me ayudó, pero finalmente obtuve MySQL 5.6 para trabajar.

TRES opciones para arreglar MySQL 5.6:

  1. (confirmado) Editar /etc/my.cnf (crear si no existe) y agregar:

    [mysqld] innodb_file_per_table = OFF

y reinicia MySQL. Luego, para que esto funcione, deberá volcar sus bases de datos en el archivo SQL (mysqldump), luego soltar y volver a crear las bases de datos, luego cargar los datos nuevamente.

  1. Cambie el valor de ulimit predeterminado de OSX (sugerido por el usuario de Github sodabrew ): https://superuser.com/questions/261023/how-to-change-default-ulimit-values-in-mac-os-x-10-6

  2. Agregue la siguiente opción a la sección [mysqld] de my.cnf: table_open_cache = 250 . Por defecto está configurado en 2000, que está muy por encima del límite máximo predeterminado de OSX. Tampoco se recomienda esta solución, ya que perjudica el rendimiento de MySQL. Obliga a MySQL a volver a abrir tablas a menudo, si tiene más de 250 tablas: https://mariadb.com/kb/en/optimizing-table_open_cache/

¿Por qué está ocurriendo este error?

Dado que la opción MySQL 5.6 innodb_file_per_table está activada de manera predeterminada, lo que significa que los datos de cada tabla se almacenan en su propio archivo. El límite predeterminado de OSX del número de archivos abiertos es 256 por proceso. Normalmente esto no es un problema, pero en mi caso estoy ejecutando pruebas unitarias en paralelo, lo que crea 8 bases de datos con 405 tablas cada una. OSX tiene un límite de la cantidad de identificadores de archivos abiertos por proceso. Esta respuesta de sugiere que este límite es 256, lo que explica perfectamente mi problema: antes de MySQL 5.6, todos los datos de todas estas 8 bases de datos estaban en UN archivo.

¡Gracias a mi colega Thomas L. que encontró un informe de error de MySQL que insinuaba esta solución!


Tuvimos el mismo problema. Esto lo solucionó para nosotros

project-root$ mysql.server stop project-root$ gem uninstall mysql2 project-root$ bundle install project-root$ mysql.server start