【问题标题】:rake db:create with mysql on OS X 10.7 Lion failsrake db:create with mysql on OS X 10.7 Lion 失败
【发布时间】:2011-10-20 03:45:22
【问题描述】:

我正在尝试在全新的 OS X 10.7 安装上安装 rvm、mysql 和 rails。它们都单独正确安装,但我似乎无法让它们一起工作。

当我尝试命令 rake db:create 时,我收到以下错误:

db/test.sqlite3 already exists
db/test.sqlite3 already exists
rake aborted!
uninitialized constant Mysql::Error

Tasks: TOP => db:create
(See full trace by running task with --trace)
  • Mac OS X 10.7.0
  • rvm 1.6.32
  • Ruby 1.9.2
  • MySQL 5.1.5.15
  • Rails 3.0.9

我使用正确的说明安装了 mysql gem。我将此添加到 ~/.bash_profile:

export DYLD_LIBRARY_PATH="/usr/local/mysql/lib:$DYLD_LIBRARY_PATH"

我做了这个命令:

env ARCHFLAGS="-arch x86_64" sudo gem install mysql -v='2.8.1' -- --with-mysql-dir=/usr/local/mysql --with-mysql-lib=/usr/local/mysql/lib --with-mysql-include=/usr/local/mysql/include --with-mysql-config=/usr/local/mysql/bin/mysql_config

当我执行gem list 时,我可以看到安装了 mysql gem 的 2.8.1 版本。我的想法现在有点用完了,有什么建议吗?谢谢。

数据库.yml:

development:
  adapter: mysql
  encoding: utf8
  reconnect: false
  database: terra_development
  pool: 5
  username: root
  password: root
  socket: /tmp/mysql.sock

【问题讨论】:

  • 在您的第一个代码块中,它似乎在使用 sqlite 进行思考。您能否发布您的 database.yml-password 和 Gemfile 的开发部分。

标签: mysql ruby-on-rails ruby macos gem


【解决方案1】:

感谢您的意见,我设法解决了这个问题。问题是 rails 无法使用提供的凭据连接到服务器。因为出于某种原因,没有任何 MySQL 用户,甚至没有 root 用户。我运行了这个命令:

/usr/local/mysql/bin/mysqladmin -u root password "root"

其中创建了一个root用户,让我连接到服务器并修复问题!

【讨论】:

  • 这解决了我在 OSX 上使用推荐的brew install mysql 安装 mysql 后的问题。
【解决方案2】:

创建测试数据库时出现 sqlite 错误。您显示了 database.yml 的开发部分,因此您的 database.yml 的测试部分指定了 sqlite,或者您没有指定测试数据库。

【讨论】:

  • sqlite 错误不是问题。这是关于 mysql 的。
  • 您遇到的问题与sqlite错误直接相关。 Rake 正在中止,因为您的测试数据库已经存在。删除db/sqlite3 或修复你的database.yml 的测试部分。如果它仍然不起作用,请使用您当时遇到的错误编辑您的帖子。
猜你喜欢
  • 1970-01-01
  • 2012-07-11
  • 1970-01-01
  • 2011-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多