Tom: MySQL: zwei Server auf einer Maschine

Hello,

wer kann mir die passenden Hinweise geben, ob und wie ich auf einem Host zwei (mäßig) voneinander unabhängige MySQL-Server laufen lassen kann.

Das dürfen auch gerne zwei Instanzen eines "Ur-Servers" sein

Was muss mindestens anders sein und wie starte ich diese?

♦ Ini-Datei mit
  - Port
  - Socket
  - pid-File
  - log-bin
  - data-dir  (darum geht es ja eigentlich)

- server-id

- base-dir
  - temp-dir
  - include-dir

Nun gibt es ja die "Server-ID"
Die muss ja für irgendetwas gut sein.
Würde es Vielleicht reichen, die zu ändern und das Datenverzeichnis und dann ein eigenes Start-Stop-Script für jede ID zu erstellen?

Hat das hier schon mal jemand gemacht?

Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

  1. Hallo Tom,

    wer kann mir die passenden Hinweise geben, ob und wie ich auf einem Host zwei (mäßig) voneinander unabhängige MySQL-Server laufen lassen kann.

    kommst mir diese Frage bekannt vor? Ja, klar!

    Hat das hier schon mal jemand gemacht?

    eventuell Du selbst?

    Freundliche Grüße

    Vinzenz

    1. Hello Vinzenz,

      kommst mir diese Frage bekannt vor? Ja, klar!

      Hat das hier schon mal jemand gemacht?

      eventuell Du selbst?

      *tztz*

      Danke.
      Mit dem Link hilfst Du mir doppelt.

      Harzliche Grüße vom Berg
      http://bergpost.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

      1. Hello,

        habe die my.cnf kopiert nach my2.cnf und die Einstellungen angepasst. Eigentlich nur den Port geändert und bei allen Pfaden auf /hdd2/... verwiesen.

        Leider gibt es nun bei aufruf mit

        mysql_safe --defaults-file /etc/mysql/my2.cnf

        nur die Fehlermeldung

        mysql_safe[2664]: A mysql process already exists

        Muss ich doch mal suchen, wer da wieder dazwischen funkt.

        Harzliche Grüße vom Berg
        http://bergpost.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

        1. Hello,

          Leider gibt es nun bei aufruf mit

          mysqld_safe --defaults-file /etc/mysql/my2.cnf

          nur die Fehlermeldung

          mysqld_safe[2664]: A mysql process already exists

          Und Google kann damit nicht viel anfangen.

          Harzliche Grüße vom Berg
          http://bergpost.annerschbarrich.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          Nur selber lernen macht schlau
          Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

        2. Hallo Tom,

          habe die my.cnf kopiert nach my2.cnf und die Einstellungen angepasst. Eigentlich nur den Port geändert und bei allen Pfaden auf /hdd2/... verwiesen.

          das ist doch zu wenig! Das Handbuch sagt Dir doch, dass neben

          -- port

          noch die Optionen

          -- socket
           -- pid-file

          unterschiedliche Werte enthalten müssen. (Ich gehe von Deinem Debian aus :-))

          Freundliche Grüße

          Vinzenz

          1. Hello,

            habe die my.cnf kopiert nach my2.cnf und die Einstellungen angepasst. Eigentlich nur den Port geändert und bei allen Pfaden auf /hdd2/... verwiesen.

            das ist doch zu wenig! Das Handbuch sagt Dir doch, dass neben

            -- port

            noch die Optionen

            -- socket
            -- pid-file

            unterschiedliche Werte enthalten müssen. (Ich gehe von Deinem Debian aus :-))

            Ja, die sind doch über Pfade erreichbar :-)

            ---------------------------------

            The MySQL database server configuration file for Server 2

            Remember to edit /etc/mysql/debian.cnf when changing the socket location.

            [client]
            port  = 3307
            socket  = /hdd2/var/run/mysqld/mysqld.sock

            [mysqld_safe]
            socket  = /hdd2/var/run/mysqld/mysqld.sock
            nice  = 0

            [mysqld]
            user  = mysql
            pid-file = /hdd2/var/run/mysqld/mysqld.pid
            socket  = /hdd2/var/run/mysqld/mysqld.sock
            port  = 3307
            basedir  = /hdd2/usr
            datadir  = /hdd2/var/lib/mysql

            tmpdir  = /hdd2/tmp
            language = /hdd2/usr/share/mysql/english
            skip-external-locking

            Instead of skip-networking the default is now to listen only on

            localhost which is more compatible and is not less secure.

            bind-address  = 127.0.0.1

            bind-address    = 192.168.101.99

            key_buffer  = 16M
            max_allowed_packet = 16M
            thread_stack  = 128K
            thread_cache_size = 8
            #max_connections        = 100
            #table_cache            = 64
            #thread_concurrency     = 10

            query_cache_limit       = 1M
            query_cache_size        = 16M

            Error logging goes to syslog. This is a Debian improvement :)

            #server-id  = 1
            log_bin   = /hdd2/var/log/mysql/mysql-bin.log

            WARNING: Using expire_logs_days without bin_log crashes the server! See README.Debian!

            expire_logs_days = 10
            max_binlog_size         = 100M
            #binlog_do_db  = include_database_name
            #binlog_ignore_db = include_database_name

            Using BerkeleyDB is now discouraged as its support will cease in 5.1.12.

            skip-bdb

            You might want to disable InnoDB to shrink the mysqld process by circa 100MB.

            #skip-innodb

            [mysqldump]
            quick
            quote-names
            max_allowed_packet = 16M

            [mysql]
            #no-auto-rehash # faster start of mysql but no tab completition

            [isamchk]
            key_buffer  = 16M

            * IMPORTANT: Additional settings that can override those from this file!

            !includedir /hdd2/etc/mysql/conf.d/
            -----------------------------------------

            Was ist denn noch falsch an der my2.cnf?

            Mit

            testserver:/hdd2/var/run/mysqld# mysqld_safe --port=3307 --socket=/hdd2/var/lib/mysqld/mysqld.sock --pid-file=/hdd2/var/lib/mysqld/mysqld.pid --datadir=/hdd2/var/lib/mysql --log
            -error=/hdd2/var/log/mysql/mysql-bin.log
            Starting mysqld daemon with databases from /hdd2/var/lib/mysql
            mysqld_safe[2934]: started

            klappt es aber. Mit Heidi und mit SQL-Front komm ich auch drauf.

            Wie kann ich denn nun aber die mysql-shell auf der Konsole benutzen?

            Harzliche Grüße vom Berg
            http://bergpost.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
            Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

            1. Hello,

              ich dachte, den Fehler gefunden zu haben.
              Ich hatte die Startoption aus einer user contributed note abgetippt. Dort fehlt ein '='

              Es musste heißen       mysqld_safe --defaults-file=/etc/mysql/my2.cnf

              Aber das funktioniert trotzdem nicht.

              Dann wüsste ich noch gerne, wie ich den Prozess in den Hintergrund bringe, damit er die Konsole nicht sperrt. Mit '&' hat es nicht funktioniert.

              Harzliche Grüße vom Berg
              http://bergpost.annerschbarrich.de

              Tom

              --
              Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
              Nur selber lernen macht schlau
              Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

              1. Hi Tom,

                Dann wüsste ich noch gerne, wie ich den Prozess in den Hintergrund bringe, damit er die Konsole nicht sperrt. Mit '&' hat es nicht funktioniert.

                Ich habe mir gerade mal das Debian-Startscript für Mysql angeguckt (/etc/init.d/mysql), dort wird er mit

                /usr/bin/mysqld_safe > /dev/null 2>&1 &

                gestartet, das sollte also entgegen deiner Aussage auch funktionieren - vielleicht, weil hier noch sämtliche Ausgaben in /dev/null umgeleitet werden.

                Noch etwas, mysqld --verbose --help sagt:

                --server-id=#       Uniquely identifies the server instance in the community
                                      of replication partners.

                Scheint mir für deinen Fall also nicht so von Wichtigkeit zu sein.

                Viele Grüße,
                  ~ Dennis.

                1. Hello Dennis,

                  Ich habe mir gerade mal das Debian-Startscript für Mysql angeguckt (/etc/init.d/mysql), dort wird er mit

                  /usr/bin/mysqld_safe > /dev/null 2>&1 &

                  gestartet, das sollte also entgegen deiner Aussage auch funktionieren - vielleicht, weil hier noch sämtliche Ausgaben in /dev/null umgeleitet werden.

                  Jau, danke. An der Stelle war ich noch nicht angekommen im Script.

                  Wo wir gerade dabei sind. Ich hatte mir das gezogen, um herauszufinden, ob ich es eventuell so anpasen kann, dass man es z.B. mit mysql --server=2 start  usw auch weiterhin verwenden kann für Start und Stop der unterschiedlichen MySQL-Server.

                  Aber mit den Linux-Scripten komme ich noch nicht klar...

                  Harzliche Grüße vom Berg
                  http://bergpost.annerschbarrich.de

                  Tom

                  --
                  Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                  Nur selber lernen macht schlau
                  Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

  2. Hallo,

    nachdem ich hier in Berlin noch nicht so recht in den Genuss des Winters gekommen bin, wollte ich mich mal nach der fernen Heimat erkundigen... Gibts in clausthal schon Schnee? Wenn ja, bist du in andreasberg sicherlich schon eingeschneit (kann mich an einen entsprechenden thread vor ein paar Jahren erinnern)...

    Wollte mal wieder zu Brockschmidts gehen, wegen der verbiegbaren Bleistifte :-)

    Mfg Hans

    1. Hello Hans,

      Gibts in clausthal schon Schnee? Wenn ja, bist du in andreasberg sicherlich schon eingeschneit (kann mich an einen entsprechenden thread vor ein paar Jahren erinnern)...

      Hui, der müsste in Chlausthal eigentlich schon wieder weg sein. Selbst hier bei uns ist gestern und heute alles zusammengeschmolzen. Die Dächer hatten so ca. 25-30 cm drauf, als es plötzlich ca. 8° wärmer wurde (jetzt ca. 3,5 bis 5°C). Da sind die Lawinchen alle abgegangen...

      Wie lange bist Du schon weg aus dem Harz?

      Wollte mal wieder zu Brockschmidts gehen, wegen der verbiegbaren Bleistifte :-)

      Ja, der Karl-Heinz hat immer nette Sächelchen...

      Harzliche Grüße vom Berg
      http://bergpost.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

      1. och, bin schon ca 1,3 Jahre weg, es hat mich nach dem Abitur an der RKS
        nach Berlin verschlagen, um den Zivi zu machen.
        Ansonsten war ich in diesem Jahr nur zwei oder dreimal wieder da.

        Mfg Hans