Notizen

Benutzerverwaltung

  • Beim Anlegen neuer Benutzer reicht es nicht, den Benutzernamen anzugeben; es muss auch der Host (die Source-Adresse) angegeben werden
    • local_test@localhost
    • local_test@127.0.0.1
    • local_test@'192.168.11.12'
    • local_test@'192.168.%'
    • local_test@'%'
    • Anmerkung: Es handelt sich um unterschiedliche Benutzer
  • Benutzernamen sollten so explizit wie möglich gewählt werden
  • Benutzer können entweder implizit über CREATE (danach müssen die Rechte separat zugewiesen werden) oder explizit über GRANT erzeugt werden.
  • Man kann einen Benutzer über INSERT hinzufügen; dies sollte jedoch nicht gemacht werden, da keine Abhängigkeiten berücksichtigt werden
  • Geändert wir dein Benutzer über ALTER USER, gelöscht wird ein Benutzer über DROP USER
  • Die Berechtigungen eines Benutzers werden über REVOKE entzogen

Berechtigungen

  • Gegensätzliche Berechtigungen sind möglich (z.B. GRANT CREATE von localhost ABER 'nur' GRANT SELECT von 192.168.11.12)
  • Global gesetzt Rechte können nicht unterhalb eingeschränkt werden; daher direkt an Schema/Datenbanken/Tabellen/Spalte berechtigen
  • Um Rechte abzufragen, bieten sich zwei Schritte an:
    • 1) Abfrage der eingerichteten Benutzer nach Username (hier 'root')
    • select * from mysql.user where user = 'root';
    • 2) Abfrage der einzelnen gelisteten Benutzer (hier 'root@localhost')
    • show grants for root@localhost;

Konfiguration

  • Die Konfig-Dateien lassen sich über mysql –help –verbose|grep '\.my.cnf' finden
  • Die Standard-Pfade für MySQL-Konfigurationen sind /etc/my.cnf, /etc/mysql/my.cnf und ~/.my.cnf
  • Globale Variablen in mysql können mit show global variables\G angezeigt werden; sollen nur bestimmte Variablen angezeigt werden, kann die Ausgabe mit LIKE gefiltert werden z.B. show global variables like '%char%'\G
  • Status-Variablen können über show global status angezeigt werden
  • Wichtige Parameter
    • Buffers Anteil von RAM un Bytes für InnoDB und MyISAM
      • innodb_buffer_pool_size - ca. 70-80% vom verfügbaren RAM
      • key_buffer_size - ca. 25% vom verfügbaren RAM
    • InnoDB
      • innodb_file_per_table - jede InnoDB Tabelle ist eine separate Datei
      • innodb_log_file_size - REDO log files, empfohlen 2x256M
      • innodb_flush_log_at_trx_commit: [0,1,2]
        • ACID: 1 - Konsistenz!
        • Asynchron: 0,2 - Performance!
    • Connections
    • Tabellenzugriffe
      • table_open_cache: max_connections x: max. Anzahl Tabellen per Abfrage
      • table_definition_cache: für Tabellendefinitionen
      • query_cache_type / query_cache_size - Cache für Result Sets
        • Case-Sensitiv für SQL Abfragen
        • Mutex-basiert, daher schlecht für viele parallele Zugriffe
    • SQL Logging (binlogs)
      • sql_log_bin [0,1] / [ON/OFF] - Client Aktivitäten ins binlog schreiben (per Session setzen)
      • log_bin: wichtig für Replikation und BAckups wiederherstellen. Gilt global für alle Sessions

Best Practice

  • Für eine bessere Lesbarkeit bietet sich an, einen SQL-Befehl nicht mit ; sondern mit \G abzuschließen

Server
95.217.184.106 2a01:4f9:c010:88d3::/64 antoniya-kuhlmeyer-1
49.12.33.167 2a01:4f8:c17:97fe::/64 sandra-attermeyer-1
49.12.64.65 2a01:4f8:c17:676b::/64 patrick-betschner-1

Zugangsdaten
Servername: patrick-betschner-1
Adresse: root@49.12.64.65
Passwort: Igh5Zaet

Zugangsdaten
Servername: sandra-attermeyer-1
Adresse: root@49.12.33.167
Passwort: Igh5Zaet

Vorgegebene Installation

root@patrick-betschner-1:~# cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
# MySQL installieren
#------------------------------------
apt update
apt-get install mysql-server

# MySQL-Service prüfen
#------------------------------------
systemctl status mysql
# ODER
service mysql status

Erste Schritte im CLI

#MySQL-Bash starten
#------------------------------------
mysql

#MySQL-Befehle ausführen
#------------------------------------
status              #Zeige Infos zum Server
show databases;     #Zeige alle Datenbanken

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information