JDBC接続の問題は、MySQLのレコードに遭遇しました

gitpageのブログのアドレスhttps://xisynotz.xyz

問題の1.ドライバパッケージのバージョン!

データベース接続に継続されますが与えられたが、明らかなプロンプトがないようですされていません。

データベースはMysql8バージョンを使用しますが、ドライバパッケージのMySQLのバージョンは5.1.37である内部で動作します。単に8.0.11バージョンのドライバパッケージを変更。

そしてまた、元から、変更された駆動パッケージ:/generatorSqlmapCustom/lib/mysql-connector-java-5.1.28-bin.jar

MySQLのコネクタ-javaの-8.0.11.jar:に置き換えられ

名前にClass.forName(「com.mysql.cj.jdbc.Driver」)のためにMysql8.0駆動接続JDBCドライバクラスを注意してください。

サーバの身元確認なし2.Establishing SSL接続が推奨されません。

スタックオーバーフロー

プラスuseSslオプション=偽

con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useSSL=false", "root", "123456");

超えた接続の数3

'root' has exceeded the 'max_questions' resource (current value: 2) 

通常の状況下では、ユーザーはこの値は0で、変更するつもりはない、その後、制限はありませんが、私は、この値を変更し、手を借りて。

この問題を解決し、あなたがして許可を更新し、単純に値を編集し、他のスーパーユーザのログイン権限を使用する必要があります。

4.タイムゾーンの問題

java.sql.SQLException: The server time zone value '???ú±ê×??±??' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

プラスserverTimezone = GMT

con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useSSL=true&serverTimezone=GMT", "root", "123456");

5.MySQL 8.0公開鍵の取得が許可されていません

最も簡単な解決策は、実際の接続allowPublicKeyRetrieval =を再度追加することです

ドキュメントの特定の説明は次のとおりです。

顧客がsha256_password認証を使用する場合、パスワードは、伝送保護TLSプロトコルの間に使用されなければならないが、RSA公開鍵を利用できない場合は、サーバが提供する公開鍵を使用します。ServerRSAPublicKeyFileは、RSA公開鍵サーバによって指定された、または接続AllowPublicKeyRetrievalに=真のパラメータは、クライアントがサーバーから公開鍵を取得できるようにする、それが本当のAllowPublicKeyRetrieval =はパスワードテキストクリアする仲介エージェントの取得(MITM)を介して、悪意のある攻撃につながる可能性があることに注意すべきなので、デフォルトでオフになって、明示的にオンにする必要があります。

おすすめ

転載: blog.csdn.net/saber_jk/article/details/92697654