我在osx上运行一些rails应用程序,但是当我启动rails generate
命令类型时,我收到此消息:
/$root/vendor/bundle/ruby/2.0.0/gems/mysql2-0.3.11/lib/mysql2/client.rb:44:in `connect': Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (Mysql2::Error)
有关信息,我的mamp服务器正在运行,并且连接必须通过/Applications/MAMP/Library/bin/mysql
,所以我通过设置我的bash配置文件来别名:
alias mysql="/Applications/MAMP/Library/bin/mysql"
是的,奇怪的是,我的rails s
命令工作正常,因此我的应用程序可以在这种情况下连接到apache服务器
答案 0 :(得分:4)
所以诀窍就是/tmp/mysql.sock
到/Applications/MAMP/tmp/mysql/mysql.sock
ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock
答案 1 :(得分:1)
错误表示“mysql未启动/运行”。根据您的描述,看起来像指向别名的新位置没有mysql或者它的mysql没有启动。
在新位置使用正确的参数查看my.cnf文件: /应用/ MAMP /库/ bin中/ MySQL的
另一个技巧是列出正在运行的进程并查找mysql。 另外,你确定“rails c”没有使用sqlite3 vs mysql吗?
更新:
*由@bfavaretto提供 MySQL my.cnf location on OS X?
By default, the OS X installation does not use a my.cnf, and MySQL just uses the default values. To set up your own my.cnf, you could just create a file straight in /etc.
OS X在/ usr / local / mysql / support-files /
中提供了示例配置文件