Links:
MySQL Documentation
MySQL Daten bearbeiten
Download Connector/ODBC
MySQL Community Server Download
MySQL Installer herunterladen und ausführen
MySQL
Choosing a Setup Type: Custom
Select Products and Features:
MySQL Server 64Bit
Applications | MySQL Workbench
Benötigte Komponenten
Visual Studio 2013 Redistributable - für MySQL Server bei einem 64Bit Server wird die 32 und 64 Bit Version benötigt
Visual Studio 2015 Redistributable - für Workbench
Type and Networking
Config Type: Server Machine
TCP/IP Port: 3306
- MySQL Service unter Windwos manuell anlegen, zweites Beispiel mit Angabe des Service Namens und Vorgabe der Konfigurationsdatei
mysqld --install
mysqld --install MySQL57 --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini"
- MySQL Service unter Windows entfernen, Service darf beim entfernen nicht gestartet sein
mysqld --remove mysqld --remove MySQL57
Usage: mysqld [OPTIONS] NT and Win32 specific options: --install Install the default service (NT). --install-manual Install the default service started manually (NT). --install service_name Install an optional service (NT). --install-manual service_name Install an optional service started manually (NT). --remove Remove the default service from the service list (NT). --remove service_name Remove the service_name from the service list (NT). --enable-named-pipe Only to be used for the default server (NT). --standalone Dummy option to start as a standalone server (NT).
-Ausgabe der Optionen von mysqld und Parameter der my.ini (Windows) mit Defaulteinstellungen
mysqld --verbose --help
- MySQL Initialisierung, erstellt das data Verzeichnis, z.B. beim verwenden der .zip Version
mysqld --initialize [with random root password] mysqld --initialize-insecure [without random root password]
[mysqld] # set basedir to your installation path basedir="C:/Program Files/MySQL" # set datadir to the location of your data directory datadir="C:/ProgramData/MySQL/MySQL Server 5.7/Data"
Datei | Beschreibung |
---|---|
/etc/mysql/my.cnf | Linux - Server Konfigurationsdatei |
/etc/mysql/mariadb.conf.d/50-server.cnf | Linux MariaDB - Server Konfigurationsdatei |
- Beispiel Linux MariaDB Server Konfigurationsdatei (gekürzt)
# /etc/mysql/mariadb.conf.d/50-server.cnf # in Eckigen Klammern die Sektionen der Konfigurationsdatei # # this is read by the standalone daemon and embedded servers [server] # nur fuer mysqld/mariadb Server [mysqld] # # * Basic Settings # user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp lc-messages-dir = /usr/share/mysql skip-external-locking ... [mysqld-X.X]
[mariadb]
[mariadb-X.X]
# MariaDB 5.3 and higher
[client-server]
# MariaDB 10.1 and higher or MariaDB galera builds
[galera] ...
Kilobyte [kB] | Mebibyte [MiB] |
---|---|
52428800 | 50M |
54525952 | 52M |
104857600 | 100M |
419430400 | 400M |
Befehl | Beschreibung |
---|---|
mysqladmin | Client zum Administrieren des SQL Servers |
mysqldump | Datenbank Backup Programm |
mysqlimport | Daten Import |
mysqlshow | Client zum Anzeigen der Datenbank, Tabellen und Spalten |
mysqlcheck | Tabellen bearbeiten, reparieren, optimieren |
mysql_upgrade | Upgrade von MySQL zu MariaDB |
mysqld --verbose --help | Variablen anzeigen |
mysql -uroot -p -A -e"SHOW GLOBAL VARIABLES;" > settings.txt | Variablen in Datei speichern |
mysql -u <SQLUserName> -p <Passwort> | interaktiv Anmelden |
Interaktiv | |
nach Anmeldung mit mysql -u <SQLUserName> -p <Passwort> |
|
Systemverwaltung | |
SELECT @@version; | Version des Servers |
SELECT version(); | Version des Servers |
STATUS; | Information zur Version, gewählte Datenbank, u.a. |
SHOW GLOBAL VARIABLES LIKE '%version%'; | Globale Variablen anzeigen, gefiltert nur DBVersion |
Parameter anzeigen | |
SHOW VARIABLES LIKE '%size%'; | System Variablen anzeigen |
SHOW SESSION VARIABLES LIKE '%size%'; | Sitzungs Variablen anzeigen |
SHOW GLOBAL VARIABLES LIKE '%size%'; | Globale Variablen anzeigen |
- am MySQL Server interaktiv anmelden
mysql -u <user> -p
Beispiel: wird kein Benutzer angegeben, wird versucht den aktuellen Benutzer zu verwenden.
mysql -u root -p datenbank mysql -u'root' -p datenbank mysql -u"root" -p datenbank
- angegebene Datenbank sichern
mysqldump -u<user> -p<passwort> datenbank > datenkank.sql
- alle Datenbank als Textdatei sichern
mysqldump -p -A -x --add-drop-database > mysqlbackup.sql
Option -x sperrt die Datenbank bei der Sicherung
- angegebene Datenbank wiederherstellen
mysql -u<user> -p<passwort> datenbank < datenkank.sql
- alle Datenbanken aus Textdatei wiederherstellen
mysql -u<user> -p<passwort> < backup.sql
- interaktiv Datenbank wiederherstellen
am Server anmelden | neue Datenbank anlegen | neue Datenbank auswählen | Daten aus Datei zurückspielen
mysql -u root -p CREATE DATABASE example_db; USE example_db; SOURCE /var/log/mysql/dump.sql
- Passwort setzen
mysqladmin password [new-password] mysqladmin password "geheim" mysqladmin -uroot -p'aktuellesPasswort' password 'neuesPasswort'
- Passwort entfernen
mysqladmin password ""
- MySQL Passwort zurücksetzen
vergessenes Kennwort zurücksetzen, ubuntu Wiki
service mysql stop mysqld_safe --skip-grant-tables &
# mysql use mysql; update user set password=PASSWORD("geheim") where user='root'; flush privileges; exit;
killall mysqld_safe service mysql start
unter Debian
in der Datei /etc/mysql/debian.cnf
ist das Kennwort für den Benutzer debian-sys-maint
im Klartext hinterlegt, anmelden wie folgt
mysql -u debian-sys-maint -p use mysql; update user set password=PASSWORD("geheim") where user='root'; flush privileges; exit;
- Datenbank erstellen
mysqladmin -u root -p create datenbank
- Datenbank löschen
mysqladmin -u root -p drop datenbank
- mysqladmin Kommandos die ausgeführt werden können
create databasename Create a new database debug Instruct server to write debug information to log drop databasename Delete a database and all its tables extended-status Gives an extended status message from the server flush-hosts Flush all cached hosts flush-logs Flush all logs flush-status Clear status variables flush-tables Flush all tables flush-threads Flush the thread cache flush-privileges Reload grant tables (same as reload) kill id,id,... Kill mysql threads password [new-password] Change old password to new-password in current format ping Check if mysqld is alive processlist Show list of active threads in server reload Reload grant tables refresh Flush all tables and close and open logfiles shutdown Take server down status Gives a short status message from the server start-slave Start slave stop-slave Stop slave variables Prints variables available version Get version info from server
- Version des MySQL Servers anzeigen, Laufzeit, u.a.
mysqladmin -u root -p version
- Datenbank anzeigen
alle Datenbanken des Server auflisten |
angegebene Datenbank anzeigen
mysqlshow -u root -pPasswort mysqlshow -u root -pPasswort <DatenbankName> mysqlshow -u root -pPasswort <DatenbankName> <Tabelle>
- Parameter -v -v zählt die Tabellen und deren Einträge
mysqlshow -u root -pPasswort <DatenbankName> -v -v
# mysqlshow -u root -pPasswort -v -v mysqlshow: [Warning] Using a password on the command line interface can be insecure. +--------------------+--------+--------------+ | Databases | Tables | Total Rows | +--------------------+--------+--------------+ | information_schema | 61 | 13701 | | mysql | 31 | 2808 | | performance_schema | 87 | 37177 | | sys | 101 | 3761 | +--------------------+--------+--------------+ 4 rows in set.
einen neuen MySQL Benutzer anlegen, mit Passwort
CREATE USER 'Benutzer' IDENTIFIED BY 'PassWort';
User mit allen Rechten setzen
GRANT ALL ON *.* TO 'benutzer'@'localhost' IDENTIFIED BY "geheim" WITH GRANT OPTION;
User hat Rechte für die Datenbank sample_db
GRANT ALL ON sampel_db.* TO 'benutzer'@'localhost' IDENTIFIED BY "geheim";
User löschen
DROP USER 'Benutzer'@'localhost';
Passwort eines Benutzers ändern/zurücksetzen (als root)
SET PASSWORD FOR 'benutzer'@'localhost' = PASSWORD('NewPassword'); FLUSH PRIVILEGES;
Benutzer umbenennen
RENAME USER 'Benutzer'@'localhost' TO 'user'@'localhost';
- alle Datenbanken anzeigen
show databases;
- alle Tabellen der Datenbank anzeigen
show tables from <DB-Name>;
- Tabellen der gewählten Datenbank anzeigen
Syntax:
SELECT Fields FROM Tables WHERE [Bedingung] [Ergänzungen]
use <DB-Name>; select * from information_schema.tables;
- Felder einer Tabelle anzeigen
SHOW TABLES FROM databases; USE databases; SHOW FIELDS FROM table;
Syntax:
SHOW COLUMNS FROM mytable FROM mydb; oder SHOW COLUMNS FROM mydb.mytable; oder DESC mytable;
Beispiel
SHOW COLUMNS FROM wp_options FROM wordpress; SHOW COLUMNS FROM wordpress.wp_options;
- alle Tabellen und alle Datenbanken checken
mysqlcheck -u root -p -c --all-databases
- angegebene Datenbank checken
mysqlcheck -u root -p -c <Datenbank>
# mysqlcheck -u root -p -c zarafa Enter password: zarafa.abchanges OK zarafa.acl OK zarafa.changes OK zarafa.clientupdatestatus OK zarafa.deferredupdate OK zarafa.hierarchy OK zarafa.indexedproperties OK zarafa.lob OK zarafa.mvproperties OK zarafa.names OK zarafa.object OK zarafa.objectmvproperty OK zarafa.objectproperty OK zarafa.objectrelation OK zarafa.outgoingqueue OK zarafa.properties OK zarafa.receivefolder OK zarafa.searchresults OK zarafa.settings OK zarafa.singleinstances OK zarafa.stores OK zarafa.syncedmessages OK zarafa.syncs OK zarafa.tproperties OK zarafa.users OK zarafa.versions OK
- bestimmte Tabelle der angegebenen Datenbak checken
mysqlcheck -u root -p -c <Datenbank> <Tabelle>
# mysqlcheck -u root -p -c zarafa users Enter password: zarafa.users OK
- Tabelle einer Datenbak reparieren (--repair)
mysqlcheck -u root -p -r <Datenbank> <Tabelle>
- Tabelle einer Datenbak optimieren (--optimize)
mysqlcheck -u root -p -o <Datenbank> <Tabelle>
Fehlermeldung:
ERROR 1449 (HY000) at line xxxx: The user specified as a definer ('username'@'localhost') does not exist
mysql> grant all on *.* to 'username'@'localhost' identified by 'password' with grant option; FLUSH PRIVILEGES;
- MySQL Datenbank auf Passwort Problem testen
$ for i in `seq 1 1000`; do mysql -u root --password=bad -h 127.0.0.1 2>/dev/null; done
- MySQL Verbindung testen
nc -vz localhost 3306
-MySQL Sicherung aller Datenbanken des Servers
#!/bin/bash # # MySQL Server Sicherung # USER='Benutzer' PASS='Passwort' VERZ=/home/bachup # if [ ! -d $VERZ ]; then echo -e \\n Backup Verzeichnis $VERZ wird angelegt. \\n mkdir -p $VERZ fi # mysqldump -u$USER -p$PASS -A -x -E --add-drop-database | \ bzip2 > $VERZ/mysql-db_$(date +%Y-%m-%d_%H-%M-%S).sql.bz2 # echo -e \\n ls $LS_OPTIONS -SAhl --group-directories-first $VERZ echo -e \\n \\t \\t "\033[0;33mMySQL Sicherung im $VERZ angelegt\033[0m" \\n
- Wiederherstellen der Datenbanken
man muss aufpassen, das man nicht alle Dateien im Verzeichnis entpackt, am einfachsten, die Datei direkt angeben.
bzip2 -d mysql-db_*.sql.bz2 mysql -u<user> -p<passwort> < mysql-db_*.sql
nach einem Upgrade von Debian 8 auf 9 und den damit verbunden wechsel von MySQL auf MariaDB müssen die Datenbanken geprüft werden.
mysql_upgrade -u root -p