我的宝石文件:
source 'https://rubygems.org'
gem 'rails', '4.2.8'
gem 'bootstrap-sass', '~> 3.3.7'
gem 'font-awesome-rails'
gem 'sqlite3'
gem 'mysql2'
gem 'sass-rails', '~> 5.0.4'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'turbolinks'
gem 'jbuilder', '~> 1.2'
group :doc do
gem 'sdoc', require: false
end
我的数据库配置:
default: &default
adapter: mysql2
pool: 25
timeout: 5000
encoding: utf8
development:
<<: *default
host: 127.0.0.1
database: asteriskcdrdb
username: root
password: pwd3lfga
port: 13306
在控制台中,我在启动控制台并尝试从db中的表中读取后出现此错误:
Mysql2::Error: Malformed packet
from /Users/michele/.rvm/gems/ruby-2.2.2/gems/mysql2-0.4.6/lib/mysql2/client.rb:89:in `connect'
from /Users/michele/.rvm/gems/ruby-2.2.2/gems/mysql2-0.4.6/lib/mysql2/client.rb:89:in `initialize'
from /Users/michele/.rvm/gems/ruby-2.2.2/gems/activerecord-4.2.8/lib/active_record/connection_adapters/mysql2_adapter.rb:18:in `new'
答案 0 :(得分:0)
事实证明,这可以通过重新安装mysql2 gem来解决。我想我已经安装了一个从源代码编译的MySQL版本,然后转换到通过brew安装的MySQL,这导致gem使用的客户端代码不兼容。这解释了为什么它在命令行客户端工作,但在使用gem时没有。
gem uninstall mysql2
gem install mysql2
和
从gem 'sqlite3'
删除Gemfile
。