開発者ドキュメント

CentOS7のRubyonRailsアプリケーションでMySQLを使用する方法

序章

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

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

前提条件

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

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

このガイドでは、SELinuxが無効になっていることも前提としています。

準備ができたら、MySQLをインストールしましょう。

MySQLをインストールする

MySQLをまだインストールしていない場合は、今すぐインストールしましょう。 CentOSは、MySQLのドロップイン代替としてMariaDBを使用します。

MySQLとその開発ライブラリをインストールします。

sudo yum install mariadb-server mariadb-devel

インストールが完了したら、次のコマンドでMySQLを起動する必要があります。

sudo systemctl start mariadb

MySQLデータベースが実行されているので、いくつかの危険なデフォルトを削除し、データベースシステムへのアクセスを少しロックダウンする簡単なセキュリティスクリプトを実行したいと思います。 次のコマンドを実行して、インタラクティブスクリプトを開始します。

sudo mysql_secure_installation

プロンプトで、現在のルートパスワードの入力を求められます。 MySQLをインストールしたばかりなので、MySQLがない可能性が高いので、Enterキーを押して空白のままにします。 次に、rootパスワードを設定するかどうかを尋ねるプロンプトが表示されます。 さあ、ヒット Enter、パスワードを設定します。 残りの質問については、単に Enter 各プロンプトをキー入力して、デフォルト値を受け入れます。 これにより、一部のサンプルユーザーとデータベースが削除され、リモートルートログインが無効になり、これらの新しいルールが読み込まれるため、MySQLは行った変更をすぐに尊重します。

最後に、MariaDBを起動時に開始できるようにします。 これを行うには、次のコマンドを使用します。

sudo systemctl enable mariadb.service

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

MySQLGemをインストールします

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

Railsユーザーとして、 mysql2 このような宝石:

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

保存して終了。

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

アプリケーションを作成します developmenttest このrakeコマンドを使用したデータベース:

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データベースに接続されています。

結論

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

幸運を!

モバイルバージョンを終了