【发布时间】:2017-08-17 02:53:57
【问题描述】:
我查看了很多类似的解决方案,但无法解决我的问题,希望有人能提供帮助。
我加入了一个 Rails 项目,需要通过 dump.sh 文件提取数据以使我能够在本地工作。每当我运行所需的命令时,都会收到此错误:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
如果我尝试mysql -u root,我会看到完全相同的错误消息。
尝试mysql -u root -p 需要输入我的密码(它与database.yml 文件中的密码相同)这有点奇怪 - 根据我的错误消息,这一步肯定不应该工作吗?
我的 database.yml 文件看起来像这样用于开发:
development:
adapter: mysql2
database: database_development
host: localhost
port: 3306
username: root
password: "password_is_here"
pool: 5
timeout: 5000
我觉得我在这里遗漏了一些非常基本的东西,但我一生都无法弄清楚它是什么:-/
编辑:忘了提,数据库存在并且已经迁移,所以rake db:create 和rake db:migrate 不是问题。
EDIT2:我的测试数据库有相同的信息
【问题讨论】:
-
在堆栈溢出时尝试此答案ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 以在 linux 上正确配置 mysql
-
不幸的是,我没有看到任何我还没有尝试过的东西(包括设置新密码、重新启动 SQL 服务器等)。我仍然继续收到“使用密码:否”消息。
-
你的 dump.sh 脚本怎么样?如果您将dump.sh的代码与您的问题一起发布将有助于回答问题。您是否为其添加了mysql权限?。
-
恐怕我不能(以合同方式)发布它 - 虽然我团队中的其他人已经运行它没有问题,但它确实有效。
-
好的,你有两个解决方案。您可以使用 chmod 或 chown 命令更改 dump.sh 的权限以在您的计算机上本地工作。或者您可以将这些更改添加到 database.yml 文件中,添加
default: &default adapter: mysql2 encoding: utf8 pool: 5 username: root password: host: localhost development: <<: *default database: database_development
标签: mysql ruby-on-rails database mysql2