MySQL

Aus Flinkwiki
Wechseln zu: Navigation, Suche
Seitenübersicht
Datenbanken und SQL
PhpMyAdmin
SQLite


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

(Good To Know Database)


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.

mysql> CREATE DATABASE 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.

mysql> CREATE DATABASE IF NOT EXISTS db_name;
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.

mysql> SHOW DATABASES;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| db_name            |
| mysql              |
+--------------------+

3 rows in set (0.00 sec)


2.3 Tabellen in einer Datenbank auflisten

Welche Tabellen in einer Datenbank hinterlegt sind, zeigt der folgende Befehl an.

mysql> SHOW TABLES FROM db_name;

+-------------------+
| Tables_in_db_name |
+-------------------+
| tbl_name          |
+-------------------+

1 row in set (0.00 sec)


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.

mysql> USE db_name;
Database changed


2.5 Datenbank löschen

Eine komplette Datenbank löschen Sie mit drop database.

mysql> DROP DATABASE db_name;
Query OK, 1 row affected (0.04 sec)


Um vor dem Löschen sicherzustellen dass die Datenbank existiert, sollten Sie folgenden Befehl verwenden.

mysql> DROP DATABASE IF EXISTS db_name;
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.

mysql> CREATE TABLE tbl_name (

    -> id int NOT NULL,
    -> column1 int(11),
    -> column2 varchar(50)
    -> );

Query OK, 0 rows affected (0.01 sec)


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.

mysql> SHOW TABLES;

+-------------------+
| Tables_in_db_name |
+-------------------+
| tbl_name          |
+-------------------+

1 row in set (0.00 sec)


3.3 Tabellenstruktur anzeigen

Die Tabellenstruktur einer spezifizierten Tabelle zeigt Ihnen der folgende Befehl an.

mysql> SHOW FIELDS FROM tbl_name;

+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id      | int(11)     | NO   |     | NULL    |       |
| column1 | int(11)     | YES  |     | NULL    |       |
| column2 | varchar(50) | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+

3 rows in set (0.00 sec)


3.4 Spalte einfügen

Mit ALTER TABLE und der Anweisung ADD COLUMN kann einer bestehenden Tabelle nachträglich eine Spalte hinzugefügt werden

mysql> ALTER TABLE tbl_name ADD COLUMN (column3 char(50));

Query OK, 0 rows affected (0.03 sec)

Records: 0  Duplicates: 0  Warnings: 0


Die Änderung können Sie sich wie folgt anzeigen lassen.

mysql> SHOW FIELDS FROM tbl_name;

+---------+-------------+------+-----+---------+-------+
| 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    |       |
+---------+-------------+------+-----+---------+-------+

4 rows in set (0.01 sec)


3.5 Datentyp einer Spalte ändern

Den Datentyp einer bestehenden Spalte können Sie mit dem folgenden Befehl ändern.

mysql> ALTER TABLE tbl_name MODIFY column3 varchar(50);

Query OK, 0 rows affected (0.04 sec)

Records: 0  Duplicates: 0  Warnings: 0


Die Änderung können Sie sich wieder wie folgt anzeigen lassen.

mysql> SHOW FIELDS FROM tbl_name;

+---------+-------------+------+-----+---------+-------+
| 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    |       |
+---------+-------------+------+-----+---------+-------+

4 rows in set (0.00 sec)


3.6 Spalte entfernen

Eine Spalte aus einer Tabelle löschen Sie wie folgt.

mysql> ALTER TABLE tbl_name DROP COLUMN column3;

Query OK, 0 rows affected (0.04 sec)

Records: 0  Duplicates: 0  Warnings: 0


Mit SHOW FIELDS können Sie sich das Ergebnis anzeigen lassen.

mysql> SHOW FIELDS FROM tbl_name;

+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id      | int(11)     | NO   |     | NULL    |       |
| column1 | int(11)     | YES  |     | NULL    |       |
| column2 | varchar(50) | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+

3 rows in set (0.00 sec)


3.7 Tabelle löschen

Mit dem folgenden Befehl können Sie eine Tabelle aus der aktuell verwendeten Datenbank löschen.

mysql> DROP TABLE tbl_name;
Query OK, 0 rows affected (0.00 sec)


Auch hier kann vor dem Löschen überprüft werden, ob die Tabelle existiert.

mysql> DROP TABLE IF EXISTS tbl_name;
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.

mysql> QUIT
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

[1]


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.


|