![](/img/trans.png)
[英]rake db:migrate rake aborted! Mysql2::Error: Access denied for user 'simple_cms'@'localhost' (using password: YES)
[英]rails db:migrate rails aborted! Mysql2::Error: Access denied for user 'root'@'localhost' (using password: YES)
我正在運行此遷移:
class CreateAdmins < ActiveRecord::Migration[5.1]
def change
create_table :admins do |t|
t.string "first_name" :limit => 30
t.string "last name", :limit => 30
t.string "email", :default => '', :null => false
t.string "password" ,:limit => 40
t.timestamps
end
end
def down
drop_table :admins
end
end
我收到一條錯誤消息:
rails db:migrate rails已中止! Mysql2 :: Error:用戶'root'@'localhost'的訪問被拒絕(使用密碼:是)
您應該在配置目錄中更新database.yml文件。 該錯誤是由mysql對您的root用戶響應的身份驗證錯誤引起的。 您可能想查看http://edgeguides.rubyonrails.org/configuring.html#configuring-a-database以獲得有關database.yml語法的信息。
您還可以通過運行mysql -u root -p
並嘗試輸入密碼來檢查和驗證Shell中的登錄。
首先,這是正確的遷移代碼:
class CreateAdmins < ActiveRecord::Migration[5.1]
def self.up
create_table :admins do |t|
t.string :first_name, limit: 30
t.string :last_name, limit: 30
t.string :email, default: '', null: false
t.string :password ,limit: 40
t.timestamps
end
end
def self.down
drop_table :admins
end
end
或只是改變 差異
class CreateAdmins < ActiveRecord::Migration[5.1]
def change
create_table :admins do |t|
t.string :first_name, limit: 30
t.string :last_name, limit: 30
t.string :email, default: '', null: false
t.string :password ,limit: 40
t.timestamps
end
end
end
關於錯誤,用於開發環境的database.yml
應該如下所示:
development:
adapter: mysql2
encoding: utf8
database: your_db_name
username: your_user
password: your_password
host: 127.0.0.1
port: 3306
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.