序章

Ruby on Railsはデフォルトのデータベースとしてsqlite3を使用します。これは多くの場合うまく機能しますが、アプリケーションには不十分な場合があります。 アプリケーションで、PostgreSQLやMySQLなどのクライアント/サーバーSQLデータベースのスケーラビリティ、集中化、および制御(またはその他の機能)が必要な場合は、アプリケーションを起動するためにいくつかの追加手順を実行する必要があります。と実行しています。

このチュートリアルでは、Ubuntu14.04サーバー上でアプリケーションがMySQLデータベースを使用できるようにする開発用RubyonRails環境をセットアップする方法を示します。 最初に、MySQLとMySQLアダプタgemをインストールする方法について説明します。 次に、MySQLをデータベースサーバーとして使用するRailsアプリケーションを作成する方法を示します。

前提条件

このチュートリアルでは、RubyonRails開発環境が機能している必要があります。 まだお持ちでない場合は、次のリンクのチュートリアルに従ってください: Ubuntu14.04でrbenvを使用してRubyonRailsをインストールする方法。

また、MySQLデータベースソフトウェアをインストールできるように、スーパーユーザーまたはsudoアカウントにアクセスできる必要があります。

準備ができたら、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ルートアカウントに設定したパスワードを入力するように求められます。 次に、そのパスワードを変更するかどうかを尋ねられます。 現在のパスワードに問題がなければ、プロンプトでnと入力します。

残りの質問については、各プロンプトで「ENTER」キーを押すだけで、デフォルト値を受け入れることができます。 これにより、一部のサンプルユーザーとデータベースが削除され、リモートルートログインが無効になり、これらの新しいルールが読み込まれるため、MySQLは行った変更をすぐに尊重します。

これでMySQLがインストールされましたが、MySQLgemをインストールする必要があります。

MySQLGemをインストールします

RailsアプリケーションがMySQLサーバーに接続する前に、MySQLアダプターをインストールする必要があります。 mysql2gemはこの機能を提供します。

Railsユーザーとして、次のようにmysql2gemをインストールします。

gem install mysql2

これで、RailsアプリケーションでMySQLデータベースを使用できるようになりました。

新しいRailsアプリケーションを作成する

ホームディレクトリに新しいRailsアプリケーションを作成します。 -d mysqlオプションを使用して、MySQLをデータベースとして設定し、強調表示された単語をアプリケーション名に置き換えてください。

cd ~
rails new appname -d mysql

次に、アプリケーションのディレクトリに移動します。

cd appname

次のステップは、アプリケーションのデータベース接続を構成することです。

データベース接続の構成

このチュートリアルのMySQLのインストール手順に従った場合は、MySQLのrootユーザーのパスワードを設定します。 MySQLルートログインは、アプリケーションのテストおよび開発データベースを作成するために使用されます。

アプリケーションのデータベース構成ファイルをお気に入りのテキストエディターで開きます。 viを使用します:

vi config/database.yml

defaultセクションで、「password:」という行を見つけて、その最後にパスワードを追加します。 次のようになります(強調表示された部分をMySQLルートパスワードに置き換えます)。

password: mysql_root_password

保存して終了。

アプリケーションデータベースを作成する

次のrakeコマンドを使用して、アプリケーションのdevelopmentおよびtestデータベースを作成します。

rake db:create

これにより、MySQLサーバーに2つのデータベースが作成されます。 たとえば、アプリケーションの名前が「appname」の場合、「appname_development」および「appname_test」というデータベースが作成されます。

「ユーザー’root’@’localhost’のアクセスが拒否されました(パスワードを使用:YES)MySQLインストールのrootパスワードを入力してください」というエラーが表示された場合は、Ctrl-cを押して終了します。 次に、前のサブセクション(データベース接続の構成)に戻って、database.ymlのパスワードが正しいことを確認します。 パスワードが正しいことを確認した後、アプリケーションデータベースの作成を再試行してください。

テスト構成

アプリケーションがMySQLデータベースを使用できることをテストする最も簡単な方法は、それを実行することです。

たとえば、開発環境(デフォルト)を実行するには、次のコマンドを使用します。

rails server

これにより、ローカルホストのポート3000でRailsアプリケーションが起動します。

Railsアプリケーションがリモートサーバー上にあり、Webブラウザーを介してアクセスしたい場合、簡単な方法は、サーバーのパブリックIPアドレスにバインドすることです。 まず、サーバーのパブリックIPアドレスを検索し、次のようにrails serverコマンドで使用します。

rails server --binding=server_public_IP

これで、ポート3000のサーバーのパブリックIPアドレスを介してWebブラウザーでRailsアプリケーションにアクセスできるようになります。

http://server_public_IP:3000

「Welcomeaboard」のRubyonRailsページが表示されている場合は、アプリケーションが適切に構成され、MySQLデータベースに接続されています。

結論

これで、Ubuntu 14.04で、データベースとしてMySQLを使用してRubyonRailsアプリケーションの開発を開始する準備が整いました。

幸運を!