dockerを使用したrailsのアプリをAWSにデプロイしている際に下記のエラーが発生しました。
行った工程としてはデータベースを作成する為、ターミナルに下記のコマンド入力しました
[user名@ip-xx-x-x-xx アプリ名]$ docker-compose run web rails db:create RAILS_ENV=production
(入力したのは$より後ろのコマンド)
デプロイ 参考記事
https://qiita.com/mylevel/items/c960c903e7bc6f684a44
エラー文 Greetings from Amazon Web Services, Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) Couldn't create 'myapp_production' database. Please check your configuration. rails aborted! Mysql2::Error::ConnectionError: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
- エラー原因1
エラー原因として、ソケットがないと思われる為、config/detabase.yml
にsocket: /var/run/mysqld/mysqld.sock
を追記したが直らなかった。
config/detabase.yml production: <<: *default host: <%= Rails.application.credentials.rds[:host] %> database: <%= Rails.application.credentials.rds[:database] %> username: <%= Rails.application.credentials.rds[:username] %> password: <%= Rails.application.credentials.rds[:password] %> socket: /var/run/mysqld/mysqld.sock
- エラー原因2
mysqlに繋がら可能性があると判断したので、mysql -u root -pmysql
でmysqlに接続できるから確認しました。問題なくmysqlに接続する事はできました。
.
- エラー原因3
そもそもフォルダーがないと思い,[user名@ip-xx-x-x-xx アプリ名]$ touch /var/run/mysqld/mysqld.sock
このコマンドをターミナルに入力したが、下記のエラーによりフォルダーは作成できなかった。
`touch: /var/run/mysqld/mysqld.sock' `に touch できません: No such file or directory`
このコマンドを入力するとgrep mysql.sock /etc/my.cnf
と下記のコードが表示される事は確認しております!
socket=/var/lib/mysql/mysql.sock
色々と調べましたが、全くできない状態です。
もしわかる方が見えましたら、ご教授のほどよろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/03 03:19
2020/07/03 03:22