我正在尝试克隆一个repo并在我的本地计算机上运行它。我没有创建数据库,我正在尝试手动创建我的database.yml文件(我第一次这样做)。我不太清楚我在做什么,并继续得到有关连接到MySql服务器的错误。这是我的database.yml文件:
development:
adapter: mysql
host: 127.0.0.1
database: db/app_development
username: root
password:
我也尝试过localhost而不是127.0.0.1,在尝试通过执行'bundle exec rake db:create'来创建数据库时都给我错误...我收到此错误:
Can't connect to MySQL server on '127.0.0.1' (61)
Couldn't create database for {"username"=>"root", "adapter"=>"mysql", "database"=>"db/app_development", "host"=>"127.0.0.1", "password"=>nil}, charset: utf8, collation: utf8_unicode_ci
我知道我做错了什么,但我不知道它是什么。我需要启动mysql服务器吗?
这是我运行mysqld_safe时的输出:
120111 20:35:39 mysqld_safe Logging to '/usr/local/var/mysql/Matthew-Bermans-MacBook-Air.local.err'.
120111 20:35:39 mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql
120111 20:35:41 mysqld_safe mysqld from pid file /usr/local/var/mysql/Matthew-Bermans-MacBook-Air.local.pid ended
答案 0 :(得分:3)
尝试:
development:
adapter: mysql
database: app_development
username: root
password:
socket: /var/lib/mysql/mysql.sock
然后执行rake db:create
从rails创建它
或
在mysql做create database db_name
然后上面的:development
代码将允许您使用它。
更新:Matthew首先需要在他的(Mac)机器上安装mySQL 我指示他http://dev.mysql.com/downloads/mysql/
答案 1 :(得分:1)
在您的database.yml
中明确提及您的port: 3306
如果不起作用则执行
netstat -tupln
并检查MySQL是否正在侦听端口3306
答案 2 :(得分:0)
首先,尝试执行以下命令检查是否从命令提示符(没有Ruby on Rails)连接到mysql。
mysql -u root
如果无法连接您可能指定的密码。您需要记住它或重新安装MySQL。如果可以,请创建数据库:
create database app_development;
最后但并非最不重要,从database.yml中删除前缀'db /'。您不需要完整的路径:
database: app_development
希望有所帮助!
答案 3 :(得分:0)
如果您不介意使用哪种数据库软件(我不认为您指定是否需要MySQL或只是想让repo工作),您可以尝试使用SQLite3。 SQLite3不运行服务器或使用端口,因此您可能更容易进行设置。
尝试模仿rails default database.yml,它看起来像:
# SQLite version 3.x
# gem install sqlite3
#
# Ensure the SQLite 3 gem is defined in your Gemfile
# gem 'sqlite3'
development:
adapter: sqlite3
database: db/development.sqlite3
pool: 5
timeout: 5000
然后将gem 'sqlite3'
添加到您的Gemfile并运行bundle install
希望这有帮助!
答案 4 :(得分:0)
也可以通过更改MySQL版本来解决。与使用 MySQL 5.5 开发但在我的mac中安装的版本的某个项目有同样的问题是MySQL 5.7所以我不得不降级我的版本,它对我有用。