Problemas de instalación de MYSQL

votos
3

Después de actualizar algunas gemas a través de la terminal en mi Mac, he creado un nuevo proyecto de raíles respaldado por una base de datos mysql. Al iniciar la aplicación, aparece la página de bienvenida regular a bordo.

Aquí está el problema: intenté hacer clic en el enlace titulado Acerca del entorno de su aplicación, recibo el siguiente resultado en mi navegador:

MissingSourceFile in Rails/infoController#properties
no such file to load -- mysql

También recibo esta salida en la terminal

The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
Processing Rails::InfoController#properties (for 127.0.0.1 at 2008-12-09 20:41:41) [GET]
Processing Rails::InfoController#properties (for 127.0.0.1 at 2008-12-09 20:41:41) [GET]
MissingSourceFile (no such file to load -- mysql):
...

Como dice, traté de emitir gem install mysql después de detener la aplicación, solo para ser saludado por este fragmento de jerga que no puedo comprender:

WARNING:  Installing to ~/.gem since /Library/Ruby/Gems/1.8 and
      /usr/bin aren't both writable.
WARNING:  You don't have /Users/mymac/.gem/ruby/1.8/bin in your PATH,
      gem executables will not run.
Building native extensions.  This could take a while...
ERROR:  Error installing mysql:
    ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb install mysql
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... no
checking for mysql_query() in -lmysqlclient... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
    --with-mysql-config
    --without-mysql-config
    --with-mysql-dir
    --without-mysql-dir
    --with-mysql-include
    --without-mysql-include=${mysql-dir}/include
    --with-mysql-lib
    --without-mysql-lib=${mysql-dir}/lib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-mlib
    --without-mlib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-zlib
    --without-zlib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-socketlib
    --without-socketlib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-nsllib
    --without-nsllib
    --with-mysqlclientlib
    --without-mysqlclientlib


Gem files will remain installed in /Users/mymac/.gem/ruby/1.8/gems/mysql-2.7 for inspection.
Results logged to /Users/mymac/.gem/ruby/1.8/gems/mysql-2.7/gem_make.out

Claramente, hay algo mal con mi instalación mysql, ya que también he intentado ejecutar el comando rake para crear la base de datos, lo que me llevó a lo siguiente.

!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
rake aborted!
no such file to load -- mysql

(See full trace by running task with --trace)

Sin embargo, cuando ejecuto mysql --version en la línea de comandos, ¡mysql está instalado!

mysql  Ver 14.12 Distrib 5.0.67, for apple-darwin9.4.0 (i686) using readline 5.1

También probé a emitir sudo gem install mysql, sin embargo, eso fue en vano:

sudo gem install mysql
Password:
Building native extensions.  This could take a while...
ERROR:  Error installing mysql:
    ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb install mysql
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... no
checking for mysql_query() in -lmysqlclient... no


Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/mysql-2.7 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/mysql-2.7/gem_make.out

También probé a emitir sudo gem install mysql --con mysql-config = / usr / local / mysql / bin / mysql_config según las instrucciones de bradheintz, que parecía haberse instalado bien, pero después de intentar ver el entorno de la aplicación ¡nuevamente, no se produce el menú desplegable Ajaxy y la aplicación Rails se detiene por completo! La siguiente salida se imprime justo antes de que la aplicación decida morir en mi jaja.

dyld: lazy symbol binding failed: Symbol not found: _mysql_init
  Referenced from: /Library/Ruby/Gems/1.8/gems/mysql-2.7/lib/mysql.bundle
  Expected in: dynamic lookup

dyld: Symbol not found: _mysql_init
  Referenced from: /Library/Ruby/Gems/1.8/gems/mysql-2.7/lib/mysql.bundle
  Expected in: dynamic lookup

Trace/BPT trap

Si alguien puede entender lo que está sucediendo aquí, y cómo resolver este problema, estaría muy agradecido :)

Publicado el 09/12/2008 a las 21:49
fuente por usuario
En otros idiomas...                            


3 respuestas

votos
6

El problema es que MySQL gem construye extensiones nativas y necesita información específica del sistema sobre dónde encontrar ciertas bibliotecas. Debes proporcionar esto en la línea de comando.

Echa un vistazo a esta página ; la parte importante (que funcionó para mí, de todos modos) fue:

sudo gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

Por supuesto, asegúrese de sustituir la ruta correcta para su propio sistema.

Además, quédese con ejecutar sus gem installcomandos a través de sudo.

El problema más grande es que el software gem no brinda ninguna retroalimentación con respecto al hecho de que no puedes simplemente hacer gem install mysqlcomo lo haces con cualquier otra gema (y de hecho, solía ser capaz de hacer con la gema MySQL).

Respondida el 09/12/2008 a las 21:51
fuente por usuario

votos
0

La última vez que vi este error fue cuando trato de instalar el adaptador mysql / ruby. Y encuentro el mismo error después de actualizar los rieles en Mac a los rieles 1.2.2 porque 1.2.2 elimina la gema mysql por defecto.

La última vez que encontré me falta el cliente o la biblioteca mysql. Tome Redhat, por ejemplo, puede ir a este enlace e instalar el cliente y la biblioteca de MySQL. http://dev.mysql.com/downloads/mysql/5.0.html#linux-rhel5-x86-32bit-rpms

Déjame saber el resultado.

Joe

Respondida el 10/12/2008 a las 07:37
fuente por usuario

votos
0

Intenta forzar la compilación de la versión de 32 bits solamente (suponiendo que estés en Intel Mac, la -Vgema debería darte más salida detallada)

sudo env ARCHFLAGS="-arch i386" gem install -V mysql -- --with-mysql-config=/usr/local/sql32/bin/mysql_config

Más información en esta publicación de blog: http://blog.pastie.org/2008/10/mysql-64-bit-ruby-32-bit-friends-again.html

Respondida el 10/12/2008 a las 06:09
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more