1

我在 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 服务器

4

2 回答 2

4

所以诀窍是简单/tmp/mysql.sock/Applications/MAMP/tmp/mysql/mysql.sock

ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock
于 2013-06-25T19:13:12.103 回答
1

该错误表明“mysql 未启动/运行”。根据您的描述,指向别名的新位置似乎没有 mysql 或其 mysql 未启动。

在新位置查看带有正确参数的 my.cnf 文件:/Applications/MAMP/Library/bin/mysql

另一个技巧是列出您正在运行的进程并查找 mysql。另外,您确定“rails c”没有使用sqlite3 vs mysql吗?

更新:

*感谢@bfavaretto MySQL my.cnf 在 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/ 提供了示例配置文件

更新:
看看这个: https ://stackoverflow.com/questions/4788381/getting-cant-connect-through-socket-tmp-mysql-when-installing-mysql-on-m

于 2013-06-24T18:42:22.113 回答