En mi gemfile tengo:
gem 'mysql2'
Mi database.yml es la siguiente:
default: &default
adapter: mysql2
database: <%= ENV['db_name'] %>
username: <%= ENV['db_user'] %>
password: <%= ENV['db_pass'] %>
host: <%= ENV['db_host'] %>
pool: 32
socket: <%= ENV['socket'] %>
development:
<<: *default
production:
<<: *default
He corrido tanto bundle updatey bundle installya mis espectáculos Gemfile.lock mysql2.
Sin embargo, cuando ejecuto rake db:migrateobtengo esto tanto en mi computadora como en el servidor provisional:
myproject.com(master)$ rake db:migrate
WARNING: Use strings for Figaro configuration. 10000012508 was converted to "10000012508".
WARNING: Use strings for Figaro configuration. 860526407370038 was converted to "860526407370038".
rake aborted!
Gem::LoadError: Specified 'mysql2' for database adapter, but the gem is not loaded. Add `gem 'mysql2'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord).
.....
Solo para asegurarme de que no había una mala versión de mysql2 o algo así, lo hice bundle clean --forcey corrí bundle instally bundle updatenuevamente y cuando corro gem listveo mysql2 (0.4.0)y no hay otras versiones.
Cualquier idea sería muy apreciada.
SOLUCIÓN
Actualmente es un problema con Rails 4.1.xy 4.2.x, según este informe de error , se solucionará en la próxima versión de rails 4.2.x (crédito a dcorr en los comentarios para el enlace).
Mientras tanto, puede solucionarlo al actualizar a la versión 0.3.18 de mysql2 agregando esta línea a su archivo de gemas:
gem 'mysql2', '~> 0.3.18'
fuente

bundle update mysql2mysql2 (0.4.0)es la versión más nueva que tomarán ruby gems y ya está instalada.gem 'mysql2', '~> 0.3.18'en Gemfile.Respuestas:
Solo una actualización más: la solución en la pregunta es correcta.
Vale la pena tomar nota del cuarto comentario:
Pude vincularme
Rails 4.2.4a la4-2-stablesucursal y hacer que funcionara con lo últimomysql2:fuente
Solo haz:
gem 'mysql2', '~> 0.3.18'esta gema trabaja conrails version 4.x.xsi instala
gem 'mysql2', '~> 0.4.0'produce un error de carga de gemas y causa problemas de compatibilidadfuente
Este problema se abordó aquí: https://github.com/brianmario/mysql2/issues/950
Gemfile:
Entonces corre
bundle update rails mysql2Actualmente estoy usando mysql v 8.0.11
fuente
La respuesta a esta pregunta en particular en relación con el momento en que se publicó y la versión de Rails utilizada es que el problema se debe a
bundle updateactualización de su versión de mysql2 a 0.4.x que tiene un problema de incompatibilidad con el último ActiveRecord de Rails.Nuevamente, tenga en cuenta que esta NO es la solución para las personas que usan versiones anteriores de Rails / ActiveRecord.
La solución rápida es simplemente especificar la
mysql2versión en su archivo de gemas de la siguiente manera:gem 'mysql2', '0.3.20'La solución larga sería esperar a que cambie una actualización de ActiveRecord o algo en mysql2.
fuente
Si puede actualizar su versión de rails, cambie su Gemfile a esto y resolverá el problema sin degradar la versión de mysql2 gem:
fuente
Como principiante completo, me confundí sobre cómo hacer esto, así que solo hice una comprobación de prueba y finalmente conseguí que mi servidor funcionara, así es como lo hice funcionar.
ingrese al archivo del directorio de trabajo ("work") y desde allí ingrese al archivo de la aplicación que creó ("sample_app") que tiene instalado mysql 2, vaya al archivo gem ("Gemfile") edite gem 'mysql2' para gem 'mysql2', '~> 0.3.18'
ahora regrese a cmd y ejecute el comando "bundle install".
entonces el directorio para editar el archivo teniendo en cuenta los archivos anteriores entre paréntesis debería ser. "c \ work \ sample_app \ Gemfile"
Espero haber sido de alguna ayuda.
fuente
Esto suele suceder cuando faltan algunos paquetes mysql en su máquina. ¿Tienes algún error de
gem install mysql2? ¿En qué sistema operativo estás trabajando?Si en Debian o Ubuntu intenta
sudo apt-get install libmysqlclient-dev.También asegúrese de que la gema no se coloque dentro de una
groupdeclaración en su Gemfile.fuente
Tuve el mismo problema pero agregando
source 'https://rubygems.org'a la parte superior del problema resuelto del archivo de gemas.Pasos:
agregar
source 'https://rubygems.org'a su archivo de gemas. Comentamysql2 gemy agregagem 'mysql2', '~> 0.3.18'Ejecutarbundle installfuente
prueba esto:
este comando actualizará su gema 'mysql2' a la última versión (debe ser 0.3.17 o superior) e iniciará su servidor rails.
fuente