|
|
(9 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
− | = MySQL das führende Open-Source-Datenbanksystem =
| + | Has been moved to: http://blog.kr8.de/wiki-mysql/ |
− | {{TOCright}}
| |
− | MySQL ist in meiner [[Anwendungskatalog|Anwendungsarchitektur]] das [[Datenbanken|Datenbank-System]] der ersten Wahl (siehe auch: [[OpenSourceSoftware]]).
| |
− | | |
− | Siehe auch: [[Unicode|Unicode]]
| |
− | | |
− | == Installation Server ==
| |
− | * Definitive Software Library ID: '''MySQL'''
| |
− | * Name: MySQL
| |
− | * Version: 5.0.41-community-nt ([[ComputerGraumann]]) und 5.0.41-community-nt ([[ComputerKragenbaer]])
| |
− | * Hersteller/Bezugsquelle: http://www.mysql.com
| |
− | * Installationsordner: D:\bin\MySQL
| |
− | * Konfigurationsdateien: D:\bin\MySQL\my.ini ---> [[Datensicherung]]
| |
− | ** Datenbank-Ordner: '''d:\var\MySQL\data''' ---> [[Datensicherung]]
| |
− | * Programmstart: Windows-Service '''MySQL'''
| |
− | * InnoDB tablespace: InstallDir......
| |
− | | |
− | == Konfiguration ==
| |
− | === my.ini ===
| |
− | Eine Konfigurationsdatei '''my.cnf''' wird nicht verwendet. Alles steht in '''my.ini'''.
| |
− | <br />Die wichtigsten Einträge in der Konfigurationsdatei <b>my.ini</b> sind:
| |
− | | |
− | <pre>
| |
− | # CLIENT SECTION
| |
− | # ----------------------------------------------------------------------
| |
− | #
| |
− | # The following options will be read by MySQL client applications.
| |
− | # Note that only client applications shipped by MySQL are guaranteed
| |
− | # to read this section. If you want your own MySQL client program to
| |
− | # honor these values, you need to specify it as an option during the
| |
− | # MySQL client library initialization.
| |
− | #
| |
− | [client]
| |
− | | |
− | port=3306
| |
− | | |
− | [mysql]
| |
− | | |
− | default-character-set=utf8
| |
− | | |
− | </pre>
| |
− | | |
− | und
| |
− | | |
− | <pre>
| |
− | # SERVER SECTION
| |
− | # ----------------------------------------------------------------------
| |
− | #
| |
− | # The following options will be read by the MySQL Server. Make sure that
| |
− | # you have installed the server correctly (see above) so it reads this
| |
− | # file.
| |
− | #
| |
− | [mysqld]
| |
− | | |
− | # The TCP/IP Port the MySQL Server will listen on
| |
− | port=3306
| |
− | | |
− | | |
− | #Path to installation directory. All paths are usually resolved relative to this.
| |
− | basedir="D:/bin/MySQL/"
| |
− | | |
− | #Path to the database root
| |
− | datadir="D:/var/MySQL/data/"
| |
− | | |
− | # The default character set that will be used when a new schema or table is
| |
− | # created and no character set is defined
| |
− | default-character-set=utf8
| |
− | | |
− | # The default storage engine that will be used when create new tables when
| |
− | default-storage-engine=INNODB
| |
− | </pre>
| |
− | | |
− | === Show Variables ===
| |
− | mysql> show variables like "%character%";
| |
− | | |
− | {| class=wikitable
| |
− | |-
| |
− | | Variable_name || Value
| |
− | |}
| |
− | | |
− | {| class=wikitable
| |
− | |-
| |
− | | character_set_client || utf8
| |
− | |-
| |
− | | character_set_connection || utf8
| |
− | |-
| |
− | | character_set_database || utf8
| |
− | |-
| |
− | | character_set_results || utf8
| |
− | |-
| |
− | | character_set_server || utf8
| |
− | |-
| |
− | | character_set_system || utf8
| |
− | |-
| |
− | | character_sets_dir || \xampp\mysql\share\charsets/
| |
− | |}
| |
− | | |
− | | |
− | mysql> show variables like "%collation%";
| |
− | | |
− | {| class=wikitable
| |
− | |-
| |
− | | Variable_name || Value
| |
− | |}
| |
− | | |
− | {| class=wikitable
| |
− | |-
| |
− | | collation_connection || utf8_general_ci
| |
− | |-
| |
− | | collation_database || utf8_general_ci
| |
− | |-
| |
− | | collation_server || utf8_general_ci
| |
− | |}
| |
− | | |
− | == Datenbankadministration ==
| |
− | * User-Id für Administrator (root) mit Passwort versehen
| |
− | * User-Id '' (ghost) gelöscht
| |
− | * Datenbank-Backup / [[Datensicherung]] : d:\bin\jobs\backupMySQL.bat
| |
− | | |
− | == Remote Access ==
| |
− | Manchmal möchte man von einem anderen Computer auf den MySQL-Datenbank-Server zugreifen; z.B. schon im eignen [[LAN]] weil man etwas kopieren will oder zu einem Server bei einem [[WebProvider]], wo man eine MySQL-Anwendung gehosted hat (z.B. ein [[MediaWiki]], [[Joomla]], [[WordPress]], oder, oder...).
| |
− | | |
− | Das macht man am besten dadurch, dass der MySQL-Server über eine [[TCP/IP]]-Adresse erreichbar ist. In meiner ersten MySQL-Installation auf den [[Windows Vista]]-Computern war das zunächst nicht möglich.
| |
− | | |
− | Der erste Versuch war, in die Konfigurationsdatei '''my.ini''' eine Zeile mit der IP-Adresse einzutragen:
| |
− | bind-address=192.168.1.23
| |
− | | |
− | Das erwies sich später aber als verkehrt, weil mit einer solchen Zeile der MySQL-Server nur noch auf der angegebenen Adresse hört (in diesem Beispiel also nicht mehr auf 127.0.0.1 und auf localhost). Ohne eine solche Zeile lauscht der MySQL-Server auf '''allen''' IP-Adressen und das ist fürs erste schon das sinnvollste.
| |
− | | |
− | Was ich allerdings tun musste war, im [[Firewall]] auf dem MySQL-Server den TCP-Port 3306 freizuschalten. Danach war der MySQL-Server von den anderen Computern in meinem LAN erreichbar. Testweise konnte ich mit dem MySQL-Client [[SQLyog]] eine Verbindung vom Client [[ComputerKragenbaer]] zum Server [[ComputerGraumann]] aufbauen.
| |
− | | |
− | === Datenbank-Synchronisation ===
| |
− | Wenn der ''Remove Access'' dann funktioniert, steht als Anwendung das [[Synchronisieren]] von Datenbanken auf den verschiedenen Computern auf der Tagesordnung. Dafür benötigt man entsprechende Software.
| |
− | | |
− | Die freie Ausgabe von [[SQLyog]] unterstützt das nicht mehr, man benötigt die kostenpflichtige Enterprise-Version. Die gibt es als Test-Version für 30 Tage.
| |
− | | |
− | Als Test der DB-Synchronisation habe ich meine mit [[MediaWiki]] gemachte [[WebsiteWiki]] mit der Trial-Version von SQLyog Enterprise mal von Graumann auf Kragenbaer, der ja als '''Standby''' fungieren soll, synchronisiert. Das hat ganz gut geklappt. Allerdings kan man mit der Trial-Version immer nur 2 Tabellen per Hand synchronisieren....
| |
− | | |
− | === Tunneling ===
| |
− | WEnn nun der '''Remote Access''' nicht nur im eigenen LAN, sondern auch zum externen [[WebProvider]] gehen soll, hat man das problem, dass fast alle WebProvider den dafür nötigen TCP-Port 3306 abschalten. In so einer Situation soll das sog. '''SQL Tunnelling''' helfen; dabei läuft alles über den HTTP-Port 80....
| |
− | | |
− | Vorgehensweise mit SQLyog Enterprise:
| |
− | * PHP-Skript '''SQLyogTunnel.php''' auf den gehosteten Server hochgeladen
| |
− | * Im SQLyog eine neue Connection einrichten mit:
| |
− | ** HTTP-Tunnelling über: http://kr8.de/SQLyogTunnel.php
| |
− | ** Datenbank Credentials: Host= User= .....
| |
− | | |
− | == Installalation ODBC-Treiber ==
| |
− | Der aktuelle ODBC-Treiber für MySQL kommt direkt von www.mysql.com und trägt die Bezeichnung '''MySQL Connector/ODBC 3.5.1'''.
| |
− | * Definitive Software Library ID: '''MySQL_ODBC'''
| |
− | * Name: MySQL Connector/ODBC
| |
− | * Version: 3.5.1
| |
− | * Hersteller/Bezugsquelle: http://www.mysql.com/downloads
| |
− | | |
− | == Installation JDBC-Treiber ==
| |
− | Der berühmte Treiber von Mark Matthews (1998) (OpenSourceSoftware "MM.MySQL") wird seit August 2002 von MySQL unter der Bezeichnung '''MySQL Connector/J 3.0''' offiziell unterstützt ([[Java|Java]]). Mark Matthews verstärkt jetzt das MySQL-Team.
| |
− | * Definitive Software Library ID: '''MySQL_JDBC'''
| |
− | * Name: MySQL Connector/J
| |
− | * Version: 3.0.15
| |
− | * Hersteller/Bezugsquelle: http://www.mysql.com/downloads
| |
− | * Installations-Ordner: {$JAVA_HOME}\jre\lib\ext Beispielsweise d:\Programme\Java\jdk1.5.0_04\jre\lib\ext
| |
− | * Installation: Kopieren der Datei mysql-connector-java-3.0.15-ga-bin.jar in den Installationsordner
| |
− | * Informationen zur Benutzung
| |
− | ** Klasse: com.mysql.jdbc.Driver
| |
− | ** URL: jdbc:mysql://localhost/datenbankname
| |
− | | |
− | == Problems and Solutions ==
| |
− | My SQL 4.1 verwendet zum Passwort-Hashing SHA1 (160 Bit = 40 Zeichen) Infos: http://pajhome.org.uk/crypt/md5/
| |
− | | |
− | === Workaround ===
| |
− | Angeblich soll das Problem mit der PHP MySQL client library (libmysql.dll) auch durch ein Upgrade von PHP nicht gelöst werden können. Daher habe ich das von MySql veröffentlichte Workaraound [[http://dev.mysql.com/doc/mysql/en/old-client.html|http://dev.mysql.com/doc/mysql/en/old-client.html]] benutzt:
| |
− | | |
− | * Reset the password to pre-4.1 style for each user that needs to use a pre-4.1 client program. This can be done using the SET PASSWORD statement and the OLD_PASSWORD() function:
| |
− | ** mysql> SET PASSWORD FOR wikiuser@localhost = OLD_PASSWORD('newpwd');
| |
− | * Tell the server to use the older password hashing algorithm:
| |
− | ** Start mysqld with the --old-passwords option. (Eingetragen in: my.ini ???)
| |
− | | |
− | {| class=wikitable
| |
− | |-
| |
− | | '''User''' || '''Password''' || '''Hash''' || '''Application'''
| |
− | |-
| |
− | | root || lotusnotes || SHA1 || ...
| |
− | |-
| |
− | | knowhowuser || ... || old || Know...
| |
− | |-
| |
− | | mediauser || ... || old || MediaWiki
| |
− | |-
| |
− | | linkuser || ... || old || PhpLinks
| |
− | |-
| |
− | | owluser || ... || old || [[Owl|Owl]]
| |
− | |-
| |
− | | pmauser || ... || old || PhpMyAdmin
| |
− | |-
| |
− | | wikiuser || ... || old || Wiki
| |
− | | |
− | |}
| |
− | | |
− | === MySql Clients ===
| |
− | Siehe: [[DatenbankFrontends]]
| |
− | * [[PHP]] 4.3.9 kann es nicht
| |
− | * [[PhpMyAdmin]] 2.6.0 kann es nicht (wegen PHP 4.3.9 ???)
| |
− | * [[MySQL-Front|MySQL-Front]] 3.0 kann es
| |
− | * [[SQLyog|SQLyog]] v3.11 kann es nicht, v4.1 kann es
| |
− | * [[Navicat|Navicat]] 6.0.7 kann es
| |
− | * [[DBManager|DBManager]] professional 2.2.0 kann es nicht, Version 3.1 kann es
| |
− | * [[DbVisualizer]] Free 4.3.4 kann es
| |
− | | |
− | == Datenbanken ==
| |
− | {| class=wikitable
| |
− | |-
| |
− | | '''Datenbankname''' || '''Nutzung'''
| |
− | |-
| |
− | | asom || Application Sizing Modell
| |
− | |-
| |
− | | fruits || Für SQL-Workshop im [[PhpWorkshop]]
| |
− | |-
| |
− | | gmo || Migrierte GMO-Access-Datenbanken
| |
− | |-
| |
− | | joomla || für [[WebsiteJoomla]]
| |
− | |-
| |
− | | knowhow || Mein KnowlegeManagement: [[phpKnowhow]]
| |
− | |-
| |
− | | medien || MediaLibrary mit Videos etc.
| |
− | |-
| |
− | | mysql || Die Standard-Datenbank von MySQL
| |
− | |-
| |
− | | owl || [[Owl]] DokumentenManagement
| |
− | |-
| |
− | | phplinks || Anwendung [[PhpLinks]] (Link-Management)
| |
− | |-
| |
− | | phpwiki || Mein altes phpwiki (migriert nach TWiki)
| |
− | |-
| |
− | | telefonbuch || Telefonnummern zur Inverssuche (u.a.)
| |
− | |-
| |
− | | test || Die Standard-Test-Datenbank von MySQL
| |
− | |-
| |
− | | wikicons || [[MediaWiki]] [[WebsiteWikiConsulting]]
| |
− | |-
| |
− | | wikifaulkner || [[MediaWiki]] [[WebsiteMonikaFaulkner]]
| |
− | |-
| |
− | | wikikracht || [[MediaWiki]] [[WebsiteWiki]]
| |
− | |-
| |
− | | wikilexikon || [[MediaWiki]] [[WebsiteLexikon]]
| |
− | |-
| |
− | | wordpress || [[WordPress]]
| |
− | |-
| |
− | | xanadu || Meine Archiv-Datenbank (Anwendung Archivierung)
| |
− | | |
− | |}
| |
− | | |
− | == Notizen zu MySQL ==
| |
− | === Volltext-Index ===
| |
− | Anlegen einer Tabelle mit Volltext-Index:
| |
− | <pre>
| |
− | CREATE TABLE articles (
| |
− | id INT UNSIGGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
| |
− | title VARCHAR(200),
| |
− | body TEXT,
| |
− | FULLTEXT(title,body)
| |
− | );
| |
− | </pre>
| |
− | Beispielhafte Such-Anfragen über den Volltext-Index:
| |
− | <pre>
| |
− | SELECT * FROM articles WHERE MATCH(title,body) AGAINST('nadel');
| |
− | SELECT *,MATCH(title,body) AGAINST('nadel') as Score FROM articles WHERE MATCH(title,body) AGAINST('nadel');
| |
− | SELECT * FROM articles WHERE MATCH(title,body) AGAINST('+nadel -streifen' IN BOOLEAN MODE);
| |
− | </pre>
| |
− | | |
− | | |
− | -- Main.DietrichKracht - 17 May 2004
| |
− | [[Category:DefinitiveSoftwareLibrary]][[Category:Datensicherung]]
| |