Ruby on rails "NameError: uninitialized constant Mysql2::Client::REMEMBER_OPTIONS"
Ruby on rails "NameError: uninitialized constant Mysql2::Client::REMEMBER_OPTIONS"
我正尝试在 rails 上与 ruby 一起学习网络开发。我一直在学习 Lynda.com 的课程,我的步骤如下:
我安装了 Ruby + DevKit 2.4.4-1(x64)
我在命令行中安装了rails如下
gem install rails --version 5.0.0
我安装了MySQL版本5.7.21
我安装了mysql2gem如下
gem install mysql2
我安装了 Atom 文本编辑器
我创建了一个新项目rails new kudaweb -d mysql
我在 MySQL shell
中创建了所需的数据库
CREATE DATABASE kudaweb_development;
和 CREATE DATABASE kudaweb_test;
- 然后我创建了一个新用户并运行获得了如下所有权限
GRANT ALL PRIVILEGES ON kudaweb_development.* TO 'rails_user'@'localhost' IDENTIFIED BY 'mypassword'
我也为测试数据库做了这个
我配置了database.yml文件如下:
default: &default
adapter: mysql2
encoding: utf8
pool: 5
username: rails_user
password: mypassword
host: localhost
我运行下面的代码检查我是否正确配置了数据库
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
您的 0.5.0
gem 和 mysql 之间似乎存在一些配置问题。它可能没有正确构建。参见:https://github.com/brianmario/mysql2/issues/954
选项 1:尝试恢复到 0.4.9
或 0.4.10
gem
将您的 gem 文件设置为:
# ./Gemfile
...
gem 'mysql2', '0.4.9'
...
选项 2:尝试使用 c-connector
在本地编译 gem
您可能需要本地 C-connector 才能在本地正确构建 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")
将 Gemfile 中的 mysql2 gem 更新为:
gem 'mysql2', '~> 0.5.2'
我正尝试在 rails 上与 ruby 一起学习网络开发。我一直在学习 Lynda.com 的课程,我的步骤如下:
我安装了 Ruby + DevKit 2.4.4-1(x64)
我在命令行中安装了rails如下
gem install rails --version 5.0.0
我安装了MySQL版本5.7.21
我安装了mysql2gem如下
gem install mysql2
我安装了 Atom 文本编辑器
我创建了一个新项目
rails new kudaweb -d mysql
我在 MySQL shell
中创建了所需的数据库
CREATE DATABASE kudaweb_development;
和 CREATE DATABASE kudaweb_test;
- 然后我创建了一个新用户并运行获得了如下所有权限
GRANT ALL PRIVILEGES ON kudaweb_development.* TO 'rails_user'@'localhost' IDENTIFIED BY 'mypassword'
我也为测试数据库做了这个
我配置了database.yml文件如下:
default: &default adapter: mysql2 encoding: utf8 pool: 5 username: rails_user password: mypassword host: localhost
我运行下面的代码检查我是否正确配置了数据库
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
您的 0.5.0
gem 和 mysql 之间似乎存在一些配置问题。它可能没有正确构建。参见:https://github.com/brianmario/mysql2/issues/954
选项 1:尝试恢复到 0.4.9
或 0.4.10
gem
将您的 gem 文件设置为:
# ./Gemfile
...
gem 'mysql2', '0.4.9'
...
选项 2:尝试使用 c-connector
在本地编译 gem您可能需要本地 C-connector 才能在本地正确构建 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")
将 Gemfile 中的 mysql2 gem 更新为:
gem 'mysql2', '~> 0.5.2'