Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
linux:mysql [06-08-2019 11:35] edmc73 [Erreur] |
linux:mysql [09-10-2019 16:40] edmc73 |
||
---|---|---|---|
Ligne 69: | Ligne 69: | ||
/^DROP TABLE IF EXISTS `$table`/ .. /^UNLOCK TABLES;$/ and print; | /^DROP TABLE IF EXISTS `$table`/ .. /^UNLOCK TABLES;$/ and print; | ||
+ | </ | ||
+ | |||
+ | Pour automatiser la connexion a mysql et ne pas avoir à taper de mot de passe, créer un fichier **~/ | ||
+ | < | ||
+ | [client] | ||
+ | user=root | ||
+ | password=somepassword | ||
</ | </ | ||
===== Logguer les requêtes en temps réel ponctuellement ===== | ===== Logguer les requêtes en temps réel ponctuellement ===== | ||
Ligne 335: | Ligne 342: | ||
</ | </ | ||
+ | |||
+ | ===== Strict Mode ===== | ||
+ | |||
+ | Bon à savoir si jamais vous copiez des dates en 0000-00-00 et que vous avez une erreur | ||
+ | |||
+ | SQLSTATE[22007]: | ||
+ | |||
+ | Strict mode affects whether the server permits ' | ||
+ | |||
+ | ===== Log binaire ===== | ||
+ | |||
+ | Utiliser des log binaire pour mettre à jour une base de données distante après avoir fait un mysqldump | ||
+ | |||
+ | Vérifier si les log binaires sont activé | ||
+ | |||
+ | < | ||
+ | MariaDB [(none)]> | ||
+ | +------------------+-----------+ | ||
+ | | Log_name | ||
+ | +------------------+-----------+ | ||
+ | | mysql-bin.000001 | 328 | | ||
+ | +------------------+-----------+ | ||
+ | 1 row in set (0.000 sec) | ||
+ | |||
+ | |||
+ | MariaDB [(none)]> | ||
+ | +---------------------------------+--------------------------------+ | ||
+ | | Variable_name | ||
+ | +---------------------------------+--------------------------------+ | ||
+ | | log_bin | ||
+ | | log_bin_basename | ||
+ | | log_bin_compress | ||
+ | | log_bin_compress_min_len | ||
+ | | log_bin_index | ||
+ | | log_bin_trust_function_creators | OFF | | ||
+ | +---------------------------------+--------------------------------+ | ||
+ | 6 rows in set (0.001 sec) | ||
+ | |||
+ | </ | ||
+ | |||
+ | Si non | ||
+ | < | ||
+ | mysql> SHOW BINARY LOGS; | ||
+ | ERROR 1381 (HY000): You are not using binary logging | ||
+ | </ | ||
+ | |||
+ | Pour activer dans le cas de mariaDB | ||
+ | vi / | ||
+ | Décommenter la ligne | ||
+ | log_bin | ||
+ | et restarter mariaDB | ||
+ | systemctl restart mariadb.service | ||
+ | |||
+ | |||
+ | Vos fichiers de log binaires sont maintenant stocké dans / | ||
+ | |||
+ | **mysqlbinlog** permet de lire les fichiers de log binaire et de générer une sortie sql | ||
+ | < | ||
+ | # mysqlbinlog mysql-bin.000001 | ||
+ | mysqlbinlog: | ||
+ | |||
+ | ---------- Si vous avez ce message d' | ||
+ | |||
+ | # mysqlbinlog --no-defaults mysql-bin.000001 | ||
+ | </ | ||
+ | |||
+ | Filtre possible: | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | example de restauration | ||
+ | mysqlbinlog / | ||
+ | |||
+ | mysqlbinlog --no-defaults --start-datetime=" | ||
+ | |||
+ | Par défaut, mysql s' | ||
+ | |||
+ | mysqlbinlog --no-defaults --start-datetime=" | ||
+ | |||
+ | ===== Auto increment ===== | ||
+ | |||
+ | On peut réinitialiser la valeur de l'auto increment d'un id avec la requete | ||
+ | <code sql> | ||
+ | ALTER TABLE `users` AUTO_INCREMENT = 1; | ||
+ | </ | ||
+ | Mysql prendra automatiquement le max(id) + 1 | ||
+ | |||
+ | Pour réinitialiser complètement une colonne d'id | ||
+ | <code sql> | ||
+ | ALTER TABLE `users` DROP `id`; | ||
+ | ALTER TABLE `users` AUTO_INCREMENT = 1; | ||
+ | ALTER TABLE `users` ADD `id` int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST; | ||
+ | </ | ||
+ | |||
+ | Si votre id est utilisé dans d' | ||
+ | |||
+ | <code sql> | ||
+ | SET @count = 0; | ||
+ | UPDATE `users` SET `users`.`id` = @count:= @count + 1; | ||
+ | ALTER TABLE `users` AUTO_INCREMENT = 1; | ||
+ | </ |