我正在建立一个运行 MySQL 的新 Ubuntu 服务器。我在我的开发服务器上设置了 Capistrano,并在运行 deploy:setup 后尝试 deploy:cold。部署脚本尝试运行后
executing "cd /home/adm1n/www/knowit/releases/20121112152400 && bundle exec rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile"
我不断收到此消息:
Rake Aborted!
Access denied for user 'specialusername'@'localhost' (using password: YES)
Tasks: TOP => environment
我在 mysql 服务器上的数据库中为 localhost 和 % 创建了“特殊用户名”。我删除了用户数据库中的空用户 ' ' @ localhost 行。我已将服务器的 IP 地址添加到 my.cnf 文件并注释掉 127.0.0.1 行。
这是我用于生产的 deploy.rb 文件:
production:
adapter: mysql2
encoding: utf8
reconnect: false
database: mydatabasename
username: specialusername
password: crazypassword
socket: /tmp/mysql.sock
pool: 5
timeout: 5000
我想我可能不明白这是如何工作的。在我的 Site5 服务器上,我不必指定从哪个主机访问 mysql。但在我所有的阅读中,似乎我必须指定一个特定的用户@主机名。如果我在旅行时从全国各地的许多不同地点进行部署,这就有点困难了。还是我只需要使用笔记本电脑的主机名,而不管我当前的 IP 地址如何?感谢您提供的任何见解和解决方案。我没有找到任何文章准确地为我提供了解决此问题所需的内容。