Categories
Linux

MySQL 4 unter Debian/Ubuntu (für CAO)

Da die freie Warenwirtschaft & Buchhaltung CAO (www.cao-faktura.de) aus verschiedenen Gründen nicht mit MySQL 5 klarkommt (bzw. klarkommen will), folgend die nötigen Schritte einer MySQL 4 Installation parallel zu Mysql 5 unter Debian Etch (sollte aber auch mit anderen Distributionen so klappen). MySQL 4 wird in diesem Beispiel auf Port 3307 laufen.

Installation

groupadd mysql4
useradd -m -d /usr/local/mysql4 -s /bin/false -g mysql4 mysql4
apt-get install build-essential libncurses5-dev

wget http://sunsite.informatik.rwth-aachen.de/mysql/Downloads/MySQL-4.1/mysql-4.1.22.tar.gz
tar xvfz mysql-4.1.22.tar.gz
cd mysql-4.1.22

./configure --prefix=/usr/local/mysql4 \
--with-unix-socket-path=/usr/local/mysql4/var/mysqld.sock \
--with-mysqld-user=mysql4 \
--with-server-suffix=mysql4 \
--with-tcp-port=3307

make && make install
/usr/local/mysql4/bin/mysql_install_db
cp /usr/local/mysql4/share/mysql/mysql.server /etc/init.d/mysql4
cp /usr/local/mysql4/share/mysql/my-medium.cnf /usr/local/mysql4/var/my.cnf
chown -R mysql4:mysql4 /usr/local/mysql4

/etc/init.d/mysql4 start

MySQL 4 läuft nun auf Port 3307. Es ist noch notwendig dem Benutzer “root” noch ein Password zu geben. Danach ist Anlegen und Import der CAO-Datenbank möglich.

/usr/local/mysql4/bin/mysqladmin -P 3307 -u root password "xvz"
/usr/local/mysql4/bin/mysql -p -P 3307

CAO spezifisch

Nach Eingabe des soeben festgelegen Passworts ist nun eine MySQL-Shell offen. Folgende Statements legen die CAO Datenbank und Benutzer an.

Nachtrag: Da der CAO Mysql-Client nicht mit den neuen Password-Hashes ab MySQL4 zurecht kommt, muss dieses mit der OLD_PASSWORD Funktion gesetzt werden.

CREATE DATABASE cao;
GRANT ALL ON cao.* TO cao@'%' IDENTIFIED BY 'xyz';
SET PASSWORD FOR cao@'%'=OLD_PASSWORD('xyz');
FLUSH PRIVILEGES;

Import der alten Datenbank

/usr/local/mysql4/bin/mysql -p -P 3307 -D cao < cao.sql

Clientseitig ist in der CAO32_DB.cfg der MySQL-Port noch zu verändern:

M001_PORT=3307

39 replies on “MySQL 4 unter Debian/Ubuntu (für CAO)”

