Wir entwickeln hier Rails-Apps. Wenn Sie jedoch eine Web-App entwickeln, wissen Sie, ob dieser Fehler auftritt.
this is incompatible with sql_mode=only_full_group_by
Die Details des Problems werden in verschiedenen Artikeln erläutert. Lesen Sie daher bitte die folgenden Artikel. Dieses Mal ** war ich süchtig danach, MySQL 8.0 mit einem 5.7-Gefühl zu berühren.
$ mysql --version
mysql Ver 8.0.21 for Linux on x86_64 (MySQL Community Server - GPL)
Die Einstellungen von mysqld sind die Inhalte, die unter Bezugnahme auf den obigen Artikel festgelegt wurden. Dann ist der folgende Fehler aufgetreten.
$ mysql --help | grep my.cnf
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf
$ sudo vi /etc/my.cnf
---
[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
---
$ systemctl restart mysqld.service
Failed to restart mysqld.service: The name org.freedesktop.PolicyKit1 was not provided by any .service files
$ sudo systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code)seit Baum 2020-10-22 03:50:33 UTC; 27s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 8909 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS (code=exited, status=1/FAILURE)
Process: 8885 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 8909 (code=exited, status=1/FAILURE)
Status: "Server startup in progress"
Error: 2 (No such file or directory)
22. Oktober 03:50:32 xxx-xxx-xxx-xxx.yyyyy.zzz systemd[1]: Starting MySQL Server...
22. Oktober 03:50:33 xxx-xxx-xxx-xxx.yyyyy.zzz systemd[1]: mysqld.service: main process exited, code=exited, status=1/FAILURE
22. Oktober 03:50:33 xxx-xxx-xxx-xxx.yyyyy.zzz systemd[1]: Failed to start MySQL Server.
22. Oktober 03:50:33 xxx-xxx-xxx-xxx.yyyyy.zzz systemd[1]: Unit mysqld.service entered failed state.
22. Oktober 03:50:33 xxx-xxx-xxx-xxx.yyyyy.zzz systemd[1]: mysqld.service failed.
$ sudo less /var/log/mysqld.log
...
2020-10-22T03:50:33.416784Z 0 [ERROR] [MY-000077] [Server] /usr/sbin/mysqld: Error while setting value 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' to 'sql_mode'.
2020-10-22T03:50:33.416979Z 0 [ERROR] [MY-010119] [Server] Aborting
Das von mir verwendete MySQL war 8.0 und es war ein Problem, das durch die Verwendung mit einem 5.7-Gefühl ohne besondere Bedeutung von Sweat verursacht wurde
In MySQL 8.0 hat sich der Inhalt von sql_mode
teilweise von 5.7 geändert, und diesmal war ich süchtig nach der Tatsache, dass NO_AUTO_CREATE_USER
gelöscht wurde.
Nachdem die folgenden Einstellungen mit "NO_AUTO_CREATE_USER" entfernt wurden, wurde MySQL erfolgreich gestartet und der Übersichtsfehler behoben.
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
Recommended Posts