我是全新的Web开发和RoR - 超级好评! - 我正在通过lynda.com参加在线RoR课程。兴奋加入StackOverflow社区,并会真正感谢一些障碍的帮助。无法通过套接字'/tmp/mysql.sock'连接到本地MySQL服务器
MySQL和本地主机都工作正常了好几个星期,我建立了我的基本的应用程序,并成功地进行了一些迁移,但今天我得到这个MySQL的错误,当我启动我的Rails服务器和视图上http://localhost:3000/在我的浏览器:
Mysql2 ::错误(无法通过套接字“/tmp/mysql.sock”连接到本地MySQL服务器(2)):
我不认为我已经改变了任何有关在我的环境,所以我想知道是否需要更新宝石或类似的东西?
我已经在Google和StackOverflow上搜寻了几个小时了,但仍然无法弄清楚这里出了什么问题,以及如何解决它。其他解决方案似乎与新设置有关,而不是难以解决的工作设置。
这里的一些背景:
从我的config/database.yml中:
development:
adapter: mysql2
encoding: utf8
reconnect: false
database: simple_cms_development
pool: 5
username: simple_cms
password: XXXXXXXXX
socket: /tmp/mysql.sock
我从几个星期前保存一个命令行的时候MySQL和本地主机都工作正常:
Last login: Mon Aug 15 21:34:23 on ttys000
sdemessieres$ cd sites/simple_cms
sdemessieres$ pwd
/Users/sdemessieres/sites/simple_cms
sdemessieres$ rails server
=> Booting WEBrick
=> Rails 3.0.7 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2011-08-22 22:28:01] INFO WEBrick 1.3.1
[2011-08-22 22:28:01] INFO ruby 1.8.7 (2009-06-12) [universal-darwin10.0]
[2011-08-22 22:28:01] INFO WEBrick::HTTPServer#start: pid=66952 port=3000
Started GET "/" for 127.0.0.1 at Mon Aug 22 22:28:20 -0400 2011
Processing by DemoController#index as HTML
etc ... (从这里工作得很好)
但后来我今天尝试了相同的命令,并收到错误消息:
Last login: Mon Sep 5 12:13:22 on ttys000
sdemessieres$ cd sites/simple_cms
sdemessieres$ pwd
/Users/sdemessieres/sites/simple_cms
sdemessieres$ rails server
=> Booting WEBrick
=> Rails 3.0.7 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2011-09-05 12:33:09] INFO WEBrick 1.3.1
[2011-09-05 12:33:09] INFO ruby 1.8.7 (2009-06-12) [universal-darwin10.0]
[2011-09-05 12:33:09] INFO WEBrick::HTTPServer#start: pid=11027 port=3000
Started GET "/" for 127.0.0.1 at Mon Sep 05 12:33:41 -0400 2011
Mysql2::Error (Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)):
Rendered /Library/Ruby/Gems/1.8/gems/actionpack-3.0.7/lib/action_dispatch/middleware/templates/rescues/_trace.erb (0.8ms)
Rendered /Library/Ruby/Gems/1.8/gems/actionpack-3.0.7/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (1.7ms)
Rendered /Library/Ruby/Gems/1.8/gems/actionpack-3.0.7/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (6.3ms)
于是我又回到了数据库的笔记从我的训练,并试图连接到MySQL从我的命令行其收到的工作,但不再:
sdemessieres$ pwd
/Users/sdemessieres/sites/simple_cms
sdemessieres$ which mysql
/usr/local/mysql/bin/mysql
sdemessieres$ mysql --version
mysql Ver 14.14 Distrib 5.5.13, for osx10.6 (i386) using readline 5.1
sdemessieres$ mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
sdemessieres$
One StackOverflow thread给了我这个线索,但它似乎只是强化了我的设置是正确的。
sdemessieres$ mysql_config |grep -- --socket
--socket [/tmp/mysql.sock]
正如我所说的,我是一个总的初学者所以任何帮助,将不胜感激,谢谢!
请编辑您自己的问题。不要回答你的自我作为编辑! – 2011-09-30 14:08:02
@ Mr.DD虽然我同意这个原则,但这也是这个问题的自我回答,我认为这个问题是“有效”的。但是,在这种情况下,我只是简单地删除问题。 – Romain
我不会删除这个问题。对于其他可能意识到如果他们等待一会再运行命令的人来说,这个答案可能会有帮助。 – Aspen