MySQL -Installation
Diese Webseite sammelt verschiedene Notizen zur Installation verschiedener MySQL-Versionen.
Wenn man MySQL selber mit dem Installationsprogramm installiert
- Zuerst Microsoft Visual C++ Redistributable Package 2015/2019 installieren.
- Der Server läuft ständig als Dienst!
- Firewall-Anfrage sollte mit „Cancel“/„Abbrechen“ beantwortet werden.
- Die Passierzeichen sind ein zusätzlicher Schutz gegen Angriffe.
Installationskript für Version 8.0, Revision 18
Dateinamenserweiterungen aktivieren!
Dienst eventuell von zweiter Arbeitsfläche starten! (Win-Strg-D, Win-Strg-Rechts)
Installationsskript
Das Installationsskript sollte sich in dem MySQL-Ordner befinden, der den Ordner »bin« enthält.
Die sich ergebenden Skripte müssen nach Verteilung mit X:\Alle unter demselben Pfad ausgeführt werden, wie beim Erstellen der Skripte.
slrinit.cmd
set ver=8.0
set version=MySQL-%ver%
set rev=18
set os=win
set revision=mysql-%ver%.%rev%-%os%
IF EXIST %SystemRoot%\SysWOW64\control.exe (SET ARC=x64) ELSE SET ARC=32
set product=%revision%%ARC%
SET MY0CMDTMP0=%~dp0
SET MY0CMDTMP0=%CD%
SET MY0CMDTMP1=%MY0CMDTMP0:\=\\%
ECHO %MY0CMDTMP0%
rmdir /S/Q data
TIMEOUT 2
"%MY0CMDTMP0%\bin\mysqld.exe" --initialize
TIMEOUT 2
ECHO [mysqld]>my.ini
ECHO basedir=%MY0CMDTMP1%>>my.ini
ECHO datadir=%MY0CMDTMP1%\\data>>my.ini
ECHO secure-file-priv="">>my.ini
ECHO ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'vhsblnkurs';>mys.txt
ECHO SET GLOBAL TRANSACTION ISOLATION LEVEL SERIALIZABLE;>>mys.txt
ECHO SET GLOBAL sql_mode = 'ANSI,TRADITIONAL';>>mys.txt
ECHO "%MY0CMDTMP0%\bin\mysql.exe" --port 5120 -uroot -p>my.cmd
ECHO Start.
ECHO PAUSE>>my.cmd
"%MY0CMDTMP0%\bin\mysqld.exe" --initialize
ECHO PLEASE PRESS RETURN AFTER 10 seconds.
ECHO "%MY0CMDTMP0%\bin\mysqld.exe" --defaults-file="%MY0CMDTMP1%\\my.ini" --port 5120 --init-file="%MY0CMDTMP1%\\mys.txt" --console --standalone --explicit_defaults_for_timestamp=1 -uroot>myd.cmd
start myd.cmd
timeout /t 5
start my.cmd
PAUSE
Notizen zur manuellen Installation von Version 8.0, Revision 18
Finden und Abrufen des Installationsarchivs
- Suchmaschine
MySQL community Windows download
- Fragmente
dev.mysql.com/downloads/mysql/
- (Der Inhalt der obenstehenden Seite hängt möglicherweise vom Betriebssystem des Klienten ab.)
dev.mysql.com/downloads/file/?id=490026
- „No thanks, just start my download.“
dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.18-winx64.zip
cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.18-winx64.zip
Entpacken des Installationsarchivs
Aufrufe
Dateinamenserweiterungen aktivieren!
Aus dem Order, der »bin« enthält:
(Optional: Win-Strg-D, Win-Strg-Rechts)
- Vorbereitung des Dienstes
bin\mysqld.exe --initialize
my.ini
[mysqld]
secure-file-priv=""
»copy my.ini %WINDIR%«?
mys.txt
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'vhsblnkurs';>mys.txt
ECHO SET GLOBAL TRANSACTION ISOLATION LEVEL SERIALIZABLE;>>mys.txt
ECHO SET GLOBAL sql_mode = 'ANSI,TRADITIONAL';>>mys.txt
- Start des Dienstes
bin\mysqld.exe --console --standalone --port 5120 --explicit_defaults_for_timestamp=1 <mys.txt
- Ablesen der Passierzeichen aus
data\zzz.err
gvym!=n2G3Cw
- Start des Klienten
bin\mysql.exe --port 5120 --user=root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'vhsblnkurs';
Netzdienste
- Liste
https://sqltest.net/
http://rextester.com/l/mysql_online_compiler
https://www.tutorialspoint.com/mysql_terminal_online.php
https://www.jdoodle.com/online-mysql-terminal
Microsoft Visual C++ 2017 Redistributable Package
Vor der Installation von MySQL sollte das Microsoft Visual C++ 2017 Redistributable Package (früher: Microsoft Visual C++ 2017 Redistributable Package , zuvor: Microsoft Visual C++ 2013 Redistributable Package ) installiert werden, da einige Bestandteile von MySQL (wie beispielsweise die Workbench , der Connector/C++ oder der Proxy) nur danach installiert werden können.
Abruf von MySQL
Das Programm kann unter der folgenden Webseite gefunden werden.
http://dev.mysql.com/downloads/mysql/
Auf jener Webseite kann das Betriebsystem angewählt werden. Für Windows gibt es dort ein Installationsprogramm, welches dies Software dann automatisch richtig installieren soll. Nach Anwahl dieses Programms muß auf der nächsten Seite noch gewählt werden, ob das Installationsprogramm für Rechner mit oder ohne Internetverbindung abgerufen werden soll. Erscheint dann eine Werbung, wie “Login Now or Sign Up for a free account.”, so kann diese mit “No thanks, just start my download.” (weiter unten auf der Seite) ausgeblendet werden.
Eine URI für den Abruf des Installationsprogramms für die Installation ohne Internetverbindung war beispielsweise
http://dev.mysql.com/get/Downloads/MySQLInstaller/mysql-installer-community-5.6.14.0.msi/from/http://cdn.mysql.com/
Verfallen von Passierwörtern
Nach Ablauf von einigen Monaten sieht die Datenbank Passierwörter als ungültig an und verlangt vom Benutzer das Setzen neuer Passierwörter. Bei vielen Kommandos erscheint dann eine der folgenden Meldungen.
- Meldungen
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
ERROR 1820: You must SET PASSWORD before executing this statement
In diesem Fall können neue Passierwörter durch Eingabe der folgenden Zeilen festgelegt werden.
- Eingabe
SET PASSWORD FOR 'root'@'localhost' = PASSWORD( 'vhsblnkurs' );
SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD( 'vhsblnkurs' );
SET PASSWORD FOR 'root'@'%' = PASSWORD( 'vhsblnkurs' );
FLUSH PRIVILEGES;
Manchmal reicht auch schon die folgende kürzere Eingabe aus.
- Eingabe
SET PASSWORD = PASSWORD( 'vhsblnkurs' );
Eine andere Möglichkeit zeigt die folgende Zeile.
- Eingabe (»ALTER USER« ist ab MySQL 5.7.6 verfügbar und wohl Nachfolger von »SET PASSWORD«)
ALTER USER USER() IDENTIFIED BY 'vhsblnkurs';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'vhsblnkurs';
Wenn ein MySQL-Server für den Dauerbetrieb bei einem Kunden installiert wird, sollte die Gültigkeitsdauer von Passierwörtern eventuell durch das Setzen auf den Wert »0« deaktiviert werden, damit der Server nicht plötzlich mitten im Betrieb das Umstellen das Passierwort verlangt, wenn vielleicht gar kein dafür Geschulter in der Nähe ist, der das Problem verstehen und beheben kann!
- Deaktivieren des automatischen Verfalls von Passierwörtern für einen speziellen Benutzer
ALTER USER 'root'@'127.0.0.1' PASSWORD EXPIRE NEVER;
- Deaktivieren des automatischen Verfalls von Passierwörtern für alle Benutzer
SET default_password_lifetime = 0;
SET GLOBAL default_password_lifetime = 0;
Da die globale Einstellung für alle Benutzer durch die Einstellung für einzelne Benutzer überschrieben werden kann, sollte zum Verhindern des automatischen Verfalls von Passierwörtern der automatische Verfall für alle Benutzer einmal mit den gezeigte SET-Anweisungen und dann noch einmal für jeden Benutzer mit einer ALTER-Anweisung deaktiviert werden.
Das Nach-unten-Fahren des Datenbankdienstes *
- Kommando
mysqladmin shutdown --port 5120 -uroot -p
Installationshinweise *
Zum Umfang der Installation (falls bei der Installation ausgewählt werden kann, was installiert werden soll): Für Übungen mit MySQL -Kommandos wird nur der „Server“ (dies ist das eigentliche Datenbanksystem) benötigt, eventuelle zusätzliche Software könnte für spezielle Zwecke ebenfalls nützlich sein. Bei entsprechenden Fragen kann die Installation in der “Standard Configuration ” als “Windows Service ” gewählt werden.
Sicherheitshinweise *
Sicherheitsbewußte Anwender sollten den Server mit individuellen Einstellungen installieren, und dann die Option abwählen, welche es anbietet, ein Loch zu anderen Rechnern in der Firewall einzurichten. Nur von und nach 127.0.0.1 wird Zugang zum Anschluß 3306 benötigt. Außerdem sollte ein sicheres password festgelegt werden. Eine zusätzliche Sicherheitsmaßnahme besteht darin, den Server nur bei Bedarf zu starten und nicht ständig laufen zu lassen. Eine zusätzliche Sicherheitsmaßnahme besteht darin, einen anderen Anschluß als 3306 zu verwenden.
Zip-Archiv mit MySQL *
Die Installation mit dem Installationsprogramm soll MySQL eigentlich automatisch so installieren, daß dies sofort genutzt werden kann.
Falls es dabei Schwierigkeiten gibt, so ist es alternativ noch möglich, ein Zip-Archiv abzurufen, das dann ohne Installation verwendet werden kann.
- Zip-Archiv, Startseite für Abrufe (2015-09)
http://www.mysql.com/downloads/
- Zip-Archiv, Community Edition, URI (2015-09)
http://dev.mysql.com/downloads/
- Zip-Archiv, MySQL Community Server (2015-09)
http://dev.mysql.com/downloads/mysql/
- Zip-Archiv, MySQL Community Server, 32 bit (2015-09)
http://dev.mysql.com/downloads/file.php?id=458257
- Zip-Archiv, MySQL Community Server, 64 bit (2015-09)
http://dev.mysql.com/downloads/file.php?id=458258
- Download-Link (2015-09)
- No thanks, just start my download.
- Download-URI (2015-11-10)
http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.9-winx64.zip
- Download-URI (2015-11-10)
http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.9-win32.zip
- Download-URI (ältere URIs)
http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.26-winx64.zip
http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.26-winx64.zip
http://dev.mysql.com/downloads/mirror.php?id=414400
http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.14-win32.zip/from/http://cdn.mysql.com/
http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.26-win32.zip
Das Zip-Archiv wird entpackt.
Das oberste Verzeichnis, also dasjenige Verzeichnis, welches seinerseits Unterverzeichnisse wie »bin« oder »data« enthält, nennen wir nun „L“. In diesem Verzeichnis wird dann die folgende Datei angelegt (darin ist »L« durch den Pfad dieses Verzeichnisses L zu ersetzen, wobei inverse Schrägstriche zu verdoppeln sind).
my.ini
[mysqld]
- basedir=L
- datadir=L\\data
Diese Datei kann beispielsweise so aussehen:
C:\\mysql-5.6.14-win32\\mysql-5.6.14-win32\\my.ini
[mysqld]
basedir=C:\\mysql-5.6.14-win32\\mysql-5.6.14-win32
datadir=C:\\mysql-5.6.14-win32\\mysql-5.6.14-win32\\data
Start des Dienstes *
Nach dem Anlegen der Konfigurationsdatei »my.ini« kann der Dienst durch das folgende Kommando gestartet werden.
myd.cmd
"L\bin\mysqld.exe" --defaults-file="L\my.ini" --console --standalone --explicit_defaults_for_timestamp=1 -uroot
PAUSE
Auch in diesen Kommandos ist »L« wieder durch den Pfad des Verzeichnisses L zu ersetzen.
Die Option »--defaults-file« sollte verwendet werden und sie sollte die erste Option sein.
- Die verwendeten Optionen
- --defaults-file=Pfad verwendet den absoluten Pfad Pfad als Konfigurationsquelle
- --console Hält die Konsole offen und schreibt Fehlermeldungen nach stdout und stderr
- -uroot Der Benutzername wird als root festgelegt
- -standalone Legt fest, daß das Programm nicht als Dienst laufen soll
http://dev.mysql.com/doc/refman/5.1/en/server-options.html
- Die Systemvariablen
- --explicit_defaults_for_timestamp Diese Angabe wird hier nur verwendet, um eine Warnungsmeldung zu vermeiden, aber kann oder sollte sonst weggelassen werden
- http://dev.mysql.com/doc/en/server-system-variables.html
- Weitere mögliche Optionen
- --verbose Gibt mehr Informationen aus
- --group_concat_max_len=32768 Setzt die Variable »group_concat_max_len« auf den Wert »32768«, dies ist hier nur als Beispiel zum Einstellen von Variablen angegeben.
Falls eine firewall nun anbietet, Löcher für das Programm zu öffnen, ist es nicht nötig, dies zuzulassen.
Der Dienst kann über die Prozeßverwaltung von Windows dann wieder beendet werden, falls er nicht einfach durch Schließen des Fensters geschlossen wird.
Eine eventuelle Fehlermeldung »ibdata1 can't be opened in read-write mode« kann daran liegen, daß MySQL keine Reche hat, um auf die Datei »ibdata« zuzugreifen. Mögliche Ursachen: Es läuft schon eine Inkarnation des Programms, in der ISBN INI-Datei steht das falsche Verzeichnis oder MySQL hat keine ausreichenden Rechte zum Zugriff auf das Verzeichnis
Start des Klienten *
Der Klient (ein Hilfsprogramm, um Kommandos an den Dienst zu senden) kann mit dem folgenden Kommando gestartet werden:
my.cmd
"L\bin\mysql.exe" -uroot
PAUSE
Die folgenden Eingaben sichern das System etwas ab, können aber auch etwas später noch eingegeben werden, nachdem die Handhabung des Klienten schon etwas vertrauter geworden ist.
Hinweis für den Dozenten ► ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
Eingaben
SET PASSWORD FOR 'root'@'localhost' = PASSWORD( 'vhsblnkurs' );
SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD( 'vhsblnkurs' );
SET PASSWORD FOR 'root'@'%' = PASSWORD( 'vhsblnkurs' );
FLUSH PRIVILEGES;Quelle *
http://dev.mysql.com/doc/en/default-privileges.html
Nach dem Festlegen des passwords ist dann noch die Option »-p« anzufügen, damit beim Start des Klienten nach dem password gefragt wird.
my.cmd
"L\bin\mysql.exe" -uroot -p
- Die Optionen
- -uroot legt root als Benutzernamen fest
- -p legt fest, daß nach dem password gefragt wird
http://dev.mysql.com/doc/mysql-command-options.html
- Die Optionen
- --port 5120 legt Port 5120 fest (der Fehlwert ist 3306)
Protokoll von Verbindungsversuchen *
- Mit offener Firewall, ohne password
$ telnet 192.168.0.1 3306
Trying 192.168.0.1...
Connected to 192.168.0.1.
Escape character is '^]'.
>Host 'remote' is not allowed to connect to this MySQL serverConnection closed by foreign host.
- Mit geschlossener Firewall, ohne password
$ telnet 192.168.0.1 3306
Trying 192.168.0.1...
telnet: Unable to connect to remote host: Connection timed out
Automatische Zip-Installation *
Das folgende Skript ist experimentell, ungetestet und derzeit noch nicht verwendbar !
»DownloadFile« verwendet den Systembrowser zum Download via Standard-Proxy, daher ist keine zusätzliche Öffnung der Schutzmauer nötig. Es gibt keine Fortschrittsanzeige, aber im Ordner kann die Dateigröße beobachtet werden. Der Abruf der Datei aus dem Web kann lange (bis zu zirka einer Stunde) dauern. Während dieser Zeit tut das Skript scheinbar nichts.
Die Revision »5.6.25« ist im folgenden nur beispielhaft zu verstehen. Sie kann bei Bedarf in eine aktuelle Versionsnummer, wie beispielsweise »5.7.9«, verändert werden.
Das Skript kann beschleunigt werden, indem die Datei »mysql-5.6.25-win32.zip« (beziehungsweise unter einem 64-Bit-System »mysql-5.6.25-winx64.zip«) manuell nach »%USERPROFILE%\Documents\« kopiert wird. Umgekehrt kann bei Problemen mit dem Skript zuerst das entpackte Verzeichnis oder dann sogar die Zip-Datei gelöscht werden, um ein neues Entpacken beziehungsweise Herkopieren anzustoßen.)
Anleitung
- Falls möglich, die Zip -Archive in den Dokumentenordner kopieren. (Es reicht, nur das zur Architektur passende zu kopieren.)
- Einen Ordner anlegen, und die Kommando-Datei in diesem Ordner anlegen.
- Es sollten zirka 2 GB (eventuell reichen schon 1,6) auf der Festplatte mit dem Dokumentenordner frei sein.
- Die Kommando-Datei starten und einige Minuten warten.
- Wenn sich ein Fenster mit der Frage nach dem Passierwort öffnet, dort das Passierwort eingeben.
- Zum Beenden später die vom Skript geöffneten Fenster wieder schließen.
Informationen
- Die Kommando-Datei beschafft die Datei notfalls von Oracle. Falls dies scheitern sollte, können jene Dateien manuell beschafft werden.
- Die Kommando-Datei entpackt in ein Verzeichnis im Dokumentenordner, das wir hier „MySQL-Verzeichnis“ nennen. Falls dies scheitern sollte, kann manuell entpackt werden.
Die Kommando-Datei legt verschiedene Hilfsdateien im MySQL -Ordner an: mit
- »myd.cmd« – startet den Dienst
»my.cmd« – startet den Klienten
»my.ini« – enthält Konfigurationsdaten
»myinit.cmd« – initialisiert den Dienst
»mys.txt« – SQL-Skript zur Initialisierung des Dienstes
Falls dies scheitern sollte, können die Dateien auch manuell angelegt werden, müssen dann aber wahrscheinlich angepaßt werden. - Die Kommandodatei initialisiert den Dienst mit dem oben beschriebenen Initialisierungs-Skript und startet dann nach fünf Sekunden den Dienst und den Klienten. Falls dies scheitern sollte, kann es auch manuell erledigt werden.
- Es wird der Anschluß 5120 verwendet, um Kollisionen mit dem Fehlwert 3306 zu vermeiden.
Installationsskript für Version 8.0
Vor der Installation sollte sichergestellt sein, daß Microsoft C++ redistributable 2017 installiert wurde.
Ansonsten kann das folgende Installationsskript nach Anpassung von »ver« und »rev« verwendet werden.
Hinweise zu eventuellen Problemen
Fehlermeldung beim Versuch, MySQL-Programme zu starten
Die Fehlermeldung
„Die Anwendung konnte nicht korrekt gestartet werden (0x000007b). Klicken Sie auf "OK", um die Anwendung zu schließen.“
“The application was unable to start correctly (0x000007b). Click OK to close application.”
kommt eventuell von einem fehlenden Microsoft C++ redistributable 2017.
Fehlermeldung beim Versuch, das Microsoft C++ redistributable 2015 zu installieren
Bei der Installation des Microsoft C++ redistributable 2015 kann es zu einer Meldung kommen, die sinngemäß besagt, der Benutzer habe die Installation abgebrochen.
„0x80070642 - Die Installation wurde vom Benutzer abgebrochen.“
“0x80070642 - User cancelled installation.”
Hier kann es helfen, das Installationsprogramm als Administrator zu starten (eventuell auch UAC vorübergehend zu reduzieren und das Installationsprogramm ohne Internetverbindung zu starten).
Installation von Version 8.0, Revision 13 im Raume 301 (2018-10-30)
(Windows 10 )
- das Zip-Archiv (»mysql-8.0.13-winx64« o.ä.) von Oracle abrufen und entpacken
- das MySQL-Verzeichnis (mit »bin« und »lib«) unter »D:\Daten\Oktober« einrichten
- unter dem Datei-Explorer das Anzeigen von Dateinamenserweiterungen aktivieren
- das untenstehenden Installationsskript in das MySQL-Verzeichnis kopieren
- im Installationsskript »set ver=8.0« und »set rev=13« festlegen
- Das Installationsskript starten
- Nun das MySQL-Verzeichnis über »X:\Alle« an die Teilnehmer verteilen, die es nach »D:\Daten« kopieren sollten
- eventuell das MySQL-Verzeichnis auch in das permanente Dozenten-Verzeichnis kopieren
- Nun kann der Server mit »myd.cmd« und der Klient mit »my.cmd« gestartet werden
Installationsskript für Version 5.7, Revision 23 (gekürzte Version von 2018-09)
Die Installationen mit den Zip-Archiven sind recht mühevoll, da sich verschiedene Details von einer Revision zur nächsten ändern, so daß das Installationsverfahren immer wieder angepaßt werden muß.
- »mysql-5.7.23-winx64« abrufen.
- »mysql-5.7.23-winx64« entpacken.
- Dieses Skript in dem Verzeichnis anlegen, in dem sich »bin« und »libs« befinden, und starten.
Warnung: Das alte data-Verzeichnis wird durch das Skript gelöscht!
Wenn »secure-file-priv« nicht gesetzt ist, verwendet der Dienst einen Fehlwert dafür, was bedeutet, daß Dateien nur nach »MySQL Server 5.7/Uploads« geschrieben werden können. Durch »secure-file-priv=""« in »my.ini« wird diese Einschränkung außer Kraft gesetzt. (Ein Risiko bei dieser Einstellung besteht darin, daß ein MySQL-Benutzer nun ausführbare Programme in das Verzeichnis »lib\plugin« schreiben könnten, was aber für Personen, die MySQL auf ihrem eigenen Rechner benutzen, weniger riskant ist.)
slrinit.cmd
set ver=5.7
set version=MySQL-%ver%
set rev=23
set os=win
set revision=mysql-%ver%.%rev%-%os%
IF EXIST %SystemRoot%\SysWOW64\control.exe (SET ARC=x64) ELSE SET ARC=32
set product=%revision%%ARC%
SET MY0CMDTMP0=%~dp0
SET MY0CMDTMP0=%CD%
SET MY0CMDTMP1=%MY0CMDTMP0:\=\\%
ECHO %MY0CMDTMP0%
rmdir /S/Q data
TIMEOUT 2
"%MY0CMDTMP0%\
TIMEOUT 2
ECHO [mysqld]>my.ini
ECHO basedir=%MY0CMDTMP1%>>my.ini
ECHO datadir=%MY0CMDTMP1%\\data>>my.ini
ECHO secure-file-priv="">>my.ini
copy my.ini %WINDIR%
ECHO ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'vhsblnkurs';>mys.txt
ECHO SET GLOBAL TRANSACTION ISOLATION LEVEL SERIALIZABLE;>>mys.txt
ECHO SET GLOBAL sql_mode = 'ANSI,TRADITIONAL';>>mys.txt
ECHO "%MY0CMDTMP0%\bin\mysql.exe" --port 5120 -uroot ^<mys.txt>myinit.cmd
ECHO "%MY0CMDTMP0%\bin\mysql.exe" --port 5120 -uroot -p>my.cmd
ECHO Start.
ECHO PAUSE>>my.cmd
ECHO "%MY0CMDTMP0%\bin\mysqld.exe" --defaults-file="%MY0CMDTMP1%\\my.ini" --port 5120 --init-file="%MY0CMDTMP1%\\mys.txt" --console --standalone --explicit_defaults_for_timestamp=1 -uroot>myd.cmd
start myd.cmd
timeout /t 5
call myinit.cmd
start my.cmd
PAUSE
Installationsskript für Version 5.7, Revision 16
Laut der folgenden Seite muß ein Verzeichnis »data« mit der Server-Option »--initialize« angelegt werden.
https://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization-mysqld.html
Es kann allerdings sein, daß es auch schon reicht im Basisverzeichnis der Installation manuell einen Ordner »data« anzulegen.
Im Raum 310:
MySQL-Zip unter D:\Daten entpacken und dann dieses Skript dort hineinkopieren und starten.
- web.cmd
IF EXIST %SystemRoot%\SysWOW64\control.exe (SET ARC=x64) ELSE SET ARC=32
IF EXIST %SystemRoot%\SysWOW64\control.exe (SET EXT=64) ELSE SET "EXT="
set ver=5.7
set rev=16
set os=win
set version=MySQL-%ver%
set revision=mysql-%ver%.%rev%-%os%
set product=%revision%%ARC%
REM setlocal enableextensions enabledelayedexpansion
for /f "tokens=1,2*" %%A in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Personal" 2^>nul') do set DOCUMENTS=%%C
REM Hier gegebenenfalls DOCUMENTS auf Zielordner setzen.
set DOCUMENTS=D:\Daten
ECHO(
ECHO *** Stefan Rams My-SQL-Installationsskript, Version 2017-11-21 ***
ECHO(
ECHO Bitte Verzeichnis "%PRODUCT%" oder Datei "%PRODUCT%.zip" in Verzeichnis "%DOCUMENTS%" kopieren!
ECHO(
ECHO Benoetigt wird also das Verzeichnis "%DOCUMENTS%\%PRODUCT%"
ECHO(
ECHO oder die Datei "%DOCUMENTS%\%PRODUCT%.zip".
ECHO(
ECHO Falls Sie beides nicht haben, wird es automatisch per Web herkopiert werden.
ECHO(
PAUSE
set POWERSHELL=%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
IF NOT EXIST %POWERSHELL% SET %POWERSHELL%=powershell.exe
if exist C:\Windows\Microsoft.NET\Framework%EXT%\v3.5\csc.exe ^
set CSC=C:\Windows\Microsoft.NET\Framework%EXT%\v3.5\csc.exe
if exist C:\Windows\Microsoft.NET\Framework%EXT%\v4.0.30319\csc.exe ^
set CSC=C:\Windows\Microsoft.NET\Framework%EXT%\v4.0.30319\csc.exe
cd /d %DOCUMENTS%
GOTO NOUNZIP
IF EXIST %product%.zip GOTO NODOWNLOAD
ECHO Fernherkopieren.
%POWERSHELL% -Command ^
( new-object System.Net.WebClient ).DownloadFile^
( 'http://cdn.mysql.com/Downloads/%version%/%product%.zip', ^
'%product%.zip' )
:NODOWNLOAD
IF EXIST %product%\bin GOTO NOUNZIP
ECHO Entpacken.
echo class ProgramToUnzipMySQL ^
{ static void Main( string[]s )^
{ System.IO.Compression.ZipFile.ExtractToDirectory^
( "%product%.zip", ^
"." ); }} >ProgramToUnzipMySQL.cs
"%CSC%" /reference:System.IO.Compression.FileSystem.dll ProgramToUnzipMySQL.cs
ProgramToUnzipMySQL.exe
del ProgramToUnzipMySQL.*
:NOUNZIP
ECHO Konfiguration.
cd /d %product%
IF NOT EXIST bin GOTO WRONGDIR
IF NOT EXIST bin\mysql.exe GOTO WRONGDIR
mkdir D:\Daten\mysql-5.7.16-win32\data
SET MY0CMDTMP0=%~dp0
SET MY0CMDTMP0=%CD%
SET MY0CMDTMP1=%MY0CMDTMP0:\=\\%
ECHO %MY0CMDTMP0%
ECHO [mysqld]>my.ini
ECHO basedir=%MY0CMDTMP1%>>my.ini
ECHO datadir=%MY0CMDTMP1%\\data>>my.ini
copy my.ini %WINDIR%
ECHO SET PASSWORD FOR 'root''localhost' = PASSWORD( 'vhsblnkurs' );>mys.txt
ECHO SET PASSWORD FOR 'root''127.0.0.1' = PASSWORD( 'vhsblnkurs' );>>mys.txt
ECHO SET PASSWORD FOR 'root''%%' = PASSWORD( 'vhsblnkurs' );>>mys.txt
ECHO FLUSH PRIVILEGES;>>mys.txt
ECHO SET GLOBAL TRANSACTION ISOLATION LEVEL SERIALIZABLE;>>mys.txt
ECHO SET GLOBAL sql_mode = 'ANSI,TRADITIONAL';>>mys.txt
ECHO EXIT;>>mys.txt
ECHO "%MY0CMDTMP0%\bin\mysql.exe" --port 5120 -uroot ^<mys.txt>myinit.cmd
ECHO "%MY0CMDTMP0%\bin\mysql.exe" --port 5120 -uroot -p>my.cmd
ECHO Start.
ECHO PAUSE>>my.cmd
REM --defaults-file option must be at the beginning of the options list
REM -sql_log_bin=0 --general_log=0 --log_syslog=0
ECHO "%MY0CMDTMP0%\bin\mysqld.exe" -sql_log_bin=0 --defaults-file="%MY0CMDTMP1%\\my.ini" --port 5120 --init-file=Q"%MY0CMDTMP1%\\mys.txt" --console --standalone --explicit_defaults_for_timestamp=1 -uroot>myd.cmd
start myd.cmd
timeout /t 5
call myinit.cmd
REM type myinit.cmd
start my.cmd
PAUSE
EXIT
:WRONGDIR
ECHO THIS IS NOT THE basedir (BINDATA) DIRECTORY!
PAUSE
EXIT
- Notiz zur Festlegung eines Ports in »my.ini«
[mysqld]
port=3306
Älteres Installationsskript für Version 5.6
web.cmd
@IF EXIST %SystemRoot%\SysWOW64\control.exe (SET ARC=x64) ELSE SET ARC=32
@set ver=5.6
@set rev=25
@set os=win
@set version=MySQL-%ver%
@set revision=mysql-%ver%.%rev%-%os%
@set product=%revision%%ARC%
@REM setlocal enableextensions enabledelayedexpansion
@for /f "tokens=1,2*" %%A in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Personal" 2^>nul') do set DOCUMENTS=%%C
@REM Hier gegebenenfalls DOCUMENTS auf Zielordner setzen.
@REM set DOCUMENTS=%USERPROFILE%\Documents\
@ECHO(
@ECHO *** Stefan Rams My-SQL-Installationsskript, Version 2015-11-10 ***
@ECHO(
@ECHO Bitte Verzeichnis "%PRODUCT%" oder Datei "%PRODUCT%.zip" in Verzeichnis "%DOCUMENTS%" kopieren!
@ECHO(
@ECHO Benoetigt wird also das Verzeichnis "%DOCUMENTS%\%PRODUCT%"
@ECHO(
@ECHO oder die Datei "%DOCUMENTS%\%PRODUCT%.zip".
@ECHO(
@ECHO Falls Sie beides nicht haben, wird es automatisch per Web herkopiert werden.
@ECHO(
@PAUSE
@set POWERSHELL=%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
@IF NOT EXIST %POWERSHELL% SET %POWERSHELL%=powershell.exe
@if exist C:\Windows\Microsoft.NET\Framework64\v3.5\csc.exe set CSC=C:\Windows\Microsoft.NET\Framework64\v3.5\csc.exe
@if exist C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe set CSC=C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe
@cd /d %DOCUMENTS%
@IF EXIST %product%.zip GOTO NODOWNLOAD
@ECHO Fernkopieren.
@REM http://dev.mysql.com/downloads/workbench/ http://dev.mysql.com/downloads/connector/
@%POWERSHELL% -Command ^
( new-object System.Net.WebClient ).DownloadFile( 'http://cdn.mysql.com/Downloads/%version%/%product%.zip', '%product%.zip' ):NODOWNLOAD
@IF EXIST %product%\bin GOTO NOUNZIP
@ECHO Entpacken.
@echo class ProgramToUnzipMySQL { static void Main( string[]s ) { System.IO.Compression.ZipFile.ExtractToDirectory ( @"%product%.zip", @"." ); }} >ProgramToUnzipMySQL.cs
@"%csc%" /reference:System.IO.Compression.FileSystem.dll ProgramToUnzipMySQL.cs
@ProgramToUnzipMySQL.exe
:NOUNZIP
@del ProgramToUnzipMySQL.*
@ECHO Konfiguration.
@cd /d %product%
@IF NOT EXIST bin GOTO WRONGDIR
@IF NOT EXIST bin\mysql.exe GOTO WRONGDIR
@IF NOT EXIST data GOTO WRONGDIR
@SET MY0CMDTMP0=%~dp0
@SET MY0CMDTMP0=%CD%
@SET MY0CMDTMP1=%MY0CMDTMP0:\=\\%
@ECHO %MY0CMDTMP0%
@ECHO [mysqld]>my.ini
@ECHO basedir=%MY0CMDTMP1%>>my.ini
@ECHO datadir=%MY0CMDTMP1%\\data>>my.ini
@ECHO SET PASSWORD FOR 'root'@'localhost' = PASSWORD( 'vhsblnkurs' );>mys.txt
@ECHO SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD( 'vhsblnkurs' );>>mys.txt
@ECHO SET PASSWORD FOR 'root'@'%%' = PASSWORD( 'vhsblnkurs' );>>mys.txt
@ECHO FLUSH PRIVILEGES;>>mys.txt
@ECHO SET GLOBAL TRANSACTION ISOLATION LEVEL SERIALIZABLE;>>mys.txt
@ECHO SET GLOBAL sql_mode = 'ANSI,TRADITIONAL';>>mys.txt
@ECHO EXIT;>>mys.txt
@ECHO "%MY0CMDTMP0%\bin\mysql.exe" --port 5120 -uroot ^<mys.txt>myinit.cmd
@ECHO "%MY0CMDTMP0%\bin\mysql.exe" --port 5120 -uroot -p>my.cmd
@ECHO Start.
@ECHO PAUSE>>my.cmd
@REM --defaults-file option must be at the beginning of the options list
@ECHO "%MY0CMDTMP0%\bin\mysqld.exe" --defaults-file="%MY0CMDTMP1%\\my.ini" --port 5120 --init-file="%MY0CMDTMP1%\\mys.txt" --console --standalone --explicit_defaults_for_timestamp=1 -uroot>myd.cmd
@start myd.cmd
@timeout /t 5
@REM call myinit.cmd
@REM type myinit.cmd
@start my.cmd
@PAUSE
@EXIT
:WRONGDIR
@ECHO THIS IS NOT THE basedir (BINDATA) DIRECTORY!
@PAUSE
@EXIT
@REM http://dev.mysql.com/doc/mysql/en/windows-install-archive.html