非常によくある問題である。
今回ターミナル上では文字化けしないんだけど
ブラウザで表示される日本語は文字化けしてしまうという現象が発生しました。
こういった問題解決を複雑にしている原因に、MySQLのバージョンと
MySQLを扱うプログラミング言語、さらにそのプログラミング言語バージョンなどの組み合わせによって原因や解決方法が変わってくるからではないかと。
問題解決のためググって調べてはみるものの非常に時間がかかってしまった。
いろんなサイトを見てみると記事を書いている人は解決しているのだけれど、自分の環境と違うせいで掲載している解決方法が当てはまらず自分は解決しない・・・なんてこんなことがよくあります。
なので、この記事を読んでくれている方で僕と同じ環境の方がいるかもしれないので、その人のためにも今後自分の使用環境をちゃんと掲載しておこうと思います。

ということで文字化け解決プロセス編。
ブラウザで見るとNAMEフィールドの文字列が文字化けしてます。
=================================
IDNAMEMONEY
1ボブ5000
2 ãƒ‘トリック      5000
3サンディー 5000
=================================

問題は文字化けなのでまずはターミナル側で文字コードの確認。

=================================
mysql> \s
--------------
(略)
Server characterset: latin1
Db     characterset: latin1
Client characterset: latin1
Conn.  characterset: latin1
=================================

MySQL側で扱っている文字コードは全体的にlatin1になってます。
Servlet側で扱っているのはUTF-8で、今後の開発もUTF-8で行うのでServlet側に合わせて
MySQL側をUTF-8にしたいと思います。

MySQLの文字コード変更はこちらを参考にやってみました。

my.cnf(設定ファイル)を作成して再起動してみます。
=================================
mysql> \s
--------------
(略)
Server characterset: utf8
Db     characterset: utf8
Client characterset: utf8
Conn.  characterset: utf8
=================================

お、ちゃんとUTF-8になってる。
文字化けが直ったかServlet側で確認。

=================================
IDNAMEMONEY
1ボブ5000
2 ãƒ‘トリック      5000
3サンディー 5000
=================================

あれ、直ってない。。。
ターミナルで確認してみる。

=================================
mysql> select * from account;
+----+-----------------------------------+-------+
| ID | NAME                              | MONEY |
+----+-----------------------------------+-------+
|  1 | ボブ                            |  5000 |
|  2 | パトリック                   |  5000 |
|  3 | サンディー                   |  5000 |
+----+-----------------------------------+-------+
=================================

今度はターミナル側まで文字化けしてしまった。
statusコマンドでDB自体の情報が見れるので確認。

=================================
mysql> status;
--------------
Server characterset: utf8
Db     characterset: latin1
Client characterset: utf8
Conn.  characterset: utf8
=================================

あれ、Dbだけlatin1のままだ。
ということはこれを変更すれば直るのかな?
この記事にデータベースの文字コードの変更の仕方が紹介されていたので試してみる。


=================================
mysql>  alter database rensyu character set utf8;
Query OK, 1 row affected (0.00 sec)
=================================

変更されているか確認。

=================================
mysql> status;
--------------
Server characterset: utf8
Db     characterset: utf8
Client characterset: utf8
Conn.  characterset: utf8
=================================

お、変更できた。
テーブルを表示してみる。

=================================
mysql> select * from account;
+----+-----------------------------------+-------+
| ID | NAME                              | MONEY |
+----+-----------------------------------+-------+
|  1 | ボブ                            |  5000 |
|  2 | パトリック                   |  5000 |
|  3 | サンディー                   |  5000 |
+----+-----------------------------------+-------+
=================================

う~ん、文字化けしたままだ。
このままでは埒があかないので一度データベースを削除して作り直してみる。
そして確認。

=================================
mysql> select * from account;
+----+-----------------+-------+
| ID | NAME            | MONEY |
+----+-----------------+-------+
|  1 | ボブ            |  1000 |
|  2 | パトリック      |  2000 |
|  3 | サンディー      |  3000 |
+----+-----------------+-------+
=================================

おお、ちゃんと日本語表示ができた!。
今度はServlet側を確認。

=================================
IDNAMEMONEY
1ボブ1000
2パトリック2000
3サンディー3000
=================================

おお、こちらも表示できた!
困ったときは一から作り直した方が早いですね。
これがデータが入ってる既存データベースの変更とかなったら大変だったなぁ。
文字コードは開発前にちゃんと決めないとあとが恐いですね。

今回のまとめ。
my.cnfを作成する。

文字コードを変更したらデータベースを一から作り直して解決。
参考にさせていただいたサイト制作者の方々ありがとうございました!!