I have a standard Rails3 environment, RVM 1.2.9, Rails 3.0.5, Ruby 1.9.2p180, MySQL2 Gem 0.2.7, mysql-5.5.10-osx10.6-x86_64
Error I get when running rake db:migrate
to create database is:
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
config/database.yml has
development: adapter: mysql2 host: localhost username: root password: xxxx database: xxxx
sure it's something simple I'm missing.
It means either the MySQL server is not installed/running, or the file mysql. sock doesn't exist in /var/lib/mysql/ . There are a couple of solutions for this error. Then try to connect again.
Another possible solution to the >can't connect to local mysql server through socket> error message is to try and connect to the MySQL using the 127.0. 0.1 ip address instead of localhost. When you use localhost to connect to MySQL, the operating system uses the socket connector.
First, to find your socket file:
mysqladmin variables | grep socket
For me, this gives:
| socket | /tmp/mysql.sock |
Then, add a line to your config/database.yml
:
development: adapter: mysql2 host: localhost username: root password: xxxx database: xxxx socket: /tmp/mysql.sock
Found it!
Change host: localhost
in config/database.yml to host: 127.0.0.1
to make rails connect over TCP/IP instead of local socket.
development: adapter: mysql2 host: 127.0.0.1 username: root password: xxxx database: xxxx
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With