Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| datenbanken:mysql [2021/11/01 11:03] – [mysql table is marked as crashed and last (automatic?) repair failed] st | datenbanken:mysql [2024/07/16 17:09] (aktuell) – [MySQL 8.4 mysql_native_password und ansible] st | ||
|---|---|---|---|
| Zeile 127: | Zeile 127: | ||
| + | ==== Verschlüsselung ==== | ||
| + | MySql kann ssl-Verschlüsselung, | ||
| + | <code bash> | ||
| + | |||
| + | my.cnf: | ||
| + | < | ||
| + | ssl-cert = / | ||
| + | ssl-key = / | ||
| + | </ | ||
| + | |||
| + | Andere Fehlerquellen: | ||
| ==== Konfigurationsparamter tunen ==== | ==== Konfigurationsparamter tunen ==== | ||
| + | [[https:// | ||
| + | |||
| + | Wichtige Parameter ausgeben und Speicherverbrauch berechnen: | ||
| + | <code bash> | ||
| + | mysql -e "show variables; show status" | ||
| + | { | ||
| + | VAR[$1]=$2 | ||
| + | } | ||
| + | END { | ||
| + | MAX_CONN = VAR[" | ||
| + | MAX_USED_CONN = VAR[" | ||
| + | BASE_MEM=VAR[" | ||
| + | MEM_PER_CONN=VAR[" | ||
| + | MEM_TOTAL_MIN=BASE_MEM + MEM_PER_CONN*MAX_USED_CONN | ||
| + | MEM_TOTAL_MAX=BASE_MEM + MEM_PER_CONN*MAX_CONN | ||
| + | printf " | ||
| + | printf "| %40s | %15.3f MB |\n", " | ||
| + | printf "| %40s | %15.3f MB |\n", " | ||
| + | printf "| %40s | %15.3f MB |\n", " | ||
| + | printf "| %40s | %15.3f MB |\n", " | ||
| + | printf "| %40s | %15.3f MB |\n", " | ||
| + | printf " | ||
| + | printf "| %40s | %15.3f MB |\n", "BASE MEMORY", | ||
| + | printf " | ||
| + | printf "| %40s | %15.3f MB |\n", " | ||
| + | printf "| %40s | %15.3f MB |\n", " | ||
| + | printf "| %40s | %15.3f MB |\n", " | ||
| + | printf "| %40s | %15.3f MB |\n", " | ||
| + | printf "| %40s | %15.3f MB |\n", " | ||
| + | printf "| %40s | %15.3f MB |\n", " | ||
| + | printf "| %40s | %15.3f MB |\n", " | ||
| + | printf " | ||
| + | printf "| %40s | %15.3f MB |\n", " | ||
| + | printf " | ||
| + | printf "| %40s | %18d |\n", " | ||
| + | printf "| %40s | %18d |\n", " | ||
| + | printf " | ||
| + | printf "| %40s | %15.3f MB |\n", "TOTAL (MIN)", | ||
| + | printf "| %40s | %15.3f MB |\n", "TOTAL (MAX)", | ||
| + | printf " | ||
| + | }' | ||
| + | </ | ||
| + | [[https:// | ||
| ^ Parameter ^ Bedeutung ^ Default ^ | ^ Parameter ^ Bedeutung ^ Default ^ | ||
| Zeile 152: | Zeile 206: | ||
| **Rechte** (globale [admins], lokale [user]: auf eine Datenbank beschränkte Rechte) | **Rechte** (globale [admins], lokale [user]: auf eine Datenbank beschränkte Rechte) | ||
| + | |||
| + | ==== remove binary logs ==== | ||
| + | |||
| + | PURGE BINARY LOGS BEFORE DATE(NOW() - INTERVAL 3 DAY) + INTERVAL 0 SECOND;# | ||
| + | |||
| + | / | ||
| + | < | ||
| + | [mysqld] | ||
| + | expire_logs_days=3 | ||
| + | </ | ||
| + | |||
| + | https:// | ||
| ==== Backup ==== | ==== Backup ==== | ||
| Zeile 244: | Zeile 310: | ||
| === MySQL-Benutzer anlegen === | === MySQL-Benutzer anlegen === | ||
| - | Der SQL-Code: | + | Der SQL-Code |
| <code sql> | <code sql> | ||
| - | CREATE USER ' | + | CREATE USER ' |
| - | GRANT USAGE ON *.* TO ' | + | GRANT USAGE ON *.* TO ' |
| CREATE DATABASE IF NOT EXISTS `DBUSER1`; | CREATE DATABASE IF NOT EXISTS `DBUSER1`; | ||
| GRANT ALL PRIVILEGES ON `DBUSER1`.* TO ' | GRANT ALL PRIVILEGES ON `DBUSER1`.* TO ' | ||
| Zeile 278: | Zeile 344: | ||
| SQL-Befehle zum anlegen eines neuen Benutzers user1 mit dem passwort " | SQL-Befehle zum anlegen eines neuen Benutzers user1 mit dem passwort " | ||
| - | <file> | + | <code sql> |
| CREATE USER ' | CREATE USER ' | ||
| GRANT USAGE ON *.* TO ' | GRANT USAGE ON *.* TO ' | ||
| Zeile 285: | Zeile 351: | ||
| GRANT ALL PRIVILEGES ON `db1`.* TO ' | GRANT ALL PRIVILEGES ON `db1`.* TO ' | ||
| - | </file> | + | </code> |
| === Benutzer löschen === | === Benutzer löschen === | ||
| Zeile 302: | Zeile 368: | ||
| === Passwort Ändern === | === Passwort Ändern === | ||
| - | <code bash> | + | * Alte Datenbanken: |
| use mysql; | use mysql; | ||
| update user set password=PASSWORD(" | update user set password=PASSWORD(" | ||
| + | flush privileges; | ||
| + | quit | ||
| </ | </ | ||
| - | + | * ab Version 5.7.x: <code bash> | |
| - | ab Version 5.7.x: | + | |
| - | <code bash> | + | |
| use mysql; | use mysql; | ||
| update user set authentication_string=PASSWORD(" | update user set authentication_string=PASSWORD(" | ||
| + | flush privileges; | ||
| + | quit | ||
| </ | </ | ||
| - | + | * ab MariaDB-10.4+ (mysql.user ist eine View und keine Table mehr [[https:// | |
| - | <code bash> | + | SET PASSWORD FOR ' |
| flush privileges; | flush privileges; | ||
| quit | quit | ||
| </ | </ | ||
| - | |||
| - | |||
| === Rechte eines Benutzers === | === Rechte eines Benutzers === | ||
| + | <code mysql> | ||
| SHOW GRANTS; | SHOW GRANTS; | ||
| SHOW GRANTS FOR CURRENT_USER(); | SHOW GRANTS FOR CURRENT_USER(); | ||
| + | </ | ||
| === Plugin " | === Plugin " | ||
| Zeile 426: | Zeile 493: | ||
| show_compatibility_56 | show_compatibility_56 | ||
| </ | </ | ||
| + | |||
| + | ==== MySQL 8.4 mysql_native_password und ansible ==== | ||
| + | |||
| + | MySQL 8.4 lädt standardmäßig kein mysql_native_password mehr (Fehlermeldung: | ||
| + | Nachfolger: caching_sha2_password (PHP unterstützt das seit 7.4). | ||
| + | |||
| + | siehe auch: https:// | ||
| + | |||
| + | statt | ||
| + | <code yaml> | ||
| + | community.mysql.mysql_user: | ||
| + | password: ' | ||
| + | </ | ||
| + | also | ||
| + | <code yaml> | ||
| + | community.mysql.mysql_user: | ||
| + | password: ' | ||
| + | encrypted: true | ||
| + | </ | ||
| ===== MySQL interna ===== | ===== MySQL interna ===== | ||