[RAILS] J'étais accro à l'idée de toucher MySQL 8.0 avec un sentiment de 5.7. Problème de configuration My.cnf

Aperçu

スクリーンショット 2020-10-22 12.39.42.png

Je développe des applications Rails ici, mais si vous développez une application Web, vous saurez si vous obtenez cette erreur.

this is incompatible with sql_mode=only_full_group_by

Les détails du problème sont expliqués dans divers articles, veuillez donc lire les articles suivants. Cette fois, ** j'étais accro à l'idée de toucher MySQL 8.0 avec une sensation de 5,7.

environnement

$ mysql --version
mysql  Ver 8.0.21 for Linux on x86_64 (MySQL Community Server - GPL)

phénomène

Les paramètres de mysqld sont le contenu défini en se référant à l'article ci-dessus. Ensuite, l'erreur suivante s'est produite.

$ 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)depuis l'arbre 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 octobre 03:50:32 xxx-xxx-xxx-xxx.yyyyy.zzz systemd[1]: Starting MySQL Server...
22 octobre 03:50:33 xxx-xxx-xxx-xxx.yyyyy.zzz systemd[1]: mysqld.service: main process exited, code=exited, status=1/FAILURE
22 octobre 03:50:33 xxx-xxx-xxx-xxx.yyyyy.zzz systemd[1]: Failed to start MySQL Server.
22 octobre 03:50:33 xxx-xxx-xxx-xxx.yyyyy.zzz systemd[1]: Unit mysqld.service entered failed state.
22 octobre 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

Cause

Le MySQL que j'utilisais était 8.0 et cela n'avait aucun sens. C'était un problème causé par son utilisation avec une sensation de 5.7. Dans MySQL 8.0, le contenu de sql_mode a été partiellement modifié par rapport à 5.7, et cette fois, j'étais accro au fait que NO_AUTO_CREATE_USER avait été supprimé.

Faire face

Avec les paramètres suivants avec NO_AUTO_CREATE_USER supprimé, MySQL a démarré avec succès et l'erreur de présentation a été résolue.

[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

Recommended Posts

J'étais accro à l'idée de toucher MySQL 8.0 avec un sentiment de 5.7. Problème de configuration My.cnf
Notez que j'étais accro au traitement par lots avec Spring Boot
Une histoire à laquelle j'étais accro lors de l'obtention d'une clé qui a été automatiquement essayée sur MyBatis
Ce à quoi j'étais accro lors de l'introduction de la bibliothèque JNI
Ce que j'ai corrigé lors de la mise à jour vers Spring Boot 1.5.12 ・ Ce à quoi j'étais accro
L'histoire à laquelle j'étais accro lors de la création de STS
J'étais accro au démarrage de sbt
Une note quand j'étais accro à la conversion d'Ubuntu sur WSL1 en WSL2
Ce à quoi j'étais accro lors de la mise en œuvre de l'authentification Google avec des rails
À propos de la question pour laquelle j'étais accro à l'utilisation de hashmap
[Rails] Comment résoudre ActiveSupport :: MessageVerifier :: InvalidSignature auquel j'étais accro lors de l'introduction de la connexion Twitter [ActiveStorage]
J'étais accro à la réécriture sur @ SpringApplicationConfiguration-> @SpringBootTest
J'étais accro à la méthode du rouleau
J'étais accro au test Spring-Batch
Mémorandum: Ce à quoi j'étais accro quand j'ai frappé l'API de comptabilité freee
[Rails] J'étais accro aux paramètres nginx lors de l'utilisation d'Action Cable.
Problèmes auxquels j'étais accro lors de la création de l'environnement digdag avec docker
[Circle CI] J'étais accro au test automatique de Circle CI (rails + mysql) [Memo]
J'étais accro à l'utilisation de RXTX avec Sierra
J'étais accro à faire onActivityResult () avec DialogFragment
Ce à quoi j'étais accro lors du développement d'une application Spring Boot avec VS Code
Un site facile à comprendre lorsque j'ai commencé à apprendre Spring Boot
J'étais accro à NoSuchMethodError dans Cloud Endpoints
J'étais accro au record du modèle associé
Comment initialiser par lots des tableaux avec Java que je ne savais pas quand j'étais débutant
J'étais accro à WSl en essayant de créer un environnement de développement d'applications Android avec Vue.js
Ce à quoi j'étais accro en utilisant rspec sur des rails
J'étais accro à la configuration de default_url_options avec l'introduction de la conception de Rails
J'étais accro à la mise à jour de la déclaration dans MyBatis
J'étais accro au réglage de laradock + VSCode + xdebug
Ce à quoi j'étais accro avec l'API REST Redmine
J'étais étrangement accro à l'utilisation de l'API Stream de Java avec Scala
[Circle CI] Une histoire à laquelle j'étais accro chez Start Building
J'étais accro au paramètre API version min23 de registerTorchCallback
J'ai pu déployer l'application Docker + laravel + MySQL sur Heroku!
Une histoire à laquelle j'étais accro à deux reprises avec le paramètre de démarrage automatique de Tomcat 8 sur CentOS 8