MySQLデータベースを5.5.25から8.0.12にアップグレードされ、次のように記録し、いくつかの問題が発生しました:
データベースがインストールされた後、元のデータをインポートし、Tomcatを起動し、認証caching_sha2_pluginをロードすることができないエラー次のように、溶液です。
USER 'ルート'をALTER @ 'localhostの 「パスワードIDENTIFIED BY PASSWORDでEXPIRE決して;# 暗号化ルール変更
'ルートを' @ IDENTIFIED 'localhost'の ALTERユーザ'パスワード' BY mysql_native_password WITH;#のユーザーのパスワードについてのアップデートを
FLUSH PRIVILEGES;#リフレッシュ許可
インターネットも言ったこと、my.iniファイルを変更する追加することにより、
[mysqldを]
default_authentication_plugin = mysql_native_password
私のテスト、失敗した後、私は理由を知りません。
https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-versions.html
Connector / Jのバージョン | JDBCバージョン | MySQLサーバのバージョン | JREはサポートされています | コンパイルに必要なJDK | 状態 |
8.0 | 4.2 | 5.6、5.7、8.0 | 1.8.x | 1.8.x | 一般的な可用性。推奨バージョン。 |
5.1 | 3.0、4.0、4.1、4.2 | 5.6 * 5.7 * 8.0 * | 1.5.xの、1.6.xの、1.7.x、は1.8.x * | 1.5.xのとは1.8.x | 一般的な可用性 |
図は、もともと5.1.21(新しいMySQLのコネクタ-のjava-5.1.46をダウンロードし、その後のMySQL *。以上8.0コネクタドライブはドライバのバージョン5.1.xでも8.0をサポートし、JDK1.8のサポートを必要と示しており、 )、Tomcatは与えられずに、再起動します!
プロジェクトはいくつかの時間のために実行されている場合は、別のエラー:
SELECTリストの式#1は、GROUP BY句ではなく、nonaggreが含まれています
オンライン5.7のリリース後にデフォルトで開いONLY_FULL_GROUP_BY SQLモードを意味し、ビットを検索、追加、この問題を引き起こすのmy.iniを変更することができます
[mysqldを]
sql_modeの= STRICT_TRANS_TABLES、NO_ZERO_IN_DATE、NO_ZERO_DATE、ERROR_FOR_DIVISION_BY_ZERO、NO_AUTO_CREATE_USER、NO_ENGINE_SUBSTITUTION
これは、Tomcatを再起動して、プロジェクトの正常な動作をONLY_FULL_GROUP_BYでsql_modeのを削除し、MySQLを再起動し、です。
オンラインは、グローバル設定を変更する設定@@ sql_modeの=「STRICT_TRANS_TABLES、NO_ZERO_IN_DATE、NO_ZERO_DATE、ERROR_FOR_DIVISION_BY_ZERO、NO_AUTO_CREATE_USER、NO_ENGINE_SUBSTITUTION」を介して言った、私がテストして成功することはできませんが、いくつかは、グローバル設定は、新しいデータベースの後にのみ効果的であると言います。私は確認されませんでした。知ることがありますが、メッセージを残してください!
結論は次のとおりです。本番環境では、簡単にバージョンを変更しないでください!