こんにちは、私はChenxiです。この記事を読んでとてもうれしく思います。この記事では、プロジェクトで発生した問題(開発プロセス中のmysqlバージョンの非互換性が原因で発生する問題)を整理します。共有して新しい知識を得て、みんなで一緒に進歩することができます!
最近のプロジェクト開発は明らかに他の人のコンピューターに出くわしました。私のコンピューターでのローカルテストはそのような問題です
....this is incompatible with sql_mode=only_full_group_by
mysql5.7のローカルでの使用についてお話しましょう
問題が発生?
mysql5.7.xバージョンの最新バージョンをダウンロードしてインストールします。デフォルトではonly_full_group_by
モードを開くようになっていますが、このモードはオンになってgroup by
おり、エラーに関する元のステートメントはそれから削除されました。
オープンしたらonly_full_group_by
、彼らが感じる、group by
となり、distinct
唯一それらの影響を受け、フィールド情報を得ることができ、かつ共存による影響を受けなかった、そうではない他のフィールドgroup by
の機能は非常に狭くなり、
only_full_group_by
モードをオンにすることをお勧めします。
mysql
関数があるため:any_value(field)
許可は非パケットフィールドを表示します(オフonly_full_group_by
モードでも同じ効果があります)。
異常なコンソールの問題を解決するには?
最初に実行
select @@global.sql_mode;
クエリすると、実際にはonly_full_group_byが前にあることがわかり、この行をコピーして、この構成パラメーターを削除します。
次に実行します
set @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
短所:mysqlが再起動すると、上記の実行は失敗します
もちろん、この問題を完全に解決したい場合は、構成ファイルを変更する必要があります。インターネット上の多くの解決策を参照してください...
最後に、mysqlの基本的な起動とシャットダウンをまとめます。
----启动MySQL
mysqld --defaults-file=/etc/my.cnf &
mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &
service mysql start
/etc/init.d/mysql start
mysqld_multi start #多实例
net start mysql #Windows
----关闭MySQL
mysqladmin -uroot -plhr -S /tmp/mysql3306.sock shutdown
service mysql stop
/etc/init.d/mysql stop
mysqld_multi stop #多实例
net stop mysql #Windows
--杀死mysql
killall mysqld
killall -9 mysqld
2020.09.18みなさん、あなたの恋に行きますように!