質問: データベースに接続する際、エラーが出てしまいます。 以下の内容です。 ``` SQLException:Access denied for user 'root'@'localhost' (using password: YES) コネクションがありません ``` また、コマンドの方でも確かめました。 きちんと接続できています。 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/9dbd43570822167fb6dff0fe4a6148b0.png) 文面からするに、パスワードは合っているのだと思います。 ただ、ユーザー名で何かあったという感じだと考えています。 しかし、最初にコマンドの方でデータベースに接続した時はきちんと入れました。パスワードも間違っていないようです。 以下、接続する際に使用したURLです。 mysqlを使用し、db名は"kadaidb"です。 ``` jdbc:mysql://localhost/kadaidb ``` きちんと接続するにはどうすればいいのでしょうか。 よろしくお願いします。
回答: `root@127.0.0.1`に対して権限を与えればログインできると思います。 ``` GRANT ALL PRIVILEGES ON kadaidb.* TO root@127.0.0.1; ``` コマンドとJDBCで接続方式が違うので認証エラーになっています。 `mysql -u root -p` はソケット接続でJDBCはTCP/IP接続なので認証ホストの扱いが異なります。 以下のコマンドで接続できるように設定すればJDBCでもうまくいきますよ。 ``` mysql -u root -h 127.0.0.1 -p kadaidb ``` http://qiita.com/TanukiTam/items/f6a08740d0fcda0db7be http://b.l0g.jp/mysql/user-at-localhost/