Recién estoy comenzando con Ruby (y rieles). Hice la configuración de acuerdo con http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:ruby gems, usando rvm
. Tengo todo funcionando bien con sqlite.
Ahora me gustaría intentar convertir cosas a MySQL, ya que eso es con lo que hago la mayor parte de mi desarrollo. En mi Gemfile he reemplazado sqlite con mysql2:
group :development, :test do
# gem 'sqlite3', '1.3.5'
gem 'mysql2'
gem 'rspec-rails', '2.9.0'
end
Pero cuando intento crear la base de datos para rieles en MySQL, obtengo:
$ rake db:create --trace
rake aborted!
dlopen(/Users/username/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib
Referenced from: /Users/username/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
Reason: image not found - /Users/username/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
He visto otras publicaciones recomendando reinstalar MySQL a través de homebrew (la mía se instaló a través de un DMG descargable), pero preferiría no hacerlo porque ya tengo varias otras bases de datos para otros proyectos que no son de Ruby.
De hecho, tengo el archivo que Rails está buscando; está instalado en /usr/local/mysql/lib/libmysqlclient.18.dylib
. ¿Cuál es la mejor forma de decirle a Rails cómo localizarlo?
fuente
Respuestas:
La solución es bastante sencilla; Agregue la ruta de la biblioteca en su archivo ~ / .bash_profile o ~ / .profile:
Si todavía no funciona (esto funciona para mí):
Hay muchos blogs
install_name_tool
que no me funcionan porque estoy en OSX Lion:fuente
.bash_profile
realmente no se aplica.usr/lib
un enlace simbólico, pero un enlace simbólicousr/local/lib
funcionará:sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
En El Capitán tengo
ln: /usr/lib/libmysqlclient.18.dylib: Operation not permitted
En El Capitán
/usr/lib/
ahora tiene una bandera restringida y no se puede escribir sin deshabilitar la seguridad, así que simplemente puse el enlace en su/usr/local/lib
lugar.El servidor de Rails está funcionando bien nuevamente.
fuente
Si bien el título de esta pregunta describe con precisión el problema que encontré, las circunstancias son diferentes de las descritas en las respuestas anteriores, y también lo fue la solución.
En mi caso (El Capitan, mysql instalado a través de homebrew),
brew update && brew upgrade
provocó que el paquete mysql se actualizara a 5.7.10 (desde 5.6.x).La actualización causó
libmysqlclient.18.dylib
que se reemplazaralibmysqlclient.20.dylib
, pero lamysql2
gema aún dependía de la primera.Para solucionar el problema que hice:
gem uninstall mysql2 && gem install mysql2
Tenga en cuenta que pueden ocurrir problemas similares con diferentes bibliotecas administradas por homebrew ( consulte mi propia respuesta a esto, por ejemplo )
fuente
pip uninstall mysqlclient
ypip install mysqlclient
también funcionó.Eso funcionó para mí. Instalé MySQL desde un archivo dmg.
fuente
Trabajó para mi. Todos los similares no lo hicieron.
fuente
Me encontré con este problema después de una eliminación completa y luego una nueva instalación de MySQL. Específicamente:
Ni siquiera había tocado mi aplicación Rails.
Reinstalar la
mysql2
gema resolvió este problema.[MySQL 5.7.10, Rails 4.0.0, Ruby 2.0.0, Mac OS X Yosemite 10.10]
fuente
Si está utilizando MySQL instalado desde HomeBrew en El Capitan, entonces debe vincularlo de la siguiente manera:
fuente
Para MySql 5.6 instalado desde DMG en Mavericks
fuente
Confirmo parche de Abhishek hace el trabajo.
también funciona para Yosemite.
nota: en lugar de vincular a una versión particular de mysql, use el enlace simbólico de hecho mysql ya construido:
esta solución funciona para Xcode y C API.
fuente
Para aquellos que están usando brew. Simplemente vincule su versión de mysql con la opción "--force".
fuente
brew link [email protected] --force
. Funcionó perfectamente.Para estar seguro de qué enlace simbólico se necesita (depende de la versión de mysql y la versión del sistema operativo):
y entonces :
fuente
Esto funciona para mi:
fuente
ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
Estoy usando Rails REE (2.3.4) para un sistema heredado que tenemos. Después de actualizar a El Capitan, ejecutar el script / consola generó un error y mi aplicación ya no se iniciaba (usando pow):
Desde este mismo hilo, arriba, determiné que necesitaba emitir este comando en la terminal:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
Este comando produjo un error: "ln: /usr/lib/libmysqlclient.18.dylib: Operación no permitida". Nunca antes había visto ese error.
Después de investigar un poco, encontré este artículo: http://www.macworld.com/article/2986118/security/how-to-modify-system-integrity-protection-in-el-capitan.html y seguí el instrucciones para desactivar SIP (la nueva protección de integridad del sistema de El Capitan). Después de apagar SIP y después de reiniciar, el comando ln funcionó bien. Luego apagué SIP. Ahora todo esta bien. Mi aplicación se ejecuta de nuevo usando pow y sin errores al ejecutar el script / consola. Espero que esto te ayude.
fuente
En Mac Sierra, si usa Homebrew, haga lo siguiente:
fuente
y
trabajó para mi.
fuente
Esto funcionó para mí. Todo lo que tuve que hacer es desinstalar mysql2 gem e instalarlo nuevamente usando los siguientes comandos
fuente
Estoy usando Mac OS y me quedé atascado con este error incluso después de desinstalar / eliminar todo mysql y MAMP. Anteriormente, instalé
brew install mysql
y también uséMAMP
. Addling softlink no funcionó para mí.Solo se resolvió eliminando todos los archivos mysql existentes. y luego instale mysql a través de MySQL desde aquí .
fuente
usa esto desde tu línea de comando:
probado en pocas computadoras con maverick siempre funciona
fuente
Si está utilizando Bitnami RubyStack y se encontró con un problema similar. Prueba este
fuente
Mi problema con la carga de ese archivo de paquete fue un enlace simbólico incorrecto. Por lo tanto, verifique el enlace y reemplácelo por uno nuevo si es necesario. Todo encajó en ese punto. No estoy seguro de cómo sucedió eso, pero sucedió. Primera vez que ocurre un error de sintaxis así.
fuente
Estaba trabajando con el comando del modelo rails g y recibí este error:
Probé esto y funcionó para mí. Estaba usando Mavericks 10.9.5
¡Gracias!
Ahora estoy usando Yosemite 10.10.5 y recibí el mismo error, así que simplemente ejecuté este comando en la terminal y se solucionó con éxito.
también puedes probar:
Ambos funcionan bien para mí. ¡Espero que pueda ser útil!
fuente
Tengo este problema "Biblioteca no cargada: libmysqlclient.18.dylib" al importar MySQLdb desde MySQL para python3 :
La solución me funciona: Mac OS X 10.11.1 Python3.5
fuente
Lo único que funcionó para mí es:
Reemplace las rutas de mysql y gems para que se ajusten a su sistema.
fuente
Después de mucho buscar en Google e intentar todo lo anterior ... lo único que resolvió mi problema fue este comando:
Estoy usando un macbook pro, OSX 10 El Capitan. Darwin xxxx-MacBook-Pro.local 15.6.0 Darwin Kernel Versión 15.6.0: jueves 23 de junio a las 18:25:34 PDT de 2016; XXX: xnu-3248.60.10 ~ 1 / RELEASE_X86_64 x86_64 Perl: v5.18.2 Mysql: 5.6.19
fuente
Gracias. Una actualización de Homebrew hizo que mis aplicaciones Rails tuvieran problemas en mi Mac. Reinstalé MySQL (5.7) desde la fuente, luego tuve que hacer esto
basado en lo que leí arriba, y en mi Gemfile
y en database.yml
fuente
Ya hay muchas respuestas a esta pregunta, especialmente esta https://stackoverflow.com/a/10847618/5515861 . Solo quiero agregar un par de notas. Si usan Mac, no sé cómo instalar MySQL, pero lo primero que debe investigar es dónde se encuentra su instalación de MySQL. Para mí, MySQL se instala usando
brew
para la versión5.7
, y la ubicación es/usr/local/opt/[email protected]/
, así que agregue lo siguiente a my~/.zshrc
.Espero que solucione sus problemas 😁
fuente