Herzlichen Dank für das Tutorial.
Hat mir letzte Nacht wirklich sehr geholfen, denn nach dem Upgrade von Sarge auf Lenny hatte ich kein MySQL4 mehr :-(

Hallo Leute,
erst einmal vielen Dank für das Tutorial. Schade das ihr kein Namen veröffentlicht, ist so unpersönlich. Ich möchte für mich einen kleinen Datenserver mit CAO Datenbank unter Debian5 Lenny installieren. Bin nach der Anleitung vorgegangen, aber ohne Erfolg. Ich bin allerdings kein Profiauf der Console (noch lernfähig). Ich vermute, das Debian5 seine Dateien vielleicht anders installiert als Debian4.
Nach ./configure… bekomme ich folgende Fehlermeldung
configure: error: no acceptable C compiler found in $PATH

Kannst du mir da weiterhelfen??
Bin ein wenig um Hilfe verlegen.

Lieben Gruß
Zeljko

Das Paket libncurses5-dev muss auch installiert sein.
Um MySQL4 beim Booten zu starten, muss noch ein “update-rc.d mysql4 defaults” hinterher geschoben werden.

Nach einem Serverneustart geht der MySQL 4 nicht mehr. Beim Starten schreibt er nur (in der Konsole) “Starting MySQL”
und dann geht er trotzdem nicht.

In der syslog steht dann:
Jul 7 12:47:53 server mysqld_safe[4263]: A mysqld process already exists

dies hat aber bisher immer geklappt. Und: ja, natürlich läuft ein zweiter mysql! Ich hab ja 4 und 5 paralell nebeneinander am laufen.

Kennt da jemand einen Weg?

Danke und LG!

Hi, ich kann mir nicht vorstellen, dass diese Vorgehensweise nicht auch unter Lenny funktionieren sollte… Getestet habe ich es direkt nicht – aber wohl von Etch zu Lenny geupdated und MySQL 4 läuft noch immer…

Hallo,

ich versuche gerade Mysql auf Lenny zu installieren.
Ich bleibe aber schon bei den Befehl :
useradd -m -d /usr/local/mysql4 -s /bin/false -g mysql mysql4
hängen .Es kommt dann useradd: unknown group mysql
Es ist ein Lenny minimalsystem.
Bitte um hilfe.

Hi, das liegt wohl daran, dass ich Mysql 5 parallel laufen habe (die Gruppe mysql also schon existierte). In deinem Fall sollte vorher noch ein “groupadd mysql” ausgeführt werden…

Hallo,

ups habe den Fehler selbst gefunden .
Wer lesen kann ist klar im Vorteil
Muss ich für Cao noch was an der Datenbank umstellen?(außer den cao Client auf port 3307 zu setzen?
wenn ich mich mit cao versuche einen neuen Mandanten anzulegen und teste kommt das der Server erreichbar ist aber der Zugriff ist verwert

Hallo,

achso benutze es zur zt genau nach Beschreibung mit den gleichen Passwörtern

Hi,
dies liegt wahrscheinlich daran, dass CAO nicht mit den “neuen” Password-Hashes zurechtkommt. Die Anleitung ist um ein paar Befehle erweitert…

Hallo,

super !!!!
vielen Dank!!!!
Kann mir einer eine Beschreibung nennen wie ich unter Lenny einen ssh-tunnel zur Datenbank einrichte.(zugegriffen wird von Windows aus)Habe mit Debian nicht viel erfahrung

Hallo,

super vielen Dank .
Jetzt klappt es auch mit einen ssh tunnel

Super!!!
Danke euch!!!!!!

sorry. hätte zuende lesen sollen. es hat ja schon geklappt.

Ich habe allerding auch ein mysql problem
Mysql startet garnich, und im syslog steht auch nicht warum. eigentlich steht da garnichts bezügl. mysql.

irgendjemand ne idee?

lg
chris

Also ich würd die wiki noch n bisschen überarbeiten wie z.b
apt-get install build-essential und
apt-get install libncurses5-dev
dann wäre die ganze sache perfekt. naja und es muss ein sql server installiert sein damit er die gruppe mysql kennt, ausser man nimmt groupadd mysql dann funzt es auch

MFG Müller Martin

Hallo

Ich erhalte folgende Fehlermeldung bei ./configure:
checking for termcap functions library… configure: error: No curses/termcap library found

System: Debian Lenny.

Danke, Markus

wieso schreibt er mir nach eingabe der zeile:
/usr/local/mysql4/bin/mysqladmin -P 3307 -u root password “xvz”
(hab “xvz” mit neuem passwort ersetzt)

/usr/local/mysql4/bin/mysqladmin: connect to server at ‘localhost’ failed
error: ‘Access denied for user ‘root’@’localhost’ (using password: YES)’

was kann ich tun? ein pw für mysql4 wurde doch in der installation noch nicht gesetzt.

Sollte jemand Probleme haben das der Server nicht automatisch unter Debian gestartet wird empfehle ich/etc/init.d zu überprüfen. Dort sollte das Script “mysql4” zu finden sein, einfach “insserv mysql4” ausführen und das Script wird beim booten in den entsprechenden Runlevels gestartet. Notfalls einfach ein eigenes “init.d Script” schreiben das geht mit genügend Linux Erfahrung relativ schnell.

Falls insserv die Meldung ausgibt das “mysql” bereits existiert da bereits Mysql 5 oder höher installiert ist sollte der Scriptname von “mysql” zu “mysql4” geändert werden. Der Name ist im Script unter “# Provides: …” zu finden.

Hallo und besten Dank für die Anleitung.

Nach einem Servercrash waren wir in 30 Minuten wieder mit unserem CAO online :-)
Einzig der Importaufruf:

/usr/local/mysql4/bin/mysql -p -P 3307 -D cao &lt; cao.sql

ist so besser:

/usr/local/mysql4/bin/mysql -p -P 3307 -D cao < cao.sql

Dann braucht man bei einer "frischen" Squeeze Installation nur noch "Drag and Drop" :-)

Gruß, Heiko

Was muß abgeändert werden um das Ganze auf einem 64bit-System zu installieren?

mfg, Andy.

Ich hatte diese Anleitung bereits vor einiger Zeit einmal erfolgreich umgesetzt auf einem Ubuntu-Server.

