##はじめまして
みなさんはじめまして。本日やっと問題解決し、雄叫びをあげましたkyonです。
備忘録として初投稿いたします。
どうぞよろしくお願いいたします。
##環境
CentOS Linux release 8.1.1911 (Core)
mysql Ver 8.0.17 for Linux on x86_64 (Source distribution)
Visual Studio Code バージョン: 1.43.1
##ー
タイトルにもありますとおりlinuxでdirenvを使いたく、以下URLを参考とさせていただき、
参考URL Linuxでdirenvを使う
.envrcファイルを作成し、Railsプロジェクトの /binディレクトリにパスを通すところまですんなりとできましたが、その後ずっとコイツと戦っておりました。
Access denied for user 'ENV['MYSQL_DATABASE']'@'localhost' (using password: YES)
多分一週間くらい戦ったと思います。
調べれば直接パスワードをdatabase.ymlへ記述すればいいことは知っていましたが、先々のことを考えた結果direnvを使うことにしました。
が、しかしどうしても分からず。。
export 'DATABASE_USERNAME'="root"
export 'DATABASE_PASSWORD'="password" ←mysqlのパスワード
。。。。。?
default: &default
adapter: mysql2
encoding: utf8mb4
username: ENV['DATABASE_USERNAME']
password: ENV['DATABASE_PASSW0RD']
。。。。。。。。??
ただ調べていくうちに.envrcファイルは合ってそうだな、と思っていてdatabase.ymlのusernameとpasswordの書き方がずっと不明でした。
今日ふとdatabase.yml の管理方法いろいろ
こちらのURLに辿り着き、問題解決したと言うことです。
##問題解決
database.yml には <%= ... %> で Ruby コードを埋め込むことができます。
そしてdatabase.ymlを以下のように記述しました。
default: &default
adapter: mysql2
encoding: utf8mb4
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: <%= ENV['DATABASE_USERNAME'] %>
password: <%= ENV['DATABASE_PASSWORD'] %>
埋め込んでなかったんですね。
お恥ずかしい。
駄文ですが最後まで読んでいただき、ありがとうございました。
これを機に投稿していきたいと思います。
kyonでした。