質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Q&A

解決済

3回答

6860閲覧

Could not open file '/var/log/mysql/mysqld.log' を解決することができない

KENT1004

総合スコア77

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

0グッド

0クリップ

投稿2022/04/08 06:23

編集2022/04/08 10:27

現在EC2上でDBを作成しようとしていますがユーザに関するエラーが発生しています。

[ec2-user@ip-XX myapp]$ rails db:create RAILS_ENV=production Access denied for user 'root'@'localhost' (using password: YES) Couldn't create 'webapp_development' database. Please check your configuration. rails aborted! Mysql2::Error::: Access denied for user 'root'@'localhost' (using password: YES) /var/www/myapp/bin/rails:9:in `<top (required)>' /var/www/myapp/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へログインができるのでユーザ権限に関するエラーだと推測しています。

mysql> show grants for root@localhost; +---------------------------------------------------------------------+ | Grants for root@localhost | +---------------------------------------------------------------------+ | GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION | | GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION | +---------------------------------------------------------------------+ 2 rows in set (0.00 sec)

そこで以下のコマンドでユーザの権限設定をしている時ですが
mysqld.logが開けないエラーに遭遇しています。
ただこのlogファイルは作成済みですし、直ではmysqld.logの中身を確認できるのでどうすればいいのかわかっていません。

[ec2-user@ip-XX myapp]$ mysqld --skip-grant-tables 2022-04-08T05:49:43.105276Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2022-04-08T05:49:43.105400Z 0 [Warning] Can't create test file /var/lib/mysql/ip-XX-X-XX-XX.lower-test 2022-04-08T05:49:43.105437Z 0 [Note] mysqld (mysqld 5.7.37) starting as process 21830 ... 2022-04-08T05:49:43.108425Z 0 [Warning] Can't create test file /var/lib/mysql/ip-XX-X-XX-XX.lower-test 2022-04-08T05:49:43.108441Z 0 [Warning] Can't create test file /var/lib/mysql/ip-XX-X-XX-XX.lower-test 2022-04-08T05:49:43.108659Z 0 [ERROR] Could not open file '/var/log/mysql/mysqld.log' for error logging: Permission denied 2022-04-08T05:49:43.108682Z 0 [ERROR] Aborting 2022-04-08T05:49:43.108697Z 0 [Note] Binlog end 2022-04-08T05:49:43.108800Z 0 [Note] mysqld: Shutdown complete

対処法についてご教授宜しくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

/var/log/mysql/mysqld.logをrootユーザーで作成してしまったのではないでしょうか?

大抵のOSではmysqlはmysqlユーザーで実行されるので/var/log/mysql/mysqld.logのOwnerがrootユーザーになっていると書き込むことができません(Permission deniedになる)。

なので、

(1)ls -al /var/log/mysql/mysqld.logでファイルのOwnerを調べる
(2)psなどでMySQLの実行ユーザーを調べる
(3)ファイルのOwnerがMySQLの実行ユーザーでない場合はchown MySQL実行ユーザー /var/log/mysql/mysqld.logなどでOwnerを変更する

と言った手順が必要になると思います。

投稿2022/04/09 03:40

madoka-t

総合スコア379

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

質問の前半を読んでませんが、

Could not open file '/var/log/mysql/mysqld.log' for error logging: Permission denied

は、書き込み権限がないのでしょう。読めるかどうかは関係ないです。

投稿2022/04/08 13:01

otn

総合スコア85766

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

回答ありがとうございました。アドバイスを参考に試行錯誤していましたがmysqlをアップデートして解決されている情報を知り、試したら解決しました。バージョンによる挙動の向き不向きとかを把握するのは難しいですね。アップデートも策の1つとして取り入れます。

投稿2022/04/10 09:01

KENT1004

総合スコア77

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問