所以我有一个 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。