介绍
Ruby on Rails 使用 sqlite3 作为其默认数据库,在许多情况下效果很好,但可能不足以满足您的应用程序。 如果您的应用程序需要客户端/服务器 SQL 数据库(例如 PostgreSQL 或 MySQL)的可扩展性、集中化和控制(或任何其他功能),您将需要执行一些额外的步骤来启动它和运行。
本教程将向您展示如何在 Ubuntu 14.04 服务器上设置开发 Ruby on Rails 环境,该环境将允许您的应用程序使用 MySQL 数据库。 首先,我们将介绍如何安装 MySQL 和 MySQL 适配器 gem。 然后我们将向您展示如何创建一个使用 MySQL 作为其数据库服务器的 Rails 应用程序。
先决条件
本教程需要有一个工作的 Ruby on Rails 开发环境。 如果您还没有,您可以按照以下链接中的教程进行操作:如何在 Ubuntu 14.04 上使用 rbenv 安装 Ruby on Rails。
您还需要访问超级用户或 sudo
帐户,以便安装 MySQL 数据库软件。
准备就绪后,让我们安装 MySQL。
安装 MySQL
如果您还没有安装 MySQL,那么现在就安装。
首先,更新apt-get:
sudo apt-get update
然后安装 MySQL 及其开发库:
sudo apt-get install mysql-server mysql-client libmysqlclient-dev
在安装过程中,您的服务器将要求您选择并确认 MySQL“root”用户的密码。
安装完成后,我们需要运行一些额外的命令来安全地设置我们的 MySQL 环境。 首先,我们需要告诉 MySQL 创建它的数据库目录结构,它将存储它的信息。 您可以通过键入以下内容来执行此操作:
sudo mysql_install_db
之后,我们想要运行一个简单的安全脚本,该脚本将删除一些危险的默认值并稍微锁定对我们数据库系统的访问。 通过运行启动交互式脚本:
sudo mysql_secure_installation
您将被要求输入您为 MySQL root 帐户设置的密码。 接下来,它会询问您是否要更改该密码。 如果您对当前密码感到满意,请在提示符处键入 n
。
对于其余的问题,您只需在每个提示符下按“ENTER”键即可接受默认值。 这将删除一些示例用户和数据库,禁用远程 root 登录,并加载这些新规则,以便 MySQL 立即尊重我们所做的更改。
MySQL 现在已安装,但我们仍需要安装 MySQL gem。
安装 MySQL Gem
在 Rails 应用程序可以连接到 MySQL 服务器之前,您需要安装 MySQL 适配器。 mysql2
gem 提供了这个功能。
作为 Rails 用户,安装 mysql2
gem,如下所示:
gem install mysql2
现在您的 Rails 应用程序可以使用 MySQL 数据库。
创建新的 Rails 应用程序
在您的主目录中创建一个新的 Rails 应用程序。 使用 -d mysql
选项将 MySQL 设置为数据库,并确保将突出显示的单词替换为您的应用程序名称:
cd ~ rails new appname -d mysql
然后进入应用程序的目录:
cd appname
下一步是配置应用程序的数据库连接。
配置数据库连接
如果您按照本教程中的 MySQL 安装说明进行操作,则可以为 MySQL 的 root 用户设置密码。 MySQL root 登录将用于创建应用程序的测试和开发数据库。
在您喜欢的文本编辑器中打开应用程序的数据库配置文件。 我们将使用 vi:
vi config/database.yml
在 default
部分下,找到显示“密码:”的行并将密码添加到它的末尾。 它应该看起来像这样(用您的 MySQL 根密码替换突出显示的部分):
password: mysql_root_password
保存并退出。
创建应用程序数据库
使用以下 rake 命令创建应用程序的 development
和 test
数据库:
rake db:create
这将在您的 MySQL 服务器中创建两个数据库。 例如,如果您的应用程序的名称是“appname”,它将创建名为“appname_development”和“appname_test”的数据库。
如果您收到错误提示“用户'root'@'localhost'的访问被拒绝(使用密码:YES)请提供您的MySQL安装的root密码”,请按Ctrl-c
退出。 然后重新访问上一小节(配置数据库连接)以确保 database.yml
中的密码正确。 确保密码正确后,再次尝试创建应用程序数据库。
测试配置
测试您的应用程序是否能够使用 MySQL 数据库的最简单方法是尝试运行它。
例如,要运行开发环境(默认),请使用以下命令:
rails server
这将在 localhost 的 3000 端口上启动 Rails 应用程序。
如果您的 Rails 应用程序位于远程服务器上,并且您想通过 Web 浏览器访问它,一种简单的方法是将其绑定到服务器的公共 IP 地址。 首先,查找服务器的公共 IP 地址,然后将其与 rails server
命令一起使用,如下所示:
rails server --binding=server_public_IP
现在您应该可以通过服务器的公共 IP 地址在端口 3000 上在 Web 浏览器中访问您的 Rails 应用程序:
http://server_public_IP:3000
如果您看到“Welcome onboard” Ruby on Rails 页面,则表明您的应用程序已正确配置并连接到 MySQL 数据库。
结论
您现在已准备好在 Ubuntu 14.04 上开始开发您的 Ruby on Rails 应用程序,使用 MySQL 作为数据库!
祝你好运!