• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JavaからMySQLへの接続)

JavaからMySQLへの接続方法とエラー解決

autyの回答

  • ベストアンサー
  • auty
  • ベストアンサー率58% (284/486)
回答No.3

文字化けに関しては、いつも悩まされるところですね。 原因はさまざまあるのですが、残念ながら私もまだ徹底的に追及していません。参考になるかもしれませんので、いくつかあげてみておきます。 ただしこれも新しいバージョンでないといけないかもしれません。 ・mysqlでのコマンドプロンプト操作    1.\hで    ヘルプ一覧    2.\s     ステイタス情報    3.\C utf8  キャラクタセットの変更(クライアント、接続)    4.show create database hellodb;    5.show create table テーブル名;    6.create database hellodb character set sjis; ・jdbc:mysql://localhost:3306/hellodb?useUnicode=true&characterEncoding=Shift_JIS    のcharacterEncoding=Shift_JISの部分。 ・request.setCharacterEncodingg("Windows-31J"); ・データを入力したときの文字コード(ファイルからの場合等) ・mysqlのメニューの[Mysql Server Instance Configuration Wizard]で文字コードの変更。 -------------------------------------------------------------------------------- 以上のようなことをいろいろとチェックしながらうまくいく方法見つけてみてください。 可能なら、新しいバージョンでインストールし直すのも、いろいろ確認できるし、うまくいくかもしれません。

sorer38
質問者

お礼

autyさん、何度も気にかけていただきありがとうございます。 検索もしていろいろ試してみましたが、結局うまくいきません でした。 今回、MySQLには初めて触れたのですがJavaから接続するという 作業を通して、接続とはこんな風にやるのか、MySQLとはこんな 形になっているのか、と漠然とした形ですが理解することが できました。 まだ勉強の途中、形だけわかっただけでも進歩なので、 このまま先に進めようと思います。(現在使用している本が、 あまり細かく説明されたものではないので・・) どこかで不備があって、きっとそのうち解決法が見つかると思います。 バージョンの不相性も関係しているでしょうし。 せっかく接続できたのに文字化けかよ、という心残りは ありますが。。(笑) 何度も丁寧な説明をしていただき、どうもありがとうございました。 また質問して、見かけることがありましたらまた助けて いただけると幸甚です。

