2012-01-12 245 views
4

我想克隆一个repo并在本地机器上运行它。我没有创建数据库,我试图手动创建我的database.yml文件(我第一次这样做)。我不太确定自己在做什么,并不断收到有关连接到MySql服务器的错误。这是我的database.yml文件:'127.0.0.1'无法连接到MySQL服务器

development: 
    adapter: mysql 
    host: 127.0.0.1 
    database: db/app_development 
    username: root 
    password: 

我也尝试过的,而不是127.0.0.1本地主机,试图通过这样做来创建数据库时,既给我的错误“捆绑高管耙分贝:创建” ......我得到这个错误:

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

您确认这些信息是正确的吗? (您可以向我们展示您成功连接到数据库的终端会话吗?) – 2012-01-12 04:23:22

+0

您可以通过运行mysql -uroot?直接在您的终端上连接到MySQL。也请尝试使用“localhost”而不是127.0.0.1 – 2012-01-12 04:27:21

+0

从终端尝试mysqld_safe或sudo mysqld_safe。你的数据库没有运行。 – 2012-01-12 04:28:25

回答

3

尝试:

development: 
    adapter: mysql 
    database: app_development 
    username: root 
    password: 
    socket: /var/lib/mysql/mysql.sock 

然后做你的rake db:create从轨道创建它。

in mysql do create database db_name
然后上面的代码为:development会让你使用它。

更新:马修首先需要在他的(Mac)机器上安装mySQL。
我指示他到http://dev.mysql.com/downloads/mysql/

+0

不,我得到同样的错误:无法通过套接字'/tmp/mysql.sock'连接到本地MySQL服务器(2) 我怎么知道要放什么数据库:字段没有实际创建数据库?基本上,我只是克隆这个回购,并试图让它工作。我没有创建数据库,我没有正确的database.yml设置。什么是一步一步的过程,让这个工作?我捆绑安装的一切,它通过罚款。 – 2012-01-12 04:45:15

+0

我完全按照您的说明制作了database.yml文件。然后我做了捆绑exec rake db:create(需要bundle exec),但是我得到这个错误:无法通过套接字'/tmp/mysql.sock'(2)连接到本地MySQL服务器。我不知道如何做到这一点“在MySQL” – 2012-01-12 04:54:01

+0

添加套接字:/var/lib/mysql/mysql.sock到yml文件,并得到这个错误:无法通过套接字'/ var/lib连接到本地MySQL服务器/mysql/mysql.sock'(2) – 2012-01-12 04:55:22

0

首先,尝试执行以下命令,检查您是否从命令提示符(不带Ruby on Rails)连接到mysql。

mysql -u root 

如果不能连接你可能指定的密码。您需要记住它或重新安装MySQL。如果可以,那么创建数据库:

create database app_development; 

最后,但并非最不重要的,去掉前缀“DB /”从database.yml的。你不需要一个完整的路径:

database: app_development 

希望帮助!

1

明确提到你port: 3306在你的database.yml

如果不工作,那么执行

netstat -tupln 

,并检查如果MySQL监听端口3306或不

0

如果你不不介意你使用的数据库软件(我不认为你指定了你是否需要MySQL或者只是想让repo工作),你可以尝试使用SQLite3。 SQLite3不运行服务器或使用端口,因此您可能更容易进行设置。

尝试模仿rails默认数据库。阳明海运,它看起来像:

# 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

希望这有助于!

0

它也可以通过更改MySQL版本来解决。与一些使用MySQL 5.5开发的项目相同的问题,但在我的Mac中安装的版本是MySQL 5.7,所以我不得不降级我的版本,它为我工作。

相关问题