0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

MySQL関連のエラー

Last updated at Posted at 2022-05-23

5月度第3回講義で提供されたサンプルアプリをEC2にデプロイするまでに遭遇したエラーについて、自分なりの解釈と解決までの手段をメモ。

エラーその1:認証パスワード有効期限切れ

Mysql2::Error: Your password has expired. To log in you must change it using a client that supports expired passwords.

Railsお抱えのMySQLクライアントからログインしようとする場合、初期パスワードは使用不可ということなんだろうか?
以下のコマンドでパスワードを変更し、これをdatabase.ymlに記述して解決した。

$ sudo mysql_secure_installation

エラーその2:mysql.sockがない

Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

/tmpにmysql.sockがない(2)。
ググってみると、どうやら「ファイルがない」のが原因、つまりファイルを作ってしまえば良いとの情報が見つかった。

$ sudo touch /tmp/mysql.sock

これで解決すると思ったが、ダメだった。

Can't connect to local MySQL server through socket '/tmp/mysql.sock' (13)

今度は(13)。

そもそもmysql.sockとは何者か。
どうやらMySQLクライアントとサーバーが通信するときに使うパイプ役のファイル???みたいなものらしい。
つまり、mysql.sockファイルの在り処の認識が、クライアントとサーバーとで一致してなければならないと。

探してみると、このファイルは/var/lib/mysql/にあった。
一方、database.ymlを見てみると、/tmp/mysql.sockとなっている。
クライアントとサーバーとで、別の場所を探しに行ってしまっているのが原因。database.ymlを修正し、解決。

エラーその3:データベースがない

データベース作ればいいだけ。

ーーー
というわけで、無事デプロイ、起動確認。
ただ繋ぐだけでも結構大変。きちんと理解できてれば他人の役に立つことも書けるだろうけど、今の自分にはとても無理。
脱初心者の壁、高くない…?

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?