bitronix を使用して MySQL に接続するときの MySQLSyntaxErrorException の解決方法

bitronix を使用して MySQL に接続するときの MySQLSyntaxErrorException の解決方法

bitronix を使用して MySQL に接続するときの MySQLSyntaxErrorException の解決方法

1. 開発環境

休止状態バージョン: 5.1.0.Final
Bitronix btm バージョン: 2.1.3

2 例外スタック情報

原因: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: ユーザー ''@'localhost' によるデータベース 'hibernate' へのアクセスが拒否されました
  sun.reflect.NativeConstructorAccessorImpl.newInstance0(ネイティブ メソッド)
  sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) で
  sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) で
  java.lang.reflect.Constructor.newInstance(Constructor.java:423) で
  com.mysql.jdbc.Util.handleNewInstance(Util.java:377) で
  com.mysql.jdbc.Util.getInstance(Util.java:360) で
  com.mysql.jdbc.SQLError.createSQLException(SQLError.java:978) で
  com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3887) で
  com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3823) で
  com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:870) で
  com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1659) で
  com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1206) で
  com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2234) で
  com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2265) で
  com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2064) で
  com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:790) で
  com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:44) で
  sun.reflect.NativeConstructorAccessorImpl.newInstance0(ネイティブ メソッド)
  sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) で
  sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) で
  java.lang.reflect.Constructor.newInstance(Constructor.java:423) で
  com.mysql.jdbc.Util.handleNewInstance(Util.java:377) で
  com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:395) で
  com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:325) で
  bitronix.tm.resource.jdbc.lrc.LrcXADataSource.getXAConnection(LrcXADataSource.java:104) で
  ... 33 件以上

3 問題を分析する

明らかに、MySQL データベースにアクセスする権限がないため、アクセスは拒否されます。

コードを開いてみると、それが真実であることがわかりました。コードには、データベースにアクセスするためのアカウントとパスワードが提供されていませんでした。

ds.setClassName("bitronix.tm.resource.jdbc.lrc.LrcXADataSource");
          ds.getDriverProperties().put() を実行します。
              「URL」、
              接続URL != null ? 接続URL
                  : "jdbc:mysql://localhost:3306/hibernate?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull"
          );
          プロパティ dp = ds.getDriverProperties();
          dp.put("ドライバークラス名", "com.mysql.jdbc.Driver");
          ds.setDriverProperties(dp);

4. 問題解決

さっさと追加すれば問題は解決ですO(∩_∩)O~

...
dp.put("ユーザー","ルート");
dp.put("パスワード","");
...
ds.setDriverProperties(dp);

読んでいただきありがとうございます。お役に立てれば幸いです。このサイトをサポートしていただきありがとうございます。

以下もご興味があるかもしれません:
  • MySQL で珍しい文字を挿入できないときの対処方法 (文字列値が正しくない)
  • MySQL でデータベースを作成した後、ユーザー ''root''@''%'' によるデータベース ''xxx'' へのアクセスが拒否される問題を解決する
  • MySQL で中国語を入力するときに発生するエラー 1366 の解決方法
  • MySQL と Oracle SQL 言語の違いの比較
  • MySQL での or ステートメントの使用例

<<:  Vue で Axios カプセル化を使用するための完全なチュートリアル

>>:  Ubuntu Server のターミナルのウェルカム メッセージで広告を無効にする方法

推薦する

Linux xargsコマンドの使用

1. 機能: xargs は、stdin 内のスペースまたは改行で区切られたデータをスペースで区切ら...

jsはショッピングカートの加算と減算、価格計算を実装します

この記事の例では、ショッピングカートの加算と減算、価格計算を実装するためのjsの具体的なコードを共有...

Vue-cliフレームワークはタイマーアプリケーションを実装します

技術的背景このアプリケーションは vue-cli フレームワークを使用し、カスタム コンポーネント ...

LinkedIn がウェブサイト閲覧を簡素化するためにリニューアル

ビジネス ソーシャル ネットワーキング サイト LinkedIn は最近、ナビゲーション バーとユー...

MySQL チュートリアル データ定義言語 DDL の例 詳細な説明

目次1. SQL言語の基本機能の紹介2. データ定義言語の目的3. データベースの作成と破棄4. デ...

ElementuiはデータをxlsxとExcelテーブルにエクスポートします

最近、Vue プロジェクトについて知り、ElementUI でデータを xlsx および Excel...

ホバー画像のポップアウトポップアップ効果を実現するための純粋な CSS のサンプルコード

実施原則メイングラフィックは、背景と前景の 2 つの要素で構成されています。次のサンプルコードでは、...

HTMLでマスクレイヤーを実装する方法 HTMLでマスクレイヤーを使用する方法

Web ページでマスク レイヤーを使用すると、繰り返しの操作を防ぎ、読み込みを促進できます。また、ポ...

Nginx コンパイル済み nginx - 新しいモジュールを追加

1. 既存のモジュールを表示する nginx の sbin ディレクトリに nginx の sbin...

シンプルなカウントダウン効果を実現するJavaScript

この記事の例では、カウントダウン効果を実現するためのJavaScriptの具体的なコードを参考までに...

XHTML チュートリアル: 初心者のための XHTML の基礎

<br />当サイトのオリジナルコンテンツですので、転載の際は出典を123WORDPRE...

MySQL 起動エラー 1067 および文字セットを変更して再起動した後の無効な回復

公式サイトからmysql-5.6.37-winx64.zipの解凍バージョンをダウンロードし、構成フ...

Linux カーネルの探究: Kconfig の秘密

Linux 構成/ビルド システムがどのように機能するかを深く理解します。 Linux カーネル構成...