やろうとしている事
Ruby on Rails で作ったアプリをAWSでデプロイする過程で、DBはMySQLで、1つのEC2上にアプリと一緒にDBを作ろうとしています。
起きている問題
EC2上にUnicorn、Nginx、MySQLを入れました。
本番環境用のDBを作成しようとするとエラーが発生。
実際のエラー文
$ rails db:create RAILS_ENV=production
をすると、
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) Couldn't create 'tempo_production' database. Please check your configuration. rails aborted! Mysql2::Error::ConnectionError: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) /var/www/rails/tempo/bin/rails:9:in `<top (required)>' /var/www/rails/tempo/bin/spring:15:in `<top (required)>' bin/rails:3:in `load' bin/rails:3:in `<main>' Tasks: TOP => db:create (See full trace by running task with --trace)
というエラー文が返ってきます。
試した事
MySQLの停止と起動。
$ sudo service mysqld stop $ sudo service mysqld start Redirecting to /bin/systemctl start mysqld.service Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
というようなエラー文が返ってきました。
エラー文にある
$ systemctl status mysqld.service を実行すると
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: failed (Result: exit-code) since 火 2021-04-20 13:06:49 UTC; 28s ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 7921 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS (code=exited, status=1/FAILURE) Process: 7898 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) Main PID: 7921 (code=exited, status=1/FAILURE) Status: "Server startup in progress" Error: 13 (Permission denied)
と返ってきて、ここら辺のエラー文の意味がわかりません。。
/var/log/mysqld.logの中を見てみたところ下記が。
2021-04-20T13:06:49.543528Z 0 [Warning] [MY-010091] [Server] Can't create test file /var/lib/mysql/mysqld_tmp_file_case_insensitive_test.lower-test 2021-04-20T13:06:49.543541Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /var/lib/mysql/ is case insensitive 2021-04-20T13:06:49.544252Z 0 [ERROR] [MY-010846] [Server] MYSQL_BIN_LOG::open_purge_index_file failed to open register file. 2021-04-20T13:06:49.544313Z 0 [ERROR] [MY-010817] [Server] MYSQL_BIN_LOG::open_index_file failed to sync the index file. 2021-04-20T13:06:49.544817Z 0 [ERROR] [MY-010119] [Server] Aborting 2021-04-20T13:06:49.544993Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.23) MySQL Community Server - GPL. mysqld: File './binlog.index' not found (OS errno 13 - Permission denied) 2021-04-21T07:06:35.001596Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.24) starting as process 14680 2021-04-21T07:06:35.036077Z 0 [ERROR] [MY-010119] [Server] Aborting 2021-04-21T07:06:35.046084Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.24) MySQL Community Server - GPL.
実行環境
database.yml
default: &default adapter: mysql2 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> timeout: 5000 encording: utf8 reconnect: false username: root password: development: <<: *default database: tempo_development host: localhost socket: /tmp/mysql.sock # 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: tempo_test socket: /tmp/mysql.sock production: <<: *default database: tempo_production password:
バージョン
Ruby 2.6.2
Rails 5.2.5
MySQL2 0.5.3
です。
初学者のため、拙い質問の仕方で申し訳ありませんが、何かわかる方いらっしゃいましたら、よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。