MySQL
Inhaltsverzeichnis
Allgemeines
Üblicherweise verwendet man den "fork" MariaDB.
Passwort
Erste Passwort-Vergabe:
CREATE USER username@localhost IDENTIFIED BY 'password';
(username ersetzen durch DB-Benutzernamen, das Passwort in Hochkommas setzen).
Passwort ändern:
SET PASSWORD FOR 'user-name-here'@'hostname-name-here' = PASSWORD('new-password-here')
Hinweis für Drupal: Das Passwort muss entsprechend auch in settings.php angepasst werden.
root-Login bei Strato VServer Linux mit Plesk:
mysql -u admin -p
(admin-PW steht in /etc/psa/.psa.shadow)
Alternativ:
mysql -uadmin -p`cat /etc/psa/.psa.shadow`
Benutzer
Benutzer anlegen:
CREATE USER 'username'@localhost IDENTIFIED BY 'YYYYYY'
Benutzer anzeigen:
SELECT USER FROM mysql.user;
Benutzer löschen:
DROP USER 'username'@'localhost';
DB-Connector
https://mariadb.com/kb/en/about-mariadb-connector-j/
Product: Java 8
Backup
Alle Datenbanken sichern:
mysqldump -u root -p --all-databases > sicherung.sql
Eine bestimmte Datenbank sichern:
mysqldump -u root -p foobar > sicherung.sql
Backup einspielen:
USE datenbankname SOURCE sicherung.sql;
Notizen
Standardport: 3306
Die aktuelle Datenbank anzeigen:
SELECT DATABASE();
Daten auslesen von der cmd aus:
E:\>C:\xampp\mysql\bin\mysql -uroot datenbankname -e "select mail from users"
... mit Export in eine Textdatei:
E:\>C:\xampp\mysql\bin\mysql -uroot datenbankname -e "select mail from users" > meineDatei.txt
Datenbank vorbereiten für CMS:
CREATE DATABASE metafdb CHARACTER SET utf8 COLLATE utf8mb4_general_ci; CREATE USER fh1@localhost IDENTIFIED BY 'ks' GRANT ALL PRIVILEGES ON metadb.* TO flh1@localhost; FLUSH PRIVILEGES;
MySQL über die Konsole verwalten
2. Verwalten von Datenbanken
2.1 Datenbank erstellen
Durch den nachfolgenden Befehl wird eine neue Datenbank erstellt. In diesem Beispiel erhält die neue Datenbank den Namen db_name.
Query OK, 1 row affected (0.00 sec)
Mit dem Zusatz IF NOT EXISTS wird vor dem erstellen einer Datenbank überprüft, ob nicht bereits eine Datenbank mit dem gleichen Namen existiert.
Query OK, 1 row affected (0.00 sec)
2.2 Datenbanken auflisten
Mit dem folgenden Befehl können Sie sich die vorhandenen MySQL-Datenbanken anzeigen lassen.
+--------------------+
| Database |
+--------------------+
| information_schema |
| db_name |
| mysql |
+--------------------+
2.3 Tabellen in einer Datenbank auflisten
Welche Tabellen in einer Datenbank hinterlegt sind, zeigt der folgende Befehl an.
+-------------------+
| Tables_in_db_name |
+-------------------+
| tbl_name |
+-------------------+
2.4 Datenbank auswählen
Damit zum Beispiel eine Tabelle in einer Datenbank erstellt werden kann oder Datensätze aus einer Tabelle abgerufen werden können, müssen Sie zuerst die Datenbank spezifizieren, in welcher die nachfolgenden Operationen vorgenommen werden sollen.
Database changed
2.5 Datenbank löschen
Eine komplette Datenbank löschen Sie mit drop database.
Query OK, 1 row affected (0.04 sec)
Um vor dem Löschen sicherzustellen dass die Datenbank existiert, sollten Sie folgenden Befehl verwenden.
Query OK, 1 row affected (0.04 sec)
3. Verwalten von Tabellen
3.1 Tabelle erstellen
Mit CREATE TABLE wird eine neue Tabelle erstellt. Dabei müssen Sie die Tabellenstruktur entsprechend angeben. Im folgenden Beispiel wird eine Tabelle mit dem Namen tbl_name erstellt, welche drei Spalten besitzt. In der ersten Spalte (id) soll eine eindeutige Nummer für jeden Datensatz gespeichert werden. Die zweite Spalte soll später ebenfalls einen Zahlenwert (int) aufnehmen können. In der dritten Spalte soll ein String mit maximal 50 Zeichen hinterlegt werden.
-> id int NOT NULL,
-> column1 int(11),
-> column2 varchar(50)
-> );
3.2 Tabellen anzeigen
Eine Liste mit allen Tabellen in der aktuellen Datenbank liefert der folgende MySQL-Befehl. Wie Sie sehen, befinden sich in der Datenbank momentan noch keine Tabellen.
+-------------------+
| Tables_in_db_name |
+-------------------+
| tbl_name |
+-------------------+
3.3 Tabellenstruktur anzeigen
Die Tabellenstruktur einer spezifizierten Tabelle zeigt Ihnen der folgende Befehl an.
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id | int(11) | NO | | NULL | |
| column1 | int(11) | YES | | NULL | |
| column2 | varchar(50) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
3.4 Spalte einfügen
Mit ALTER TABLE und der Anweisung ADD COLUMN kann einer bestehenden Tabelle nachträglich eine Spalte hinzugefügt werden
Query OK, 0 rows affected (0.03 sec)
Die Änderung können Sie sich wie folgt anzeigen lassen.
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id | int(11) | NO | | NULL | |
| column1 | int(11) | YES | | NULL | |
| column2 | varchar(50) | YES | | NULL | |
| column3 | char(50) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
3.5 Datentyp einer Spalte ändern
Den Datentyp einer bestehenden Spalte können Sie mit dem folgenden Befehl ändern.
Query OK, 0 rows affected (0.04 sec)
Die Änderung können Sie sich wieder wie folgt anzeigen lassen.
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id | int(11) | NO | | NULL | |
| column1 | int(11) | YES | | NULL | |
| column2 | varchar(50) | YES | | NULL | |
| column3 | varchar(50) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
3.6 Spalte entfernen
Eine Spalte aus einer Tabelle löschen Sie wie folgt.
Query OK, 0 rows affected (0.04 sec)
Mit SHOW FIELDS können Sie sich das Ergebnis anzeigen lassen.
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id | int(11) | NO | | NULL | |
| column1 | int(11) | YES | | NULL | |
| column2 | varchar(50) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
3.7 Tabelle löschen
Mit dem folgenden Befehl können Sie eine Tabelle aus der aktuell verwendeten Datenbank löschen.
Query OK, 0 rows affected (0.00 sec)
Auch hier kann vor dem Löschen überprüft werden, ob die Tabelle existiert.
Query OK, 0 rows affected (0.00 sec)
4. MySQL-Verbindung beenden
Wenn Sie die Verbindung zum MySQL-Server wieder beenden wollen, rufen Sie quit auf.
Bye
Alle Tabellen löschen
mysql --password=dbPasswort -u dbBenutzer dbName -e "show tables" | grep -v Tables_in | grep -v "+" | gawk '{print "drop table " $1 ";"}' | mysql --password= dbPasswort -u dbBenutzer dbName
Troubleshooting
PhpMyAdmin
Unter xampp folgende Meldung beim Aufruf von localhost/PhpMyAdmin:
"Falsche Zugriffsrechte auf die Konfigurationsdatei. Schreibzugriff sollte nicht für alle möglich sein!"
Abhilfe: In /opt/lampp/phpmyadmin die Benutzerrechte folgendermaßen ändern:chmod 644 config.inc.php
.
Der Fehler bestand in der Rechtevergabe 777.
|