MySQL

From Dietrich Blog (Strato)
Revision as of 23:30, 9 June 2007 by Dkracht (talk | contribs) (New page: = MySQL das führende Open-Source-Datenbanksystem = <PHP>MySQL ist in meiner Anwendungsarchitektur das Datenbank-System der ersten Wahl (siehe auch: O...)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

MySQL das führende Open-Source-Datenbanksystem

<PHP>MySQL ist in meiner Anwendungsarchitektur das Datenbank-System der ersten Wahl (siehe auch: OpenSourceSoftware).

Siehe auch: Unicode

Installation Server

  • Definitive Software Library ID: MySQL
  • Name: MySQL
  • Version: 4.0.13-nt (lonzo) und 4.1.13-nt (ComputerBraunbaer)
  • Hersteller/Bezugsquelle: http://www.mysql.com
  • Installationsordner: D:\Programme\MySQL
  • Konfigurationsdateien: D:\Programme\MySQL\my.ini (unter CVS ???)
    • Datenbank-Ordner: E:\var\MySQL\data ---> Datensicherung
    • default-character-set=latin1
    • old-password
  • Programmstart: Windows-Service MySQL
  • 2005-08-14: 4.1.13 installiert wegen Unicode für MediaWiki 1.5
  • 4.1 hat verändertes (nämlich SHA1) Password-Hashing siehe Workaround unten!!!!!
  • InnoDB tablespace: InstallDir......

Konfiguration

Die wichtigsten Einträge in der Konfigurationsdatei my.ini sind:

	[mysqld]
	port=3306
	basedir="D:/Programme/MySQL/"
	datadir="E:/var/MySQL/Data/"
	default-character-set=latin1
	old-passwords
	default-storage-engine=INNODB
	max_connections=100
	...

Beispiel einer my.cnf:

[client]
port = 3306
socket = mysql
default-character-set=utf8

[mysqld]
port = 3306
socket = mysql
skip-locking
init_connect='SET collation_connection = utf8_general_ci'
init_connect='SET NAMES utf8'
default-character-set=utf8
character-set-server = utf8
collation-server = utf8_general_ci
[mysql]
default-character-set=utf8

and,

mysql> show variables like "%character%";show variables like "%collation%";
+--------------------------+------------------------------+
{| border="1"
|-
| Variable_name || Value 
|}

+--------------------------+------------------------------+
{| border="1"
|-
| 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/ 
|}

+--------------------------+------------------------------+
7 rows in set (0.00 sec)

+----------------------+-----------------+
{| border="1"
|-
| Variable_name || Value 
|}

+----------------------+-----------------+
{| border="1"
|-
| collation_connection || utf8_general_ci 
|-
| collation_database || utf8_general_ci 
|-
| collation_server || utf8_general_ci 
|}

+----------------------+-----------------+
3 rows in set (0.00 sec)

And,
php
default_charset ="utf-8"

httpd.conf
DefaultLanguage ko
AddDefaultCharset UTF-8


Datenbankadministration

  • User-Id für Administrator (root) mit Passwort versehen
  • User-Id (ghost) gelöscht
  • Datenbank-Backup / Datensicherung : d:\var\jobs\backupMySQL.bat (unter CVS)

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.

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). 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 [[1]] 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  ???)
User Password Hash Application
root lotusnotes SHA1 ...
knowhowuser ... old Know...
mediauser ... old MediaWiki
linkuser ... old PhpLinks
owluser ... old 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 3.0 kann es
  • SQLyog v3.11 kann es nicht, v4.1 kann es
  • Navicat 6.0.7 kann es
  • DBManager professional 2.2.0 kann es nicht, Version 3.1 kann es
  • DbVisualizer Free 4.3.4 kann es

Datenbanken

Datenbankname Nutzung
b2 Mein altes Web-Log (migriert nach DocBook)
fruits Für SQL-Workshop im PhpWorkshop
gmo Migrierte GMO-Access-Datenbanken
knowhow Mein KnowlegeManagement: phpKnowhow
kr8 ich ???
medien MediaLibrary mit Videos etc.
mydms Testweise ein Dokumentanmanagement
mysql Die Standard-Datenbank von MySQL
nuke PhpNuke-Installation von GMO/Bonzo
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
typo3 <Testweise für das Content-Management-System Typo3
wikidb MediaWiki
xanadu Meine Archiv-Datenbank (Anwendung Archivierung)

Notizen zu MySQL

Volltext-Index

Anlegen einer Tabelle mit Volltext-Index:

	 CREATE TABLE articles  (
		 id  INT UNSIGGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
		 title VARCHAR(200),
		 body	TEXT,
		 FULLTEXT(title,body)
	 );

Beispielhafte Such-Anfragen über den Volltext-Index:

	 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);


-- Main.DietrichKracht - 17 May 2004