Matthew Berman
Matthew Berman

Reputation: 8631

Can't connect to MySQL server on '127.0.0.1'

I am trying to clone a repo and run it on my local machine. I don't have a DB created and I am trying to manually create my database.yml file (my first time doing this). I am not quite sure what i'm doing and keep getting errors about connecting to the MySql server. Here's my database.yml file:

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

I also tried localhost instead of 127.0.0.1, both give me errors when trying to create the db by doing 'bundle exec rake db:create' ...i get this error:

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

I know i'm doing something wrong but I can't quite figure out what it is. Do I need to start the mysql server or something?

This is the output when I run 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

Upvotes: 4

Views: 30256

Answers (5)

user5415898
user5415898

Reputation:

It can also be solved by changing MySQL version. Had the same issue with some project which was developed using MySQL 5.5 but installed version in my mac was MySQL 5.7 so I had to downgrade my version and it worked for me.

Upvotes: 0

ligfx
ligfx

Reputation: 456

If you don't mind what database software you use (I don't think you specified whether you needed MySQL or just wanted to get the repo to work), you might try using SQLite3 instead. SQLite3 doesn't run a server or use ports, so it might be easier for you to get setup.

Try imitating the rails default database.yml, which looks like:

# 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

Then add gem 'sqlite3' to your Gemfile and run bundle install

Hope this helps!

Upvotes: 0

VivekVarade123
VivekVarade123

Reputation: 3694

Explicitly mention your port: 3306 in your database.yml

If that doesn't work then executed

netstat -tupln

and check if MySQL is listening to port 3306 or not

Upvotes: 1

Michael Durrant
Michael Durrant

Reputation: 96484

Try:

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

Then do your rake db:create to create it from rails.
or
in mysql do create database db_name
and then the above code for :development will let you use it.

Update: Matthew first needs to get mySQL installed on his (Mac) machine.
I directed him to http://dev.mysql.com/downloads/mysql/

Upvotes: 3

alexs333
alexs333

Reputation: 12563

First of all, try executing the following to check if you have a connection to mysql from command prompt (without Ruby on Rails).

mysql -u root

If cannot connect you probably specified and password. You will need to either remember it or reinstall MySQL. If you can, then create your database:

create database app_development;

Last but no the least, remove prefix 'db/' from database.yml. You don't need a full path:

database: app_development

Hope that helps!

Upvotes: 0

Related Questions