関連するQ&A

  • MySQLその他のコンピュータへの接続方法

    MySQL初心者です。接続するコードに関して質問させていただきます。 下記のコードを設定すると、自PCのデータベースに接続されますが、他のホストコンピュータのMySQLデータベースへ接続する際のコーディングはどのように設定すればよろしいでしょうか? 例えば、 自PC:192.168.1.201 接続先:192.168.1.202 Class.forName("org.gjt.mm.mysql.Driver"); String url = "jdbc:mysql:///******?useUnicode=true&characterEncoding=SJIS"; String user = "*****"; String pass = "********"; Connection con = DriverManager.getConnection(url,user,pass); ご指導のほどよろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • MySQLの外部ホストのデータベースへの接続

    MySQL初心者です。 自分のPC:192.168.1.201から接続先:192.168.1.202のデータベースにアクセスするために以下のコードを設定して実行したのですが、 『java.sql.SQLException: null, message from server: "Host '(自分PCのホスト名)' は MySQL server に接続を許可されていません"』 というメッセージが表示されて、アクセスができません。 この原因と、その解決方法をご存知の方がいましたら教えて頂けないでしょうか? MySQLに外部ホストからのアクセス権限を与えるような設定ってあるのでしょうか? Class.forName("org.gjt.mm.mysql.Driver"); String url = "jdbc:mysql://192.168.1.202/TEST_DB?useUnicode=true&characterEncoding=SJIS"; String user = "*****"; String pass = "********"; Connection con = DriverManager.getConnection(url,user,pass);

    • ベストアンサー
    • MySQL
  • javaサーブレットとmysqlと接続で困ってます

    参考書見ながらjava サーブレットの勉強してるんですがmysqlと繋ぐのに苦戦しています。 プロジェクトのwebcontentのweb-infのlibにJDBCを入れたのですが、こんなエラーがでます。 java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/sample_db?useUnicode=true&characterEncoding=utf8 これはパスの設定がされてないからでしょうか?

    • ベストアンサー
    • Java
  • javaからmysqlに接続ができません。

    よろしくお願いします。 JavaからMySqlに接続ができなくて困っています。 <環境> OS:Windows XP JDK : jdk1.6.0_02 JDBC Driver for MySQL : mysql-connector-java-5.1.5-bin.jar Java、MySql単体では正常に動作しているようですが、ドライバを認識できず、JavaからMySqlに接続することができません。 ---コード------------------------------------------ import java.net.*; import java.sql.*; public class SqlSample1{ String url = "jdbc:mysql://localhost/test_db"; String user = "root";//ユーザ名 String pass = "admin";//パスワード Connection con = null; //コンストラクタ public SqlSample1(){ init();//初期化 fin();//終了 } //初期化 public void init(){ try{ //ドライバのロード Class.forName("org.gjt.mm.mysql.Driver"); //MySQLサーバへの接続 con = DriverManager.getConnection(url,user,pass); System.out.println("Connected!!"); }catch(SQLException e){ System.err.println("SqlException:\n"+e.toString()); }catch(Exception e){ e.printStackTrace(); } } //終了:開放 public void fin(){ try{ con.close(); System.out.println("Closed."); }catch(SQLException e){ System.err.println("SqlException:\n"+e.toString()); }catch(Exception e){ e.printStackTrace(); } } public static void main(String args[]){ SqlSample1 ss1=new SqlSample1(); } } ----------------------------------------------------------- ----エラーメッセージ--------------------------------------- SqlException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure Last packet sent to the server was 0 ms ago. java.lang.NullPointerException at SqlSample1.fin(SqlSample1.java:41) at SqlSample1.<init>(SqlSample1.java:18) at SqlSample1.main(SqlSample1.java:53) ------------------------------------------------------------ ※C:\mysql-connector-java-5.1.5の下のmysql-connector-java-5.1.5-bin.jarファイルにCLASSPATHを設定しています。 初心者のためへたくそな質問になっているかもしれません。 申し訳ありません。 上記の情報が不十分な場合はご指摘をお願い致します。

  • パッケージ org.gjt.mm.mysqlは存在しません

    いつもお世話になっております。 javaから、sqlを操作するプログラムを作っているのですが、 コンパイル時に「パッケージ org.gjt.mm.mysqlは存在しません」と、 エラーが発生してしまいます。 ソースコード----------------------- import java.sql.*; import org.gjt.mm.mysql.Driver; public class HelloWorldJDBCMySQL { public static void main(String[] args) { String user = "password"; String pass = "password"; try { // ドライバクラスをロード // Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // ODBCの場合 Class.forName("org.gjt.mm.mysql.Driver"); // MySQLの場合 // データベースへ接続 // Connection con = // DriverManager.getConnection("jdbc:odbc:helloworld"); // ODBCの場合 // MySQLの場合 String url = "jdbc:mysql:///hellodb?useUnicode=true&characterEncoding=SJIS"; Connection con = DriverManager.getConnection(url,user,pass); // ステートメントオブジェクトを生成 Statement stmt = con.createStatement(); String sql = "SELECT * FROM test"; // クエリーを実行して結果セットを取得 ResultSet rs = stmt.executeQuery(sql); // 検索された行数分ループ while(rs.next()){ // nameを取得 String no = rs.getString("name"); // addressを取得 String lang = rs.getString("address"); // メッセージを取得 //String msg = rs.getString("MESSAGE"); // 表示 System.out.println(no + " " + lang ); } // データベースから切断 stmt.close(); con.close(); } catch (Exception e) { e.printStackTrace(); } } } ----------------------------------- 環境変数--------------------------- CLASSPATH .;C:\sample4\WEB-INF\lib\mysql-connector-java-5.1.12-bin.jar ----------------------------------- どなたか、ご教授いただけますでしょうか?

    • ベストアンサー
    • Java
  • MySQLへの接続なんですが・・。

    下記にあるJAVAのソースファイルがあるのですが、コンパイルしてクラスファイルをつくり、実行してもうまくいきません。 windows2000Professional, j2sdk1.4.0_01, MySQL3.23.47 // uc/BaseJdbc.java import java.sql.* ; public class BaseJdbc { public static void main(String[] args) { final String LINE = "---------------------------------------\n" ; try { Class.forName("org.gjt.mm.mysql.Driver") ; // JDBCドライバ登録 System.out.println("\n" + LINE + "MySQLのJDBCドライバを登録。") ; Connection connection = DriverManager.getConnection( "jdbc:mysql://localhost:3306/river_data", "Administrator","lled") ; System.out.println("データベース「jdbc:mysql://localhost/" + "river_data」へ接続。") ; } } } 下記、コマンドプロンプトにて実行画面。 D:\azMySq\uc\BaseJdbc>java BaseJdbc --------------------------------------- MySQLのJDBCドライバを登録。 java.sql.SQLException: Invalid authorization specification: Access denied for us er: 'Administrator@localhost' (Using password: YES) at org.gjt.mm.mysql.MysqlIO.init(MysqlIO.java:330) at org.gjt.mm.mysql.Connection.connectionInit(Connection.java:261) at org.gjt.mm.mysql.jdbc2.Connection.connectionInit(Connection.java:89) at org.gjt.mm.mysql.Driver.connect(Driver.java:167) at java.sql.DriverManager.getConnection(DriverManager.java:512) at java.sql.DriverManager.getConnection(DriverManager.java:171) at BaseJdbc.main(BaseJdbc.java:20)

  • MySQLとの接続について

    「GWTによるAjaxアプリケーション開発」を参考に勉強中なのですが、MySQLとの接続がうまくできません。 Class.forName("com.mysql.jdbc.Driver"); で、エラーになります。 mysql-connector-java-5.0.8-bin.jarが認識できていないようなのですが、「外部jarファイルの追加」で指定してあります。配置場所はC:\Program Files\Apache Software Foundation\common\libです。 エラー内容はEclipseのコンソールにも何も表示されないので、java.lang.System.out.println();を適当な場所に挿入して確認しました。 ソースコードは public void init() throws ServletException { try { Class.forName("com.mysql.jdbc.Driver"); connection = DriverManager.getConnection("jdbc:mysql:///friends?useUnicode=true&characterEncoding=UTF-8","",""); } catch(Exception e) {} } です。 どなたか、ご教示いただけないでしょうか、よろしくお願いいたします。

  • データベース接続をどのように関数にすればよいか分かりません

    この処理を何回か使うので関数にすることになりました。 しかし、例外を考えてtry、catchを使うとすると 処理を入れられないで接続終了になってしまいます。 throwsで全部例外をなげるしかないのでしょうか? 分かる方がいましたら、教えてください。 よろしくお願いします。 public void Connect()throws ServletException,IOException {  try{   String drv = "org.gjt.mm.mysql.Driver";   String url = "jdbc:mysql://localhost/keijiban?useUnicode=true&characterEncoding=sjis";   String usr = "";   String pw = "";   Class.forName(drv);   cn = DriverManager.getConnection(url,usr,pw);  //処理を入れる所////////////////////////  }catch(Exception e){   e.printStackTrace();  } finally {   if (cn != null) {    try {     cn.close();    } catch (SQLException e) {     throw new ServletException(e);    }   }  } }

    • ベストアンサー
    • Java
  • MySQLでJDBC接続をTomcatで接続できないです。。。。

    JDBC接続を現在勉強しています。 そこで、eclipseの中にTomcatをプラグインして、javaからデータベースに接続を心みているのですが、エラーが出て自分なりにいろいろ試したのですが、どうしてもエラーが消えません。 ご指摘いただけたらと思います。 エラー内容 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 環境内容 windows xp professional Eclipse 3.3 (C:\eclipse) Tomcat 5.5 (C:\eclipse\servers\tomcat-5.5) java (C:\Program Files\Java\jdk1.6.0_06) MySQL (D:\mysql-5.0.67-win32 データベースはDドライブにおいています) JDBCドライバー mysql-connector-java-5.1.6-bin.jar(C:\eclipse\servers\tomcat-5.5\common\libの配下に設定) PATHの設定 CLASSPATH C:\eclipse\servers\tomcat-5.5\common\lib javaのソースコード import java.sql.*; public class JdbcMySQLTest { public static void main(String[] args) { try { // ドライバクラスをロード Class.forName("com.mysql.jdbc.Driver"); // MySQLの場合 // データベースへ接続 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()) { // NOを取得 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(); } } } 上記コードをEclipseから実行しますとコンソール上に java.lang.ClassNotFoundException: com.mysql.jdbc.Driver at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:169) at jp.co.Beas.JdbcMySQLTest.main(JdbcMySQLTest.java:11) になってしまいます。 JdbcMySQLTest.java:11からcom.mysql.jdbc.Driverが ないですよ~といっているのは理解しているのですが そこでいろいろドライバーの配置などを変更したのですが エラーがやはりかわりません。 ながながとなって申し訳ございませんが、ご教授いただけたらと思います。

  • MySQL4.1における文字化けについて

    WindowsXPにてMySQL4.1.12aをインストールしました。 JDBCにて、 Class.forName("com.mysql.jdbc.Driver").newInstance(); String connStr = "jdbc:mysql:///databasename?user=root&password=pass" + "&useUnicode=true&characterEncoding=Shift_JIS"; とし、insertでCSVファイルから特定の項目を追加していくということをしました。 clientにてselectしてみたら、2バイト文字がすべて 「?」に変わっていました。 my.iniにて [mysqld] default-character-set = sjis [client] default-character-set = sjis [mysql] default-character-set = sjis を追加していますが、 statusで見ると mysql> status -------------- mysql Ver 14.7 Distrib 4.1.12a, for Win32 (ia32) Connection id: 1 Current database: shop Current user: root@localhost SSL: Not in use Using delimiter: ; Server version: 4.1.12a-nt Protocol version: 10 Connection: localhost via TCP/IP Server characterset: sjis Db characterset: utf8 Client characterset: latin1 Conn. characterset: latin1 TCP port: 3306 Uptime: 30 sec となっています。 utf8、latin1というのが文字化けの原因でしょうか。 対策方法をご教授お願いいたします。

    • ベストアンサー
    • MySQL