Reputation: 8631
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
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
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
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
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
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