PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MySQL 4 und 5 auf einem System.



zyon
21.06.2006, 09:51
Hallo,

ich habe derzeit zu Entwicklungszwecken einen Apache 2 mit PHP 4/5 als FastCGI
auf meinem Arbeitsrechner (Debian Sarge) aufgesetzt.

Dieses läuft auch alles sehr gut. Nun brauche ich halt noch Datenbanken. Und hier auch
gleich meine Fragen. Ist es Möglich die MySql 4 und die MySql 5 Server-Datenbank
auf einem System auf zusetzen.

Gruß

zyon

supersucker
21.06.2006, 10:08
Ist es Möglich die MySql 4 und die MySql 5 Server-Datenbank
auf einem System auf zusetzen.

Ja, klar.

Zumindest wenn du selber kompilierst, schau dir mal configure --help an.

Ich hab das bei mir früher ungefähr so gehabt (bzw. so ähnlich, params können auch anders heissen):


./configure --prefix=/opt/db/mysqlx --data-dir=/var/....

Die kannst du auch gleichzeitig laufen lassen, musst halt nur den Port ändern.

damager
21.06.2006, 10:43
die müssen dann natürlich auch auf unterschiedlichen ports horchen ..falls sie auch gleichzeitig laufen sollen :]

supersucker
21.06.2006, 10:47
Die kannst du auch gleichzeitig laufen lassen, musst halt nur den Port ändern.


die müssen dann natürlich auch auf unterschiedlichen ports horchen ..falls sie auch gleichzeitig laufen sollen

Zu Ende lesen schadet nie........:-)

damager
21.06.2006, 11:49
lesen ist macht ... nicht lesen macht auch nix :D
hast ja recht, mein fehler.

zyon
21.06.2006, 19:59
so.. habe mir die packe gesaugt.. wollte mal eins Fragen. Muss ich Mysql als root backen?

damager
22.06.2006, 10:12
pakete? backen?
installationen erfolgen grundsätzlich nur als root. wenn du die source-"pakate" runtergeladen hast dann kannst du alles ausser "make install" als nicht-root durchführen.

zyon
22.06.2006, 12:48
pakete? backen?


backen = kompilieren..


wenn du die source-"pakate" runtergeladen hast dann kannst du alles ausser "make install" als nicht-root durchführen.

Ich kann auch "make install" ohne root rechte laufen lassen !

factorx
22.06.2006, 12:55
Ich kann auch "make install" ohne root rechte laufen lassen !

Nur wenn du es mit einem ./configure --prefix=... in ein Verzeichnis gemacht hast, in dem du Schreibrechte besitzt. Ansonsten sind deine Verzeichnisrechte nicht besonders schlau gesetzt.

supersucker
22.06.2006, 12:57
Ich kann auch "make install" ohne root rechte laufen lassen !

Klar kannst du das.

Nur wird das halt in 99% der Fälle absolut sinnlos sein, weil "make install" irgendwas irgenwohin kopieren wo der User der make install ausführt keine Schreibrechte hat, wodurch make install abbricht.

Klar kannst du auch vorher mit configure angeben was wohin soll, und das alles so ändern das make install ohne Fehler durchläuft.
Ob das sinnvoll ist, steht auf einem anderen Blatt.

EDIT: zu lahm gewesen

zyon
22.06.2006, 19:25
Kurze verständnis Frage zur Socketdatei.

es ist mir ja klar das ich für jeden mysqld eine andere Socketdatei
zuweissen muss. Das ist ja auch kein Problem "--with-unix-socket-path=file_name"

Bloß Frage ich mich. Muss diese schon existieren oder wird die von MySQL
selber erstellt. z.b Kann ich einfach für das mysql4 : /tmp/mysql4.sock und für 5
/tmp/mysql5.sock als paramter übergeben? Wenn ja müssen diese Datei existent sein?
Wenn ja was muss drin stehen?

Rilly
06.10.2006, 16:51
Hallo leider versuche ich vergeblich auf meinem Server unter Suse 10 mit Plesk einen mysql5 Server zusätlich zu dem 4er zu installieren. Kann mir da jemand helfen?
Folgendes hab ich schon gemacht:
5er heruntergeladen und nach /usr/local/mysql-5.0.24 entpackt
dann folgenden Befehl aufgerufen:

./configure --with-tcp-port=3307 --with-unix-socket-path=/etc/my5.cnf --prefix=/usr/local/mysql-5.0.24

In der Datei my5.cnf steht übrigens der Port 3307 und socket /tmp/mysql5.sock

Er bringt danach folgende Meldung:
NOTE: This is a MySQL binary distribution. It's ready to run, you don't
need to configure it!

To help you a bit, I am now going to create the needed MySQL databases
and start the MySQL server for you. If you run into any trouble, please
consult the MySQL manual, that you can find in the Docs directory.

Installing all prepared tables
Fill help tables

To start mysqld at boot time you have to copy support-files/mysql.server
to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
./bin/mysqladmin -u root password 'new-password'
./bin/mysqladmin -u root -h server.rill-it.de password 'new-password'
See the manual for more instructions.

NOTE: If you are upgrading from a MySQL <= 3.22.10 you should run
the ./bin/mysql_fix_privilege_tables. Otherwise you will not be
able to use the new GRANT command!

You can start the MySQL daemon with:
cd . ; ./bin/mysqld_safe &

You can test the MySQL daemon with the benchmarks in the 'sql-bench' directory:
cd sql-bench ; perl run-all-tests

