【问题标题】:app can't connect to local MySQL - osx应用程序无法连接到本地 MySQL - osx
【发布时间】:2013-06-24 18:30:36
【问题描述】:

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

【问题讨论】:

    标签: mysql ruby-on-rails macos sockets


    【解决方案1】:

    所以诀窍就是简单地将/tmp/mysql.sock 转换为/Applications/MAMP/tmp/mysql/mysql.sock

    ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock
    

    【讨论】:

      【解决方案2】:

      错误表示“mysql未启动/运行”。从您的描述来看,指向别名的新位置似乎没有 mysql 或者它的 mysql 没有启动。

      在新位置查看带有正确参数的 my.cnf 文件: /Applications/MAMP/Library/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/ 提供了示例配置文件

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

      【讨论】:

      • 我的 rails 应用程序肯定使用 mysql。顺便说一句,我找不到任何 my.cnf /Applications/MAMP/MAMP.app/Contents/Resources (我不太习惯 osx,来自 ubuntu 河流......)我能找到它吗?
      • 查看更新的答案。我认为它只是缺少指向您正在工作的 mysql 的正确位置/指针
      • 谢谢,但在你指出的帖子中,这个文件夹 /usr/local/mysql/support-files/ 丢失了......
      • 顺便说一句,当我禁止别名 mysql="/Applications/MAMP/Library/bin/mysql" 时,rails s 不起作用。因此,使用此别名似乎可以工作,但仅适用于 rails s
      • oauh 真的很奇怪,如果我关闭 apache 服务器并运行 rails s,那么它会通过无法通过套接字连接到本地 MySQL 服务器'/Applications/MAMP/tmp/mysql /mysql.sock',所以它是正确的,因为它可以识别别名,但是当我启动 rails generate scaffold 时,我得到 Can't connect to local MySQL server through socket '/tmp/mysql.sock' ...
      猜你喜欢
      • 2015-12-01
      • 1970-01-01
      • 2011-11-28
      • 2015-05-02
      • 2016-02-21
      • 1970-01-01
      • 2023-03-27
      • 2013-07-20
      相关资源
      最近更新 更多