今回発生したエラーまとめ
1. MySQLログインエラー
エラー内容
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
エラーの読み方
| 部分 | 意味 |
|---|---|
ERROR 1045 |
エラーコード |
Access denied |
アクセスを拒否された |
using password: YES |
パスワードを使ってログインしようとした |
原因
パスワードが間違っている
解決方法
パスワードなしでログインを試す
mysql -u root
ログインできた場合、rootユーザーにパスワードが設定されていない状態。
パスワードを設定する場合は以下を実行。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
2. Maven Wrapperエラー
エラー内容
./mvnw: line 117: ./.mvn/wrapper/maven-wrapper.properties: No such file or directory
cannot read distributionUrl property in ./.mvn/wrapper/maven-wrapper.properties
エラーの読み方
| 部分 | 意味 |
|---|---|
line 117 |
mvnw ファイルの117行目でエラーが発生 |
No such file or directory |
ファイルまたはフォルダが見つからない |
maven-wrapper.properties |
見つからなかったファイルの名前 |
原因
.mvn/ フォルダが存在しなかった。
Finderでファイルをコピーした際に、.(ドット)で始まる隠しフォルダが漏れてしまった。
解決方法
元のフォルダから .mvn/ をコピーする。
cp -r /Users/kaoru/Downloads/demo/.mvn /Users/kaoru/Desktop/MybatisSample/
今後の対策
Finderではなくターミナルの cp -r コマンドでコピーすると隠しファイルも漏れない。
3. Lombokのコンパイルエラー
エラー内容
COMPILATION ERROR :
シンボルを見つけられません
シンボル: メソッド getId()
場所: タイプ com.example.demo.entity.UserInfo の変数 user
エラーの読み方
| 部分 | 意味 |
|---|---|
COMPILATION ERROR |
コンパイル(Javaをコンピュータが実行できる形式に変換)中のエラー |
シンボルを見つけられません |
指定したメソッドやクラスが見つからない |
メソッド getId() |
getId() というメソッドが見つからない |
タイプ UserInfo の変数 user |
UserInfo クラスの user という変数に対して使おうとした |
原因
Lombokが正しく動作していなかった。
getId() などのメソッドはLombokの @Data が自動生成するが、
pom.xml の <build> にLombokの除外設定がなかったため動作しなかった。
解決方法
pom.xml の <build> に以下を追加する。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
なぜこの設定が必要か
Lombokはコンパイル時だけ使うツール。
実行時(jar)には含める必要がないため、除外設定をすることでLombokが正しく認識される。
Lombok(ロンボク)とは
Javaのソースコードを短く書けるようにするライブラリです。
Javaのクラスには、フィールド(変数)ごとに次のようなメソッドを自分で書くことが多いです。
getter(値を取り出す)… getName() など
setter(値を入れる)… setName() など
equals / hashCode(同じかどうか比較する)
toString(文字列にして表示する)
行数が増えて、同じようなコードが何度も並ぶのが普通です。
Lombokは、その「決まりきったコード」を自動で生成してくれる仕組みです。
エラーを読む際の基本方針
1. 最後の方のエラーを見る(根本原因が書かれていることが多い)
2. キーワードを拾う
- No such file / Not found / Cannot find → ファイルがない
- Access denied → 権限・パスワードが違う
- COMPILATION ERROR → Javaのコードに問題がある
- シンボルを見つけられません → クラスやメソッドが見つからない
- Connection refused → 接続できない
3. 「どのファイルの何行目か」を確認する
4. 「何が」「どうなったか」を英語から読み取る
Spring Boot 3系特有の注意点(仕様変更)
記事がSpring Boot 2系向けの場合、以下の変更が必要。
| 変更前(2系) | 変更後(3系) |
|---|---|
javax.validation |
jakarta.validation |
mysql:mysql-connector-java |
com.mysql:mysql-connector-j |
MyBatis 2.x.x
|
MyBatis 3.x.x
|
具体例
// 変更前
import javax.validation.constraints.NotEmpty;
// 変更後
import jakarta.validation.constraints.NotEmpty;