1

Java を使用して mysql でユーザーのパスワードを変更しようとしています。phpmyadmin では正常に変更されましたが、同じコマンドが Java では機能しません。

SET PASSWORD = PASSWORD('12345')

このコマンドは、現在ログインしているユーザーを変更します。このようにJavaで試しました

statement = connect.createStatement();
statement.executeUpdate("SET PASSWORD = PASSWORD('12345')");

しかし、何も起こらなかった

私もルートにログインしてこれを試しました

statement = connect.createStatement();
statement.executeUpdate("SET PASSWORD FOR 'username'@'localhost' = PASSWORD('123456')");

何も機能しません、助けてください

4

1 に答える 1

1

メソッドを使用しexecuteQuery()ないでくださいexecuteUpdate()

statement = connect.createStatement();
statement.executeQuery("SET PASSWORD FOR 'username'@'localhost' = PASSWORD('123456')");

上記のクエリを使用して変更できるのは、既知のパスワードのみであることに注意してください。

たとえば、ルートパスワードがexample接続を作成するためのものである場合、使用します

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "example");

したがって、この接続を使用すると、現在のパスワードのみを変更できます。

以下は、 roseindia.net のこのコードに基づく例です。

import java.sql.*;
class ChangeRootPassword
{
        public static void main(String[] args) 
        {
                try{
                        Class.forName("com.mysql.jdbc.Driver");
                        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "example");
                        String sql = "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('test')";
                        Statement stmt = conn.createStatement();
                        stmt.executeQuery(sql);
                        stmt.close();
                        conn.close();
                        System.out.println("Password is changed successfully!");
                        }
                catch(Exception ex){
                        ex.printStackTrace();
                        }
        }
}

したがって、新しい mysql root パスワードはtestです

于 2013-11-02T09:34:51.187 に答える