Ruby on rails“NameError:uninitialized constant Mysql2 :: Client :: REMEMBER_OPTIONS”

时间:2018-04-07 21:31:59

标签: mysql ruby-on-rails ruby mysql2

我正在尝试使用ruby on rails学习web开发。我一直关注Lynda.com的课程,我的步骤如下:

  1. 我安装了Ruby + DevKit 2.4.4-1(x64)

  2. 我在命令行中安装了rails,如下所示 gem install rails --version 5.0.0

  3. 我安装了MySQL 5.7.21版本

  4. 我按如下方式安装了mysql2 gem gem install mysql2

  5. 我安装了Atom文本编辑器

  6. 我创建了一个新项目rails new kudaweb -d mysql

  7. 我在MySQL shell中创建了所需的数据库

  8. CREATE DATABASE kudaweb_development;CREATE DATABASE kudaweb_test;

    1. 然后我创建了一个新用户并授予了以下所有权限
    2. GRANT ALL PRIVILEGES ON kudaweb_development.* TO 'rails_user'@'localhost' IDENTIFIED BY 'mypassword' 我也为测试数据库做了这个

      1. 我按如下方式配置了database.yml文件:

        default: &default adapter: mysql2 encoding: utf8 pool: 5 username: rails_user password: mypassword host: localhost

      2. 我运行了以下代码来检查我是否正确配置了数据库

      3. rails db:schema:dump

        我收到以下错误

        C:\Users\Dj K-Staxx\Desktop\RUBY\kudaweb>rails db:schema:dump rails aborted! NameError: uninitialized constant Mysql2::Client::REMEMBER_OPTIONS bin/rails:4:in需要” bin / rails:4:<main>' Tasks: TOP => db:schema:dump

        我不知道如何解决这个问题。我在网上寻找解决方案,但无济于事。我正在使用Windows 7 64位和mysql2 gem我使用的是0.5.0版本

2 个答案:

答案 0 :(得分:0)

好像你的0.5.0 gem和mysql之间可能存在一些配置问题。它可能没有正确构建。见:https://github.com/brianmario/mysql2/issues/954

选项1:尝试恢复为0.4.90.4.10 gem

将您的gemfile设置为:

# ./Gemfile
...
gem 'mysql2', '0.4.9'
...

选项2:尝试使用c-connector

在本地编译gem

您可能需要本地C连接器才能在本地正确构建gem。见:https://www.digitalgyan.org/how-to-install-ruby-on-rails-mysql2-gem-on-windows-10/

可能就像从MySQL下载相应的文件一样简单:https://dev.mysql.com/downloads/connector/c/

在任何一种情况下,您都可以从快速脚本中受益,以测试连接(以排除Rails为问题)。

require 'mysql2'
client = Mysql2::Client.new(host: "localhost", username: "rails_user", password: "mypassword")

答案 1 :(得分:0)

将Gemfile中的mysql2 gem更新为:

gem 'mysql2', '~> 0.5.2'