このスレッドは解決済です(未解決に戻す場合はこちら)
<<戻る

jdbcを使ってmysqlにアクセスできない このメッセージに返信する
日時: 2010/04/30 16:28
名前: シロ
URL:
お世話になります。
現在centos5.3でjavaとmysqlを使ったシステムを構築しようとしております。
そのテストのため、jdbcを使ってmysqlのhellodbデータベースに格納されているデータをjava側から呼び出そうとしています。
javaのソースは以下になります。

import java.sql.*;
import com.mysql.jdbc.Driver;
public class HelloWorldJDBCMySQL {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql:///hellodb?useUnicode=true&characterEncoding=sjis";
Connection con = DriverManager.getConnection(url);

Statement stmt = con.createStatement();
String sql = "SELECT * FROM hello_world_table";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
int no = rs.getInt("no");
String lang = rs.getString("language");
String msg = rs.getString("message");
System.out.println(no + " " + lang + " " + msg);
}
stmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
//参考URL:http://www.hellohiro.com/jdbcmysql.htm

しかし、これをコンパイルしてmysqlの起動を確認して実行しようとすると以下のエラーが出ます。

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied for user ''@'localhost' to database 'hellodb'
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
at com.mysql.jdbc.Util.getInstance(Util.java:384)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1054)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3562)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3494)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:920)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:4000)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1285)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2186)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:787)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:49)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:357)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
at java.sql.DriverManager.getConnection(DriverManager.java:620)
at java.sql.DriverManager.getConnection(DriverManager.java:222)
at HelloWorldJDBCMySQL.main(HelloWorldJDBCMySQL.java:16)

jdbcドライバが古いのかとも思い、com.mysql.jdbc.Driverの部分をorg.gjt.mm.mysql.Driverに書き換えて実行もしましたが、同様のエラーが出ました。


それぞれのバージョンはjava1.6.0とmysql5.0.77です。
mysqlの文字コードは全体のデフォルトからテーブルまでsjisを指定しています。
jdbcドライバはmysql-connector-java-5.1.12-bin.jarです。
jdbcドライバは.jarファイルをjavaディレクトリ内のlibの中にいれてパスを実行しています。

実行できない原因をご教示願えませんでしょうか。よろしくお願いいたします。
記事編集 編集

Page: | 1 | 2 |

Page: | 1 | 2 |

件名※必須
名前※必須
URL
任意のパスワード (投稿後のコメント修正・削除時に使用)
画像認証※必須 投稿キー(画像で表示されている数字を入力)
コメント※必須

※質問を投稿後に自己解決された場合は、原因と行った対処を具体的に書き込み下さるよう、よろしくお願いします。

- WEB PATIO -