【问题标题】:rails db:migrate rails aborted! Mysql2::Error: Access denied for user 'root'@'localhost' (using password: YES)rails db:迁移 rails 中止! Mysql2::Error: Access denied for user 'root'@'localhost' (使用密码: YES)
【发布时间】:2018-07-27 13:49:06
【问题描述】:

我正在运行此迁移:

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:迁移 rails 中止! Mysql2::Error: 拒绝用户访问 'root'@'localhost'(使用密码:YES)

【问题讨论】:

  • 您的错误意味着您的 rails 应用程序无法登录到 mysql 数据库,因为您的凭据定义错误。

标签: mysql ruby-on-rails macos


【解决方案1】:

首先,这是正确的迁移代码:

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

或者只是改变 difference

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

【讨论】:

  • 不需要“change”和“down”方法。 “改变”就够了。
  • @sudo 是和否。我已经扩展了答案。
【解决方案2】:

您应该更新配置目录中的 database.yml 文件。该错误是由 mysql 针对您的 root 用户响应身份验证错误引起的。您可能想查看http://edgeguides.rubyonrails.org/configuring.html#configuring-a-database 以获取有关 database.yml 语法的信息。

您还可以通过运行 mysql -u root -p 并尝试输入您的密码来检查和验证 shell 中的登录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-27
    • 2015-05-08
    • 1970-01-01
    • 1970-01-01
    • 2012-10-30
    • 2021-03-04
    • 2021-12-27
    相关资源
    最近更新 更多