0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Railsでデータベースを設定する(MySQL)*メモVer.

Posted at

railsでデータベースを設定する方法

MySQL接続用アカウント作成 → アカウントに権限を付与 → database.ymlの編集 → データベースの作成 → サーバー起動

Railsのバージョンは

~ % rails -v
  Rails 5.2.6

~ % bundle -v
  Bundler version 1.17.2

今回は、myappディレクトリを作成し、その中でapiアプリケーションを作成しています。

~ % cd myapp

myapp % rails new api --database=mysql --skip-bundle --api
	 
myapp % cd api

api % bundle install

###MySQL接続用アカウント作成

api % mysql -u root -p

パスワードを入力

Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.35 Homebrew

MySQL接続用のユーザー名・パスワードを指定しアカウントを作成

mysql> create user 'ユーザー名'@'localhost' identified by ‘パスワード’;

アカウントが作成されているか確認

mysql> select User,Host from mysql.user;
+---------------+-----------+
| User          | Host      |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys     | localhost |
| root          | localhost |
| {ユーザー名}    | localhost |
+---------------+-----------+
4 rows in set (0.01 sec)

###アカウントに権限を付与

mysql> grant all on *.* to 'ユーザー名'@'localhost';
Query OK, 0 rows affected (0.01 sec)

###database.ymlの編集
設定したユーザー名・パスワードを項目に入力

config/database.yml
# MySQL. Versions 5.1.10 and up are supported.
#
# Install the MySQL driver
#   gem install mysql2
#
# Ensure the MySQL gem is defined in your Gemfile
#   gem 'mysql2'
#
# And be sure to use new-style password hashing:
#   https://dev.mysql.com/doc/refman/5.7/en/password-hashing.html
#
default: &default
  adapter: mysql2
  encoding: utf8
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: {ユーザー名}
  password: {パスワード}
  host: localhost

development:
  <<: *default
  database: api_development

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  <<: *default
  database: api_test

# As with config/secrets.yml, you never want to store sensitive information,
# like your database password, in your source code. If your source code is
# ever seen by anyone, they now have access to your database.
#
# Instead, provide the password as a unix environment variable when you boot
# the app. Read http://guides.rubyonrails.org/configuring.html#configuring-a-database
# for a full rundown on how to provide these environment variables in a
# production deployment.
#
# On Heroku and other platform providers, you may have a full connection URL
# available as an environment variable. For example:
#
#   DATABASE_URL="mysql2://myuser:mypass@localhost/somedatabase"
#
# You can use this database configuration with:
#
#   production:
#     url: <%= ENV['DATABASE_URL'] %>
#
production:
  <<: *default
  database: api_production
  username: api
  password: <%= ENV['API_DATABASE_PASSWORD'] %>

###データベース作成

api % rails db:create
Created database 'api_development'
Created database ‘api_test'

###Railsサーバー起動

rails s

サーバーを起動した際、
Error: (<unknown>): could not find expected ':' while scanning a simple key at line 17 column 3>
あるいは、
Error: (<unknown>): mapping values are not allowed in this context at line 22 column 11>
のようなエラー文が出た場合、database.yml内で編集した部分のインデントやスペースがズレている可能性があります。

起動できれば完了。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?