Zurück  

SQL-Server

Ich verwende MariaDB obwohl Debian eine der letzten Distributionen ist, die noch MySQL als Standard haben.

Dem SQL-Server gebe ich deutlich mehr Speicher: 1GB plus 512MB Swap.

Oben Rechts im Proxmox-Frontend auf 'Create CT' klicken um den Container zu erstellen.

bild

bild

bild

bild

bild

bild

bild

bild

bild

Der SQL-Server ist ausschlisslich im virtuellen Netz.

Auto-Start

Der SQL-Server muss automatisch gestartet werden. Also die entsprechende Option aktivieren.

bild

Grund-Konfiguration

etc/host.OK

Die im CT, nicht die vom Host, also die "/Pool1/subvol-247-disk-1/etc/hosts"

DL
127.0.0.1	localhost
192.168.99.247	sql.intern.comasys.ch sql
::1		localhost ip6-localhost ip6-loopback
ff02::1		ip6-allnodes
ff02::2		ip6-allrouters

Container Starten

Und gleich mit SSH Auf den Container:

DL
ssh root@192.168.99.247 -p55

MariaDB

DL
apt-get install
 mariadb-server

Zum verlangten Passwort mache ich wie immer keine Vorgaben.

Konfiguration

Zuerst stoppen wir den Dienst:

service mysql stop

Da in "/etc/mysql/my.cnf" alles unter "/etc/mysql/conf.d" includiert wir, können wir einfach eine zusätzliche .cnf anlegen:

/etc/mysql/conf.d/tobs.cnf

Standard ist nur "127.0.0.1" aktiv, wir wollen aber, dass alle CT/VM zugreifen dürfen.

Un dann habe ich noch was an den InnoDB-Werten zu schrauben. Wobei die InnoDB-Einstellungen von hier übernommen sind.

DL
[mysqld]
bind-address = 192.168.99.247
innodb_file_per_table = yes
innodb_log_file_size = 1G
innodb_buffer_pool_size = 4G
innodb_buffer_pool_instances = 4

Installation aufräumen

Durch das aktviern von "innodb_file_per_table" sollten einige Dateien gelöscht werden. Beim neustart des Dienstes werden sie automatisch neu angelegt.

DL
cd /var/lib/mysql
rm ibdata1
rm ib_logfile0
rm ib_logfile1

Der Dienst darf jetzt keinenfalls gestartet werden! Der von mir verlangte Pool von 4G haben wir im CT nicht zur Verfügung! Der Pool kann unmöglich angelegt werden und der Start mislingt. Wir müssen also mal wieder auf den Host und ein Verzeichnis erstellen das wir dann einbinden können.

Auf dem Host

Jetzt den CT runterfahren, weiter geht es auf dem Host.

Die Daten lege ich wieder auf den Host und nutze Bind-Mount für den Container.

Das vorhandene Verzeichnis aus dem CT auf den Host verschieben, und dann das original für den Mountpoint wieder erstellen.

DL
mv /Pool1/subvol-247-disk-1/var/lib/mysql /Pool1/DATA/247-Sql
mkdir /Pool1/subvol-247-disk-1/var/lib/mysql

/etc/pve/lxc/247.conf

Folgende Zeile am Schluss einfügen:

DL
lxc.mount.entry: /Pool1/DATA/247-Sql var/lib/mysql none bind 0 0

CT wieder starten

Im Verzeichnis "/var/lib/mysql" müssten wir die wieder erstellten "ib_logfile?" mit jetzt je 1GB Grösse sehen. Obwohl unser CT nur 1GB Disk hat, ist das dank Bind-Mount kein Problem.

Ein "ss -ln | grep 3306" müsste unsere IP und nicht den Localhost (127.0.0.1) als aktiv zeigen.

Und mit "mysql -p" und dem bei der Installation angegebenen Passwort können wir uns auf dem SQL-Server einloggen. Ein "show databases;" zeigt uns die 3 System-Datenbanken.

Mit "exit;" verlassen wir die SQL-Shell wieder.

Da mit der Zugriff für Root auch vom Web-Server aus funktionniert, müssen wir die Berechtigungen so anpassen, dass root aus dem Netz zugreifen darf.

/usr/var/mysql/root-user.sql

DL
GRANT ALL ON *.* TO "root"@"192.168.99.%" IDENTIFIED BY "PassWort";
GRANT ALL ON *.* TO "root"@"192.168.99.%" WITH GRANT OPTION;

Ausführen mit "mysql -p </usr/var/mysql/root-user.sql".

Das Passwort PassWort in der ersten Zeilen durch etwas vernünftiges ersetzen!

Somit ist der SQL-Server grundsätzlich bereit. Die Berchtigung ist im Moment etwas grosszügig, die passen wir später mit PhpMyAdmin an...

Allerdings können die 1GB Ram und 512MB Swap etwas knapp bemessen sein. Je nach Auslastung muss für den produktiven Betrieb noch mehr zugestanden werden.
Bei intensiver Nutzung kann es auch sein, dass mehr als nur einen Prozessor zugewiesen werden muss.

Zurück