rails s コマンドを入力してhttp://localhost:3000にアクセスしたらTypeErrorが出たため、相手に自分のmysqlのrootパスワードが知られないように自分のmysqlのrootパスワードを設定して、データベースを作成する方法を教えてください。
rubyのバージョンは3.0.0、 mysqlのバージョンは5.7、 mysql2のバージョンは0.4.10、
bundlerバージョンは2.2.3、 homebrewバージョン3.0.10です。
使用機器macOS Big Sur バージョン11.2.2です。使用中のテキストエディタはAtomです。
tasklistというアプリを作っておる最中なのですが、
rails s コマンドを入力してhttp://localhost:3000
にアクセスしたらTypeErrorが出ました。このエラーの詳細は以下の画像の通りです。
TypeError no implicit conversion of Hash into String
というエラー内容から、
該当する27行目のソースコードを
Hash(ハッシュ)からString(文字列)への暗黙の変換はできないということが分かったため、
config/database.yml
ファイルに
password: <%= ENV['RAILS_DATABASE_PASSWORD'] %>
と設定致した後に、ターミナルに
$ vim .bash_profile
と打ち込んで、enterキーを押して画面が切り替わったら、iキーを押してインサートモードにて
export RAILS_DATABASE_PASSWORD='自分のMySQLのrootパスワード'
を入力し、escキーを押してインサートモードを終了させて、「:wq」と入力して保存して終了させて、ターミナルに
$ source ~/.bash_profile
と入力致しました。その後に、ターミナルに
$ rails db:create
と入力致したところ、下記のエラーが出ました。
$ rails db:create
no implicit conversion of Hash into String
Couldn't create database for {"adapter"=>"mysql2", "encoding"=>"utf8", "pool"=>5, "username"=>"root", "password"=>nil, "socket"=>"/tmp/mysql.sock", "database"=>"tasklist
_development"}
rails aborted!
TypeError: no implicit conversion of Hash into String
ここで何点か質問なのですが、
まず、相手に自分のmysqlのrootパスワードを知られないように自分のmysqlのrootパスワードを設定して、データベース(tasklist_development
、tasklist_test
)を作成する方法を教えていただいてもよろしいでしょうか。
最後に、もしもこのデータベース(tasklist_development
、tasklist_test
)が作成されたら、
TypeError no implicit conversion of Hash into String
というエラーを解決できて、
rails s コマンドを入力してhttp://localhost:3000
にアクセスして、ブラウザ上で以下の画像が表示されるのでしょうか。