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

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

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

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

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Ruby on Rails

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

Q&A

解決済

1回答

614閲覧

MySQLが起動できなくなった時の対処法について

GenkiSugiyama

総合スコア86

MySQL

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

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Ruby on Rails

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

0グッド

0クリップ

投稿2020/04/22 04:04

現在Ruby on Railsを使用したアプリを開発中でDBにはMySQLを使用しています。

昨日までMySQLが動いていたのを確認していたのですが、本日アプリからデータを閲覧しようとしたところ、ブラウザで「このページは動作していません」と表示され、ログを確認すると「Mysql2::Error::ConnectionError (Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)):」が表示されていました。

結果としては、同様のエラーを解決した方の記事を参考にMySQLの再起動・接続ができるようになったのですが、いまいち腑に落ちていないので解決策というよりは「なぜこの手順で再起動・接続ができるようになったか」をご教示いただけますと幸いです。

【これまでに行なったこと】
①ターミナルでMySQLへログイン確認、MySQLのバージョン確認、再起動のコマンド
→同様のエラーで弾かれてしまいました。

②「/tmp/mysql.sock」の確認・作成
→上記エラーで表示されていたファイルを確認したところ、該当ファイルがなかったので作成、「mysql -v」でバージョン確認を行なったところ「Can't connect to local MySQL server through socket '/tmp/mysql.sock' (38)」と別の行でのエラーが発生しました。
一度MySQLを停止していたのを思い出し「sudo mysql.service restart」をしたところ「ERROR! The server quit without updating PID file (/usr/local/var/mysql/***.local.pid).」と表示されました。

③「.local.pid」の確認・作成
→「/usr/local/var/mysql」内に該当ファイルが見当たらなかったので「sudo touch /usr/local/var/mysql/
.local.pid」を実行し、再度「mysql.service restart」をしましたが「ERROR! The server quit without updating PID file (/usr/local/var/mysql/***.local.pid).」のまま・・・

③を行なった後、「/usr/loocal/var/mysql/」と「/tmp」の中身を確認したところ、「***.local.pid」と「mysql.sock」が見当たらない・・??
(一度作成したはずなのになぜ無くなっているのでしょうか?)

上記のような状況でした。

こちらの記事を参考に「/usr/local/val/mysql」の権限を変更したところ、再起動のコマンドが動き、MySQLへのログインも可能になりました。(権限を変更した影響なのか「mysql -v」でバージョン確認ができなくなりました、、、)

最終的にはmysqlディレクトリの権限変更で解決できたような感じなのですが、なぜ権限変更で解消されたのか、、詳しい方がいらっしゃいましたらご教示いただけますと幸いです。

よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

sudo touch は root 権限でファイルを作成します。
chwon -R は、ディレクトリとその配下のすべてのファイルが対象です。

root 権限でファイルを作成したのでそれをMysql用のユーザ権限に設定したことで正常に動いたのではないかと思います。

投稿2020/04/22 05:13

take88

総合スコア1351

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

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

GenkiSugiyama

2020/04/22 11:16

ご回答いただきありがとうございます! mysqlにログインするときに「mysql -u root」と入力していたのですが、ターミナル上のroot権限とログイン時のroot権限はそれぞれ別ということで良いでしょうか? また、「mysql -v」が弾かれるようになったことへの対処法としてはどのような方法が考えられるでしょうか、、? 質問を重ねて恐縮ですが、ご回答いただけますと幸いです。
take88

2020/04/23 02:18

mysql の root とは別の概念です。mysql の中に ユーザ管理するテーブル (mysql.user) が有り、そこに root というユーザ情報が登録されています。 mysql -v 弾かれる理由はわかりません。「弾かれる」というのがどういう現象かわかるように追記していただけますか。また実行した場合のエラーなどあれば教えて下さい。
GenkiSugiyama

2020/04/23 04:10

追加の質問まで解説いただきありがとうございます。 >mysql -v 弾かれる理由はわかりません。「弾かれる」というのがどういう現象かわかるように追記していただけますか。また実行した場合のエラーなどあれば教えて下さい。 下記のようなエラーでバージョンが確認できておりません。 ERROR 1045 (28000): Access denied for user 'PCのユーザー名'@'localhost' (using password: NO)
take88

2020/04/23 04:16

大文字の「-V」だとどうですか?
GenkiSugiyama

2020/04/23 10:50

大文字だとバージョンが表示されました!ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問