Ruby on Rails报错:NameError: uninitialized constant Mysql2::Client::REMEMBER_OPTIONS
解决Rails 5.0.0 + mysql2 出现的 NameError: uninitialized constant Mysql2::Client::REMEMBER_OPTIONS 错误
嘿,我之前在搭建老版本Rails项目的时候也碰到过一模一样的问题!这个报错本质是mysql2 gem版本与Rails 5.0.0不兼容导致的——较新的mysql2 gem移除了REMEMBER_OPTIONS这个常量,但Rails 5.0.x的代码里还在调用它,所以就触发了这个错误。
下面是具体的修复步骤:
先卸载当前安装的mysql2 gem:
gem uninstall mysql2如果系统里安装了多个mysql2版本,选择卸载最新的那个即可。
打开项目根目录下的
Gemfile,修改mysql2的版本约束,指定一个和Rails 5.0.0兼容的版本:gem 'mysql2', '~> 0.4.10'(这个版本经过验证,和Rails 5.0.x系列配合完全没问题)
执行bundle命令重新安装适配的gem:
bundle install最后重新尝试数据库相关操作,不管是用Rails命令自动创建:
rails db:create还是手动在MySQL命令行执行:
CREATE DATABASE kudaweb_development; CREATE DATABASE kudaweb_test;之后启动Rails服务器,这个错误应该就消失了。
另外提醒一下:手动创建数据库时,要确保数据库名称和config/database.yml里配置的名称完全一致,不然还可能出现连接失败的问题哦~
内容的提问来源于stack exchange,提问作者Kuda Zata
相关产品推荐
相关产品推荐

