无法连接到'127.0.0.1'上的MySQL服务器

时间:2012-01-12 04:21:57

标签: mysql sql ruby-on-rails database macos

我正在尝试克隆一个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

5 个答案:

答案 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所以我不得不降级我的版本,它对我有用。