Rails:无法通过套接字“/var/run/mysqld/mysqld.sock”连接到本地 MySQL 服务器

Rails:无法通过套接字“/var/run/mysqld/mysqld.sock”连接到本地 MySQL 服务器

所以我有一个 Ruby on Rails 应用程序,我想在 Snow Leopard 上运行(正在开发中)。我已经在我的 Ubuntu 计算机上运行它,但现在我需要设置我的 Snow Leopard 环境。

最初,我安装了 MySQL 2.8.1 Ruby Gem 并遇到了这个问题:

uninitialized constant MysqlCompat::MysqlRes

但多亏了本教程我能够通过运行此命令并安装 Gem 的先前版本来解决此问题:

export ARCHFLAGS="-arch i386 -arch x86_64" ;sudo gem install --no-rdoc --no-ri -v=2.7 mysql -- --with-mysql-dir=/usr/local/mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config

现在我已经解决了该问题,但我遇到了另一个错误:

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

当我尝试运行时rake db:migrate以及服务器运行时都会发生这种情况。我该如何解决这个问题?

答案1

您遇到此错误的原因是因为database.yml您的 rails 应用程序的配置文件指定了套接字的位置。

development:
  adapter: mysql
  encoding: utf8
  reconnect: false
  database: myapp_development
  pool: 5
  username: root
  password:
  socket: /var/run/mysqld/mysqld.sock

由于您的 Ubuntu MySQL Socket 与 Snow Leopard MySQL Socket 位于不同的位置,如果您希望能够在不同的计算机之间共享相同的配置文件,则必须创建一个符号链接。

sudo ln -s /tmp/mysql.sock /var/run/mysqld/mysqld.sock

注意:我必须先创建mysqld目录,然后才能在其中放置符号链接。

答案2

检查/tmp/mysql.sock。

相关内容