簡體   English   中英

ActiveRecord::StatementInvalid: Mysql2::Error: Unknown collat​​ion: 'utf8_0900_ai_ci'

[英]ActiveRecord::StatementInvalid: Mysql2::Error: Unknown collation: 'utf8_0900_ai_ci'

我是一個新手,試圖通過使用 ROR 5.0 版和 mysql 8.02 跟隨 Lynda 視頻系列來學習 ruby​​ on rails。 在 DB>migrate>model.rb 文件中創建我的表條目並運行“rails db:migrate”后,我在終端中收到一個沒有多大意義的錯誤。 iv 使用不同的用戶並授予它 mysql 權限並在網上搜索但沒有運氣。

==============================

類 CreateUsers < ActiveRecord::Migration[5.0]

def up create_table :users do |t|

    t.column "first_name", :string, :limit => 25
    t.string "last_name", :limit => 50
    t.string "email", :default => '', :null => false
    t.string "password", :limit => 40

  t.timestamps
end

結束

向下定義

drop_table :users

結束

結束

MBP:simple_cms $ rails db:migrate rails 中止! ActiveRecord::StatementInvalid: Mysql2::Error: Unknown collat​​ion: 'utf8_0900_ai_ci': CREATE TABLE schema_migrations ( version varchar(255) COLLATE utf8_0900_ai_ci PRIMARY KEY) ENGINE=InnoDB /Users/.rvm/gems/3.ruby mysql2-0.4.9/lib/mysql2/client.rb:120:in _query' /Users/.rvm/gems/ruby-2.3.0/gems/mysql2-0.4.9/lib/mysql2/client.rb:120:in block in query' /Users/.rvm/gems/ruby-2.3.0/gems/mysql2-0.4.9/lib/mysql2/client.rb:119:in handle_interrupt' /Users/.rvm/gems/ruby-2.3.0/gems/mysql2-0.4.9/lib/mysql2/client.rb:119:in query' /Users/.rvm/gems/ruby-2.3.0/gems/activerecord-5.0.6/lib/ active_record/connection_adapters/abstract_mysql_adapter.rb:218:in block in execute' /Users/.rvm/gems/ruby-2.3.0/gems/activerecord-5.0.6/lib/active_record/connection_adapters/abstract_adapter.rb:590:in阻止日志'/Users/.rvm/gems/ruby-2.3.0/gems/activesupport-5.0.6/lib/active_support/notifications/instrumenter.rb:21:in instrument' /Users/.rvm/gems/ruby-2.3.0/gems/activerecord-5.0.6/lib/active_record/connection_adapters/abstract_adapter.rb:583:in instrument' /Users/.rvm/gems/ruby-2.3.0/gems/activerecord-5.0.6/lib/active_record/connection_adapters/abstract_adapter.rb:583:in log execute' /Users/.rvm/gems/ruby-2.3.0/gems/activerecord-5.0.6/lib/active_record/connection_adapters/mysql/database_statements.rb:31:in instrument' /Users/.rvm/gems/ruby-2.3.0/gems/activerecord-5.0.6/lib/active_record/connection_adapters/abstract_adapter.rb:583:in execute' /Users/.rvm/gems/ruby-2.3.0/gems/activerecord-5.0.6/lib/active_record/connection_adapters/mysql/database_statements.rb:31:in execute' /Users/.rvm/gems/ruby-2.3.0 /gems/activerecord-5.0.6/lib/active_record/connection_adapters/abstract/schema_statements.rb:278:in create_table' /Users/.rvm/gems/ruby-2.3.0/gems/activerecord-5.0.6/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:423:in create_table' /Users/.rvm/gems/ruby-2.3.0/gems/activerecord-5.0.6/lib/active_record/schema_migration.rb:27:in create_table' /Users/.rvm/gems/ruby-2.3.0/gems/activerecord-5.0.6/lib/active_record/connection_adapters/abstract/schema_statements.rb:1008:in initialize_schema_migrations_table'

有一個與您的問題相關的問題: https : //github.com/rails/rails/issues/28730

這已在rails v5.1.0.rc2得到修復。 升級到最新版本並重新生成schema.rb應該可以解決您的問題。

如果utf8_0900_ai_ci不起作用,也可以向database.yml添加常規collation utf8_0900_ai_ci

development:
  adapter: mysql2
  ...
  encoding: utf8
  collation: utf8_general_ci

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM