HOWTO · Java
Java.SQL.SQLException: ユーザー Root@Localhost のアクセスが拒否されました
このチュートリアルでは、Java で java.sql.sqlexception: access denied for user root@localhost エラーを解決する方法を示します。
このチュートリアルでは、Java で java.sql.SQLException: Access denied for user 'root'@'localhost' エラーを解決する方法を示します。
Java で java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES) を修正
このエラーは、MySQL の新しいバージョンまたは以前のバージョンをアンインストールしてインストールしようとすると発生します。 エラーが発生するのは、MySQL をアンインストールするときに、MySQL アンインストーラー ウィザード が完全なクリーンアップを実行しないためです。
残りのジャンクを手動でクリーニングすると、この問題が解決します。 発生するエラーは以下です。

このエラーを解決するには、いくつかの簡単な手順に従ってください。
-
まず、
アンインストール ウィザードで MySQL サーバーをアンインストールします。 -
インストール フォルダは引き続き存在します。 フォルダからすべて削除します。 たとえば、フォルダは次のとおりです。
C:\Program Files (x86)\MySQL -
ここで、MySQL サーバーを再インストールします。
上記のプロセスにより、以前に保存されたパスワードや、このエラーの原因となったその他の情報が削除されます。
このエラーには、他にもいくつかの理由があります。 たとえば、Java と MySQL を使用してゼロから新しいデータベースを作成すると、同じエラーが発生する可能性があります。
例を参照してください:
package delftstack;
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class Example {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
try {
Connection Database_Connection = (Connection) DriverManager.getConnection(
"jdbc:mysql://localhost/?user=root&password=rootpassword");
Statement Demo_Statement = (Statement) Database_Connection.createStatement();
int result = Demo_Statement.executeUpdate("CREATE New Database");
}
catch (Exception e) {
e.printStackTrace();
}
}
}
上記のコードは同じエラーをスローします。エラーがスローされる理由は、新しいデータベースを適切に作成していないためです。 上記のコードの解決策を以下に示します。
package delftstack;
import com.mysql.jdbc.PreparedStatement;
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class Example {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
try {
Connection Database_Connection =
DriverManager.getConnection("jdbc:mysql://localhost/?user=root&password=rootpassword");
PreparedStatement Demo_Statement =
(PreparedStatement) Database_Connection.prepareStatement("CREATE DATABASE databasename");
int result = Demo_Statement.executeUpdate("CREATE New Database");
}
catch (Exception e) {
e.printStackTrace();
}
}
}
このコードは、エラーなしで新しいデータベースを正常に作成します。