Hallo leute, mittlerweile habe ich alles fertig und dachte ich poste mal die schritte, die bei mir funktioniert haben.
Achtung: ich hab nen AMD64 DualCore Dedicated bei 1&1, openSUSE 11, Plesk 9.2.1. Ob alles bei anderen konfigurationen funktioniert, sei dahingestellt.
anwendung auf eigene gefahr, selbstverständlich.
1. macht euch unter root nen verzeichnis
2. holt euch die Mysql version die ihr benutzen wollt; bei mir wars 5.1.36. gibts unter dev.mysql.com.
Code: Select all
wget <url-to-source-tarball>
tar -xzf mysql-<version>.tar.gz
cd mysql-<version>
3. per yast folgende pakete installieren, falls nicht schon vorhanden:
- gcc
gcc-c++
make
ncurses-devel
readline-devel
libopenssl-devel
openssl
falls noch was fehlt, wird euch das das configure-script schon mitteilen.
4. im verzeichnis das .configure-script ausführen:
Code: Select all
CC='gcc' ./configure '--with-ssl' '--with-plugins=innobase' '--with-charset=utf8' '--with-collation=utf8_unicode_ci' '--enable-assembler' '--without-readline' '--infodir=/usr/share/info' '--libdir=/usr/lib64' '--libexecdir=/usr/sbin' '--localstatedir=/var/lib/mysql' '--mandir=/usr/share/man' '--prefix=/usr' '--sysconfdir=/etc' '--with-mysqld-user=mysql' '--without-debug' '--datadir=/usr/share' '--includedir=/usr/include' '--with-extra-charsets=complex' '--with-unix-socket-path=/var/lib/mysql/mysql.sock' '--enable-thread-safe-client' '--with-comment=My own build' '--with-libwrap' '--with-server-suffix=-max' 'HOSTNAME=/bin/hostname -f' '--with-server-suffix=-Max' '--with-embedded-server' 'CFLAGS=-O2 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -g -DPIC -fPIC -DUNDEF_HAVE_INITGROUPS -DFORCE_INIT_OF_VARS -fno-strict-aliasing' 'CXXFLAGS=-O2 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -g -DPIC -fPIC -DUNDEF_HAVE_INITGROUPS -DFORCE_INIT_OF_VARS -fno-strict-aliasing -fno-exceptions -fno-rtti'
WICHTIG: bei diesem script kommt es natürlich sehr auf euer konkretes system an. in meinem falle war ja schon mysql-5.0 installiert; da kann man mit dem mysqlbug-script
über
oder
Code: Select all
VISUAL=vi; export VISUAL; mysqlbug
infos bekommen wie die letzten build-parameter waren. ich musste jedoch etwas probieren bis alles funktionierte. vor allem um den InnoDB-Support zuzuschalten wars schwierig; den parameter
hab ich so nicht in den mysqldocs finden können.
5. kommen keine fehlermeldungen, das ganze per make erstellen:
dabei wird der output in make.log geschrieben, was viele viele bildschirmausgaben verhindert.
6. SICHERUNG:
- /etc/my.cnf
/usr/bin/mysqld (falls gewünscht)
7. im gleichen verzeichnis
ausführen. damit ist der server und der client auf dem rechner installiert.
8. SSL-einrichtung. wie oben festgelegt, haben wir MySQL mit yaSSL-support gebacken. nun brauchen wir noch zertifikate.
wer schon ein CA-zertifikat hat, braucht natürlich keins zu erstellen. sonst kann man dies z.B. über
Code: Select all
openssl genrsa 2048 > ca-key.pem
openssl req -new -x509 -nodes -days 10000 -config ca_conf.txt -key ca-key.pem > ca-cert.pem
erledigen. dabei muss man vorher ca_conf.txt mit angepasstem inhalt erstellen (geht auch ohne config-file, nur ists lästig bei erneuter ausführung wieder anzugeben)
Code: Select all
[ req ]
distinguished_name = req_distinguished_name
prompt = no
[ req_distinguished_name ]
C = DE
ST = NRW
L = <Ort>
O = <Organisation>
OU = <unternehmen>
CN = <authority_name>
emailAddress = pgp@danielwirtz.de
nun erstellt man noch das mysql-certifikat:
Code: Select all
openssl req -newkey rsa:2048 -days 10000 -config mysql_conf.txt -nodes -keyout mysql-key.pem > mysql-req.pem
openssl x509 -req -in mysql-req.pem -days 10000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > mysql-cert.pem
wieder wird eine config-datei (mysql_conf.txt) benötigt.
hierbei: unter CN sollte die adresse stehen unter der später der server angesprochen wird, z.b. mysql.mydomain.de. dies kann lästige fehlermeldungen verhindern.
9. nun muss man die zertifikate noch an einen günstigen ort kopieren; ich habs alles in den Mysql-ordner verschoben:
10. eintragen in my.cnf. unter mysqld kommen folgende einträge
Code: Select all
[mysqld]
[...]
ssl-ca = /var/lib/mysql/ca-cert.pem
ssl-cert = /var/lib/mysql/mysql-cert.pem
ssl-key = /var/lib/mysql/mysql-key.pem
11. nun muss man noch den Mysql-daemon neu starten. normalerweise tuts ein
wie auch immer, bei mir fährt der mysqld dann nicht runter. also einfach mit der brechstange
eingeben und mit
wieder starten. ob der neue server geladen wurde sieht man z.b. mit
12. upgrade ausführen, falls man vorher mysql 5.0 hatte:
12. für plesk: man muss noch
ausführen, damit plesk wieder dort temporäre sql-caches einrichten kann; mein plesk hat sich da beim domaineinrichten beschwert.
13. prüfen ob alles klappt:
Code: Select all
mysql -u admin -p
mysql> show variables like '%ssl%';
dann sollte da sowas stehen wie
Code: Select all
have_ssl yes
ssl-ca = /var/lib/mysql/ca-cert.pem
[...]
herzlichen glückwunsch, mysql 5.1 mit SSL läuft!
ich hab lang genug gebraucht, ich hoffe ich kanns vielen einfacher machen!
grüße
lilalaunebaer