[MySQL] Installation und Start von MySQL 5.0 unter Windows als Dienst

Vorbereitung

  • Package von MySQL herunterladen und in ein Zielverzeichnis (z.B. c:\Programme\MySQL\Server\) entpacken
  • die Dienst-Exe und alle weiteren zum Server gehörenden Tools befinden sich z.B. in c:\Programme\MySQL\Server\bin\

Konfiguration

  • eine Konfigurationsdatei namens my.ini im Windows-Verzeichnis c:\windows\ oder c:\winnt\ erstellen (Texteditor) und den Inhalt editieren
  • am Einfachsten ist es, man nimmt schon eines der fertigen Files (z.B. my-medium.ini) aus dem Installationsverzeichnis (z.B. c:\Programme\MySQL\Server\) und passt dieses an
  • wichtig ist dabei der korrekte Eintrag der richtigen Server-Pfade (Slashes “/” beachten!) in der Sektion [mysqld]:
    [mysqld]
    basedir="C:/Programme/MySQL/Server/"
    datadir="C:/Programme/MySQL/Server/data/"
    

    wobei “basedir” der Basispfad zum Stammverzeichnis des Servers ist und “datadir” der Pfad zum Verzeichnis in dem MySQL die Datenbanken verwaltet.

  • eine fertig konfigurierte Beispieldatei sieht z.B. wie folgt aus:
    ################################################################################
    #
    # MySQL 5.0.24 Configdatei (Beispiel)
    #
    # (W) 31.03.2009 by www.codezentrale.6x.to
    #
    # Abgeleitet von my-medium.ini -> es müssen in der Sektion [mysqld] evtl. die
    # Einträge basedir und datadir angepaßt werden!
    #
    ################################################################################
    [client]
    port=3306
    socket=/tmp/mysql.sock
    
    [mysql]
    default-character-set=latin1
    no-auto-rehash
    
    [mysqld]
    basedir="C:/Programme/MySQL/Server/"
    datadir="C:/Programme/MySQL/Server/Data/"
    default-character-set=latin1
    default-storage-engine=INNODB
    innodb_additional_mem_pool_size=2M
    innodb_flush_log_at_trx_commit=1
    innodb_log_buffer_size=1M
    innodb_buffer_pool_size=8M
    innodb_log_file_size=10M
    innodb_thread_concurrency=8
    key_buffer_size=8M
    max_connections=100
    myisam_max_extra_sort_file_size=100G
    myisam_max_sort_file_size=100G
    myisam_sort_buffer_size=8M
    port=3306
    query_cache_size=0
    read_buffer_size=256K
    read_rnd_buffer_size=512K
    server-id=1
    socket=/tmp/mysql.sock
    sort_buffer_size=512K
    sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
    table_cache=256
    thread_cache_size=8
    tmp_table_size=5M
    log-bin=mysql-bin
    
    [isamchk]
    key_buffer = 20M
    sort_buffer_size = 20M
    read_buffer = 2M
    write_buffer = 2M
    
    [myisamchk]
    key_buffer = 20M
    sort_buffer_size = 20M
    read_buffer = 2M
    write_buffer = 2M
    
    [mysqlhotcopy]
    interactive-timeout
    

Installation und Start des Dienstes

  • MySQL-Dienst in der Konsole (cmd.exe) mit
    c:\Programme\MySQL\Server\bin\mysqld --install
    

    anmelden, der Dienst ist vom Typ “Autostart”, wird also bei jedem Systemstart automatisch geladen

  • danach den MySQL-Dienst mit
    net start MySQL
    

    auf der Konsole starten

[MySQL] SQL-Dump einer MySQL-Datenbank einspielen (Restore)

Voraussetzung für folgendes Beispiel ist, dass ein SQL-Dump vorliegt, in welchem zuerst folgende Anweisungen stehen:

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `datenbankname`;
USE datenbankname;

Die Datenbank “datenbankname” ist also auf dem Server evtl. noch nicht existent und wird ggf. angelegt und benutzt.

Zum Einspielen der Daten wird im MySQL-Ordner “bin” das Tool “mysql” genutzt. Es gibt zwei Möglichkeiten:

  1. per Konsole als Admin (root) die Datenbank “datenbankname” anlegen:
    mysql -hlocalhost -uroot -e "CREATE DATABASE Datenbankname"
    

    danach das Script einspielen

    mysql -hHostrechner -uBenutzer -pPasswort Datenbankname < Datenbankfile.sql
    
  2. auf die bestenhende Datenbank “mysql” einloggen und das Script sofort ausführen:
    mysql -hHostrechner -uBenutzer -pPasswort mysql < Datenbankfile.sql
    

[MySQL] SQL-Dump einer MySQL-Datenbank erstellen (Dump)

MySQL liefert im Ordner “bin” ein Kommandozeilentool mit, mit dessen Hilfe mal leicht und schnell SQL-Dumps von bestehenden Datenbanken erzeugen kann. Um eine komplette Datenbank “Datenbankname” mit allen Tabellen, Schlüsselbeziehungen, Datensätzen und zus. Anweisungen (CREATE DATABASE, USE, LOCK TABLES …) in eine Textdatei “Datenbankfile.sql” zu speichern, muss man auf Kommandozeile folgendes eingeben:

mysqldump --databases --add-drop-table --add-locks --lock-tables --quote-names -hHostrechner -uBenutzer -pPasswort Datenbankname > Datenbankfile.sql

Hinweis: Zwischen -hHostrechner usw. darf kein Leerzeichen stehen, um sich z.B. auf Localhost einzuloggen, muss mann somit -hlocalhost eingeben