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 のターミナルのウェルカム メッセージで広告を無効にする方法

推薦する

Docker デプロイメント MySQL8 クラスター (マスター 1 台とスレーブ 2 台) の実装手順

目次1. CentOS 7.9 20にDockerをインストールする2. MySQL クラスターをデ...

原因不明のMySqlサービス消失の解決策

原因不明のMySqlサービス消失の解決策先ほど、MySQL-Front が突然 MySql を開けな...

この記事はPReact10.5.13のソースコードを理解するのに役立ちます

目次render.js 部分create-context.js 部分差分部分Reactのソースコード...

uniappのグローバル変数実装の詳細な説明

序文この記事では、uniapp グローバル変数の実装方法をいくつかまとめています。詳細な知識は、uV...

JavaScript で動的な QML オブジェクトを作成する方法

1. オブジェクトを動的に作成するJavaScript からオブジェクトを動的に作成する方法は 2 ...

JSプロトタイプとプロトタイプチェーンについての簡単な説明

目次1. プロトタイプ2. プロトタイプポインタ: __proto__要約する1. プロトタイプJa...

Linux に MySQL 8.0.x をインストールするための完全な手順

マイグレーションMySQL 入門MySQL はもともとオープンソースのリレーショナル データベース管...

Linux の cut コマンドの説明

Linux や Unix の cut コマンドは、ファイルの各行から一部を切り取って標準出力に出力す...

JavaScript が Jingdong のカルーセル効果を模倣

この記事では、JD.comのカルーセル効果の表示を実現するためのJavaScriptの具体的なコード...

MySQL ストアド プロシージャで case ステートメントを使用する詳細な例

この記事では、例を使用して、MySQL ストアド プロシージャでの case ステートメントの使用方...

現在のマウススライドの座標を取得するVue+openlayer5メソッド

序文: Vue プロジェクトで現在のマウスの座標を取得するにはどうすればよいでしょうか。ここで共有す...

nginx の http リクエスト処理の各段階の詳細な分析

nginx の HTTP モジュールを作成する場合、リクエスト開始時のアクセス許可の有無、コンテンツ...

JavaScriptはPromiseを使用して複数の繰り返しリクエストを処理します

1. なぜこの記事を書くのですか?重複リクエストの処理に関する記事をたくさん読んだことがあるでしょう...

Node.js の TCP 接続処理のコア プロセス

数日前、友人と Node.js の epoll とリクエスト処理に関する知識を交換しました。今日は、...