在rails中使用mysql时我的数据库位于何处?

jay*_*jay 6 mysql ruby-on-rails ruby-on-rails-3

我正在学习使用mysql作为rails应用程序,我终于能够启动并运行我的应用程序(现在有点).我设法用homebrew安装mysql,然后填充我的database.yml文件并运行rake db:create.现在我可以运行我的rails服务器并导航到我的应用程序的主页(之前我没有数据库错误).

那么,现在似乎创建了数据库,它位于何处?我很想知道,因为我之前使用过sqlite3并且能够在app/db/development.db中看到我的开发数据库文件

我只想更详细地了解mysql如何在rails上下文中工作.

Mic*_*ski 6

当使用MySQL或其他基于服务器的完整RDBMS系统而不是SQLite时,您将不会使用您的应用程序创建数据库文件.相反,数据库存储在服务器运行的MySQL实例中.

从技术上讲,存在与MySQL数据目录中存储的表相关联的文件,但它们的位置与您的应用程序无关,实际上甚至可能不被您的常规shell用户帐户读取.通过使用客户端/服务器RDBMS而不是像SQLite这样的基于文件的RDBMS,您可以有效地将与数据库存储相关的所有职责(*)委派给RDBMS,从而将数据存储与应用程序分离.

如果使用客户端连接到主机的MySQL服务器,您将看到列出的rails应用程序数据库

# Connect from the command line
$ mysql -usomeusername -p

# Execute  MySQL commands
mysql> SHOW DATABASES;
Run Code Online (Sandbox Code Playgroud)

将输出如下:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| demo               |
| demo_development   |
| demo_test          |
| mysql              |
| test               |
+--------------------+
7 rows in set (0.13 sec)
Run Code Online (Sandbox Code Playgroud)

(*)注 - 我指的是数据模型存储,而不是您的应用程序可能使用的任何其他基于文件的存储,它由Rails和您的应用程序代码管理.

  • 请参阅[this post](http://forums.mysql.com/read.php?10,2325,146615#msg-146615)您的命令行是否正确,特别是`-usomeusername`部分?字面意思是`-u`和`someusername`粘在一起. (2认同)