※ ChatGPTを利用し、要約された質問です(原文:データベースへ接続)
JAVAでMySQLへ接続しデータを挿入するプログラムのエラーの改善方法
2007/02/26 15:54
このQ&Aのポイント
JAVAを使用してMySQLへ接続し、テーブルにデータを挿入するプログラムを作成しましたが、エラーが発生しています。
エラーメッセージは「java.sql.SQLEception: Invalid authorization specification message from server: 'Access denied for user 'root'@'localhost' (using password: NO)'」です。
エラーを改善するためには、接続情報(ユーザ名とパスワード)を正しく設定する必要があります。
JAVAを使ってMySQLへ接続して、テーブルにデータを挿入するプログラムを作ったのですが、エラーが出てしまいます。
環境変数は
CLASSPATHは .;%JAVA_HOME%\lib\tools.jar;C:\mysql-connector-java-3.0.16-ga\mysql-connector-java-3.0.16-ga\mysql-connector-java-3.0.16-ga-bin.jar;.
PATHは %JAVA_HOME%\bin;C:\Program Files\MySQL\MySQL Server 4.1\bin
JAVA_HOMEは C:\Program Files\Java\jdk1.5.0_11
です。
プログラム内容は
// InsertSample.java
import java.sql.*;
class InsertSample {
public static void main(String args[]){
Connection con = null;
Statement stmt = null;
// 引数のチェック
if(args.length != 6){
System.out.println("usage : java InsertSample<id> <name> <yomi> <yubin> <address> <tel>");
return;
}
try {
// JDBCドライバの登録
String driver = "org.gjt.mm.mysql.Driver";
// データベースの指定
String url = "jdbc:mysql://localhost/sampledb?useUnicode=true&characterEncoding=Shift_JIS";
String user = "root"; // 環境に応じて設定
String password = ""; // 環境に応じて設定
Class.forName (driver);
// データベースとの接続
con = DriverManager.getConnection(url, user, password);
stmt = con.createStatement();
// SQL文の作成
String sql = "INSERT INTO members VALUES('"
+ args[0] + "','"
+ args[1] + "','"
+ args[2] + "','"
+ args[3] + "','"
+ args[4] + "','"
+ args[5] + "'"
+ ")";
// 更新の実行
int num = stmt.executeUpdate(sql);
System.out.println(args[0] + "の" + num + "行を追加");
} catch (SQLException ex) {
System.err.println("SQL failed.");
ex.printStackTrace ();
} catch (Exception ex) {
ex.printStackTrace ();
} finally {
try{
// データベースのクローズ
stmt.close();
con.close();
} catch (Exception ex) {
ex.printStackTrace ();
}
}
}
}
で、エラーの内容は
java.sql.SQLEception : Invalid authorization specification massage from server : "Access denied for user 'root'@'localhost' (using password : NO)"
とでてしまいます。どのように改善したらよいでしょうか?
よろしくお願いします。
質問の原文を閉じる
質問の原文を表示する