Jetzt versuche ich dies allerdings auf einem gemieteten vServer mit CentOS 5 und bereits bestehender MySQL 5.0 DB für die dort gehosteten Websites.
Da die zu installierenden Paketnamen in der Welt von Red Hat anders lauten, bin ich nach einigem googeln auf die folgenden gestoßen und habe diese per yum installiert:
gcc gcc-c++ kernel-devel make automake ncurses-devel
Damit hat dann schonmal make funktioniert, allerdings wurde das Datenverzeichnis /usr/local/mysql4/var nicht automatisch angelegt. Also noch ein mkdir /usr/local/mysql4/var eingefügt.

Wobei ich jetzt aber nicht mehr weiterkomme:

/etc/init.d/mysql4 start
Starting MySQL................................... ERROR!

Mehr sagt mir die Konsole dabei nicht. Und in /var/log/mysqld.log steht nur folgendes:

mysqld started
[ERROR] Can't start server : Bind on unix socket: Permission denied
[ERROR] Do you already have another mysqld server running on socket: /usr/local/mysql4/var/mysqld.sock ?
[ERROR] Aborting
[Note] /usr/local/mysql4/libexec/mysqld: Shutdown complete
mysqld ended

Zu dem Fehler hab ich jetzt schon einige Stunden Google bemüht aber ohne Erfolg.
Der MySQL5-Server läuft unter /var/lib/mysql/mysql.sock
Die Berechtigungen habe ich auch schon einige Male geprüft und neu gesetzt, ich dachte eigentlich hiermit sollte es laufen: chmod -R 755 /usr/local/mysql4

Aber scheinbar gibt es ja immer noch Probleme mit den Berechtigungen, nur ich komme jetzt mit meinen begrenzten Linux Kenntnissen dort einfach nicht mehr weiter.

Für alle die bei Cao Admin die Meldung erhalten dass zwar tabellen enthalten sind aber nicht verwendet werden können.

In /usr/local/mysql4/var/my.cnf folgende Zeile einfügen:
lower_case_table_names=1

Das bewirkt, dass Mysql die Tabellen nicht case sensitive behandelt.

Vielen Dank für die Anleitung. Auch im Jahr 2015 gibt es noch Leute, die anhand dieser Anleitung erfolgreich auf einem Debian 7.8 diese uralte CAO Faktura installieren. Wo ist der paypal-Link?

Geile Anleitung.
Mal sehen, wie weit ich am WE komme.

Habe folgendes vor:
MySQL4 auf Raspi 2.
2 Sticks als Raid System.
Auf das USB Stick Raid die Datenbank auslagern.
Die SD Karte optimieren wegen den Schreibzugriffen.
Automatisch alle 7 Tage ein Komplettes Backup in die Cloud.

Mal sehen, ob ich das zusammenbringe :-D

den Sticks würde ich aber nicht trauen. Lieber ein paar ordentliche Platten die auch für RAID ausgelegt sind, gibts auch als USB. Die 100€ wäre es mit Wert. RAID Recovery/Datenverlust ist meist teurer ;-)

Hallo und VIelen Dank für diese tolle Anleitung!

Ich hätte eigentlich nur eine kleine Frage.
Wird der “mysql-4.1.22” Ordner nach einer erfolgreichen Installation denn noch benötitgt?

Vielen Dank schonmal im vorraus.

Vielen Dank für diese hilfreiche Anleitung. Um mysql4 unter Debian 9.3 erfolgreich kompilieren zu können, musste ich vor “./configure …” noch

export CFLAGS=”-Wno-narrowing”
export CXXFLAGS=”-Wno-narrowing”

eintippen (eines von beiden würde wohl reichen, aber doppelt hält besser). Sonst bricht make mit einer Fehlermeldung ab. Ausserdem musste ich der my.cnf unter [mysqld] user = mysql4 eintragen. Sonst brach der Start jeweils ab.

Ob das ganze jetzt zuverlässig funktioniert, wird sich noch zeigen… ;) grüsse

Vielen Dank für die Anleitung. Um mysql4 unter Debian 9.4 erfolgreich kompilieren zu können, musste ich vor „./configure …“ noch

export CFLAGS=’-std=gnu99′
export CXXFLAGS=’-std=gnu++98′

ausführen.

mein passwort wurde irgendwie falsch gespeichert, zumindest bekomme ich immer beim password ein access denied.

wie kann ich das zurück setzten?

die normalen anleitungen gehen ja nur von einer mysql instanz aus und mariadb will ich ja nicht ändern.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.