由于访问mysql服务器无法启动rails服务器 - 访问被拒绝为'root'@'localhost'

时间:2013-01-15 16:14:59

标签: mysql ruby-on-rails

我让git克隆了一个存储库,以便开始为私有项目做贡献。

现在,当我启动mysql服务器以及rails服务器时,我收到以下错误:

Access denied for user 'root'@'localhost' (using password: YES) (Mysql2::Error)

现在我尝试使用我在config / database.yml文件中找到的密码登录但没有成功。如何让应用程序在我的本地环境中正常运行?

感谢您提供帮助。

database.yml文件:

  development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: sc_development
  pool: 5
  username: root
  password: Mysql2047
  socket: /tmp/mysql.sock

 # Warning: The database defined as "test" will be erased and
 # re-generated from your development database when you run "rake".
 # Do not set this db to the same as development or production.

  test:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: sc_test
  pool: 5
  username: root
  password: Mysql2047
  socket: /tmp/mysql.sock

3 个答案:

答案 0 :(得分:0)

您需要在本地计算机上启动mysql服务器,创建数据库sc_development并清除数据库设置文件中的密码。

答案 1 :(得分:0)

我会创建一个新的MySQL用户,其用户名不是root。为每个不同的应用程序提供不同的数据库用户是一种很好的做法。

当然,您还需要将sc_development数据库的权限授予您应用的用户。

CREATE DATABASE sc_development;
CREATE USER sc IDENTIFIED BY 'somepassword';
GRANT ALL PRIVILEGES ON sc_development.* TO sc;

这样的事情可能会成功。

答案 2 :(得分:0)

这对我来说很有用:

首先,而不是使用

登录mysql

mysql

像这样登录:

mysql -uroot

root @ localhost拥有所有权限,无密码。

接下来,我创建了数据库和另一个我赋予所有权利的用户。

mysql> CREATE USER joe identified by 'foobar'

mysql> Grant All PRIVILEGES ON smartcheckups_development.* TO joe;

创建数据库: mysql> CREATE DATABASE sc_development;

在我的database.yml文件中,我更新了登录名&密码与上述用户joe的密码。这将允许我登录。

通过\q

离开mysql

然后

bundle exec rake db:create

并启动rails rails s