Please report any problems with the ./bin/mysqlbug script!

The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at http://shop.mysql.com
Starting the mysqld server. You can test that it is up and running
with the command:
./bin/mysqladmin version
server:/usr/local/mysql-5.0.24 # Starting mysqld daemon with databases from /usr/local/mysql-5.0.24/data
STOPPING server from pid file /usr/local/mysql-5.0.24/data/server.rill-it.de.pid
061006 16:48:12 mysqld ended

supersucker
06.10.2006, 16:56
Wie?

Du hast die sourcen runtergeladen?

Und im source-Verzeichnis obigen configure-Aufruf gemacht?

Und dann diese Meldung bekommen?

Rilly
06.10.2006, 18:16
hmm ja scheinbar schon, hab ich das falsche runtergeladen, oder?*ggg

supersucker
06.10.2006, 18:34
hmm ja scheinbar schon, hab ich das falsche runtergeladen, oder?*ggg

Ja, woher zur Hölle sollen wir denn wissen was du heruntergeladen hast?

no_root
27.10.2006, 15:17
Hallo Leute,

ich bin ein wenig am Verzweifeln.. ich versuche seit einigen Tagen zu Testzwecken MySQL 5 (5.0.26) auf einem SuSe Linux 9.0 Professional System zu installieren. MySQL 4.0.15 läuft da bereits. Habe die Sourcen von der MySQL-Homepage (http://dev.mysql.com/downloads/mysql/5.0.html#downloads) geholt (als Tarball) und dann per Hand mit folgendem Kommando kompiliert:


CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql-5/ --localstatedir=/usr/local/mysql-5/data --enable-assembler --with-mysqld-ldflags=-all-static --with-named-curses-libs=/lib/libncurses.so.5.3

Während dessen gab es einige Warnungen, aber keinerlei Fehler. Das make und make install liefen glatt durch. Habe anschließend aus dem Installationsverzeichnis ~/support-files die Datei my-large.cnf ins Verzeichnis /usr/local/mysql-5/ kopiert, nach my.cnf umbenannt und folgende Einträge editiert (Port und Socket-Pfad angepasst):



# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3307
socket = /usr/lccal/mysql-5/mysql5.sock

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
port = 3307
socket = /usr/local/mysql-5/mysql5.sock


Anschließend habe ich einen User mysql5 angelegt, ihm ein PW verpasst und der Gruppe 2 (daemons) hinzugefügt. Das war beim bereits vorhandenen user mysql, unter dem der mysqld für MySQL 4.0.15 läuft, jedenfalls so.

Danach habe ich unter /usr/local/mysql-5/bin/ den Befehl ./mysql_install_db --user=mysql5 ausgeführt - lief fehlerfrei durch.

Wenn ich jetzt - wie in der MySQL-Doku (http://dev.mysql.com/doc/refman/5.0/en/quick-install.html) beschrieben - den Daemon mit dem Befehl mysqld_safe --user=mysql & das erste Mal starten will, erhalte ich die Meldung:


xxxx:/usr/local/mysql-5/bin # mysqld_safe --user=mysql5 &
[2] 2841
xxxx:/usr/local/mysql-5/bin # Starting mysqld daemon with databases from /var/lib/mysql
061027 14:56:15 mysqld ended


Unter /var/lib/mysql liegen die Dateien des MySQL 4.0.15... das soll der neue Server natürlich nicht machen ^^. Was habe ich übersehen? Ich sehe noch ein Problem mit der Socket-Datei... habe den Ort diese Datei (sollte ja eigentlich /usr/local/mysql-5/mysql5-sock sein) beim Kompilieren nicht eigens als Parameter angegeben. War das verkehrt? Jedenfalls ist zur Zeit im Verzeichnis /usr/local/mysql-5/ keine Datei mysql5.sock vorhanden...

Habe auch versucht, das MySQL-root-Account per PW zu schützen und erhalte folgendes dabei:


h3598:/usr/local/mysql-5/bin # mysql -u root
ERROR 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)


Komischerweise liegt unter '/var/lib/mysql/' auch keine mysql.sock ... von der Erstinstallation des Systems und des MySQL 4.0.15 befindet sich im Verzeichnis /etc/ eine Datei my.cnf, deren Einträge für den Socket-Pfad aber genau darauf zeigen.... verstehen tue ich das nicht so ganz. Muss dazu sagen, dass ich die Kiste nicht aufgesetzt habe, sondern nur den "Besitzer" bei der Wartung unterstützen soll.

Ich hoffe, Ihr könnt mir helfen, bin langsam ein wenig verzweifelt... wenn weitere Infos zum System oder zur Konfiguration nötig sein sollten, gebe ich sie gern. Fragt einfach.

[edit] Kleiner Zusatz: Habe mal versucht, beim Start des Dienstes einige Paramter mitzugeben...

/mysqld_safe user=mysql5 --pid-file=/usr/local/mysql-5/data/mysqld.pid --socket=/usr/local/mysql-5/mysql.sock --datadir=/usr/local/mysql-5/data


Leider ohne Erfolg, Dienst wird gestartet und sofort wieder beendet. Habe im Error-Log aus dem Verzeichnis /usr/local/mysql-5/data/ folgendes gefunden.:


061027 14:52:46 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use
061027 14:52:46 [ERROR] Do you already have another mysqld server running on port: 3307 ?
061027 14:52:46 [ERROR] Aborting


Komisch, der andere Server horcht brav aus Port 3306....

Grüße
~ no_root