新人Railsエンジニアの備忘録

忘れやすい性格なので、ハマったところとか、日々学んだことをメモとして残します。他の方が参照したときに少しでも役立てれば、うれしいです。

【Rails4】DB作成でエラー(Gem Load Error is: Could not find a JavaScript runtime)

f:id:fairemygeneration:20181210142227j:plain:w300

RailsでDBを作成しようとした際にエラーが発生したときの対応をメモです。

【エラーメッセージ】

 Bundler::GemRequireError: There was an error while trying to load the gem 'uglifier'.
 Gem Load Error is: Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes.

【実行コマンド】
$ rake db:create RAILS_ENV=production

【原因】
gemのインストールが必要
※参考
https://qiita.com/azusanakano/items/771dc9919f347de061d7

【対処】
Gemfileでgem 'therubyracer'を追加
※参考
https://qiita.com/azusanakano/items/771dc9919f347de061d7

$ vi Gemfile

 gem 'therubyracer'

$ bundle install

上記の対応をしたところ、エラーメッセージが下記に変わる。

【エラーメッセージ】

 Access denied for user 'App'@'localhost' (using password: NO)Please provide the root password for your MySQL installation

【原因】
database.ymlにmysqlのrootのパスワードを記載する必要がある

【対処】
$ vi config/database.yml

 default: &default
   adapter: mysql2
   encoding: utf8
   pool: 5
   username: root
   password: <パスワード> #空欄になっているので、パスワードを追記する。
   socket: /var/lib/mysql/mysql.sock
.
.
 省略
.
.
 production:
   <<: *default
   database: App_production
   username: App #ここをコメントアウト
   password: <%= ENV['APP_DATABASE_PASSWORD'] %> #ここをコメントアウト

$ service mysqld restart

※環境情報
OS:Centos6.9
フレームワーク : Rails 4.2.9
Web:apache 2.2
DB : MySQL 5.6
ruby:2.3.7