{"id":294,"date":"2020-12-26T16:46:50","date_gmt":"2020-12-26T15:46:50","guid":{"rendered":"https:\/\/nissel.it\/?p=294"},"modified":"2020-12-30T15:12:21","modified_gmt":"2020-12-30T14:12:21","slug":"maradb-ueber-docker-compose-installieren-und-in-plesk-integrieren","status":"publish","type":"post","link":"https:\/\/nissel.it\/index.php\/2020\/12\/26\/maradb-ueber-docker-compose-installieren-und-in-plesk-integrieren\/","title":{"rendered":"Maradb \u00fcber docker (compose) installieren und in Plesk integrieren"},"content":{"rendered":"\n<p>Plesk bietet die M\u00f6glichkeit weitere Datenbanken in der Oberfl\u00e4che einzubinden. Wenn man eine neuere\/andere Version der Datenbank nutzen m\u00f6chte ist dies sehr hilfreich. Dies ist mit Moodle 3.9 und Ubuntu 18.04 notwendig, da die Datenbankversion zu alt ist und ein update auf Ubuntu 20.04 zu diesem Zeitpunkt von Plesk noch nicht unterst\u00fctzt wird.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">Installation Docker<\/h2>\n\n\n\n<p>Dies sind zusammen kopierte Befehle aus der <a href=\"https:\/\/docs.docker.com\/install\/linux\/docker-ce\/ubuntu\/\">offiziellen Dokumentation<\/a>. Zus\u00e4tzlich habe ich direkt docker-compose mit installiert. Befehle als root ausf\u00fchren!<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt-get install \\\n    apt-transport-https \\\n    ca-certificates \\\n    curl \\\n    gnupg-agent \\\n    software-properties-common<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code> curl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg | apt-key add -<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>add-apt-repository \\\n   \"deb &#91;arch=amd64] https:\/\/download.docker.com\/linux\/ubuntu \\\n   $(lsb_release -cs) \\\n   stable\"<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>apt-get update<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>apt-get install docker-ce docker-ce-cli containerd.io docker-compose<\/code><\/pre>\n\n\n\n<p>Ich empfehle docke nicht als root laufen zu lassen. Entweder erstellt man einen eigenen Benutzer bzw. ich habe mich dazu entschieden docker unter den Benutzernamen einer meiner Domains laufen zu lassen.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo usermod -aG docker DOMAIN_USERNAME<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Docker compose Datei<\/h2>\n\n\n\n<p>Zuerst muss eine <a>docker-compose.yml<\/a> Datei erstellt werden. Z.B. unter \/var\/www\/domain.de\/docker<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>version: \"3.3\"\n\nservices:\n  mariadb_moodle01:\n    image: mariadb:10.5\n    container_name: mariadb_moodle01\n    restart: always\n    environment:\n      - MYSQL_ROOT_PASSWORD=123test\n    volumes:\n      - \/var\/www\/vhosts\/domain.de\/dockerdb\/data\/mariadb:\/var\/lib\/mysql\n    ports:\n      - 3316:3306\n    command: &#91;'mysqld', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci']<\/code><\/pre>\n\n\n\n<p>Der Pfad f\u00fcr die Daten, Passwort und Name des containers sollten angepasst werden. Die Parameter zum starten der Datenbank sind angepasst, damit f\u00fcr moodle volle UFT8 Unterst\u00fctzung herrscht.<br>Der Lokale Port (in diesem Fall 3316) kann nach belieben angepasst werden, sollte sich aber nicht mit einem bestehenden \u00fcberschneiden.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Starten \/ Neu erstellen<\/h2>\n\n\n\n<p>Es ist empfehlenswert ein Skript z.b. rebuild.sh zu erstellen, welches den docker container installiert und startet bzw. auch ein update durchf\u00fchrt wenn eine neuere existiert.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/bin\/bash\ncd $(dirname \"$0\")\ndocker-compose up -d --build mariadb_moodle01<\/code><\/pre>\n\n\n\n<p>Danach das skript mit chmod +x ausf\u00fchrbar machen und starten.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Passwort f\u00fcr lokalen Login \u00e4ndern (optional)<\/h2>\n\n\n\n<p>Wenn man das root password \u00e4ndern m\u00f6chte und dich per mysql Konsolen client einloggt, muss man aufpassen auf welcher Datenbank man landet. Beim login zum localhost wird der port ignoriert man muss zus\u00e4tzlich protocol=TCP angeben. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql --user=root --port=3316 --protocol=TCP --password<\/code><\/pre>\n\n\n\n<p>Passwort \u00e4ndern wenn gew\u00fcnscht.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>grant all on *.* to root@localhost identified by '123test' with grant option;\nflush privileges;\nquit;<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Datenbank in Plesk einrichten<\/h2>\n\n\n\n<p>Unter &#8222;Tools &amp; Settings&#8220; die Datenbank Server konfigurieren.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"385\" height=\"142\" src=\"https:\/\/nissel.it\/wp-content\/uploads\/2020\/12\/grafik.png\" alt=\"\" class=\"wp-image-295\" srcset=\"https:\/\/nissel.it\/wp-content\/uploads\/2020\/12\/grafik.png 385w, https:\/\/nissel.it\/wp-content\/uploads\/2020\/12\/grafik-300x111.png 300w\" sizes=\"auto, (max-width: 385px) 100vw, 385px\" \/><figcaption>Tools &amp; Settings -&gt; Database Servers<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"394\" height=\"249\" src=\"https:\/\/nissel.it\/wp-content\/uploads\/2020\/12\/grafik-1.png\" alt=\"\" class=\"wp-image-296\" srcset=\"https:\/\/nissel.it\/wp-content\/uploads\/2020\/12\/grafik-1.png 394w, https:\/\/nissel.it\/wp-content\/uploads\/2020\/12\/grafik-1-300x190.png 300w\" sizes=\"auto, (max-width: 394px) 100vw, 394px\" \/><figcaption>Add Database Server<\/figcaption><\/figure>\n\n\n\n<p>Wichtig ist hier den Domainnamen des Servers anzugeben, da wenn hier localhost angegeben wird, der Port ignoiert wird und sich zur plesk mariadb verbunden wird.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"511\" height=\"610\" src=\"https:\/\/nissel.it\/wp-content\/uploads\/2020\/12\/grafik-3.png\" alt=\"\" class=\"wp-image-298\" srcset=\"https:\/\/nissel.it\/wp-content\/uploads\/2020\/12\/grafik-3.png 511w, https:\/\/nissel.it\/wp-content\/uploads\/2020\/12\/grafik-3-251x300.png 251w\" sizes=\"auto, (max-width: 511px) 100vw, 511px\" \/><figcaption>Verbindungsdaten<\/figcaption><\/figure>\n\n\n\n<p>Aus diesem Grund m\u00fcssen remote Verbindungen zugelassen werden. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"462\" height=\"218\" src=\"https:\/\/nissel.it\/wp-content\/uploads\/2020\/12\/grafik-4.png\" alt=\"\" class=\"wp-image-299\" srcset=\"https:\/\/nissel.it\/wp-content\/uploads\/2020\/12\/grafik-4.png 462w, https:\/\/nissel.it\/wp-content\/uploads\/2020\/12\/grafik-4-300x142.png 300w\" sizes=\"auto, (max-width: 462px) 100vw, 462px\" \/><figcaption>Database Settings<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/nissel.it\/wp-content\/uploads\/2020\/12\/grafik-5.png\" alt=\"\" class=\"wp-image-300\" width=\"674\" height=\"447\" srcset=\"https:\/\/nissel.it\/wp-content\/uploads\/2020\/12\/grafik-5.png 709w, https:\/\/nissel.it\/wp-content\/uploads\/2020\/12\/grafik-5-300x199.png 300w\" sizes=\"auto, (max-width: 674px) 100vw, 674px\" \/><figcaption>Allow remote connections from any host<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Datenbank f\u00fcr Benutzer\/Domains erstellen<\/h2>\n\n\n\n<p>Beim erstellen einer neuen Datenbank kann man nun den Datenbankserver ausw\u00e4hlen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"580\" height=\"279\" src=\"https:\/\/nissel.it\/wp-content\/uploads\/2020\/12\/grafik-6.png\" alt=\"\" class=\"wp-image-301\" srcset=\"https:\/\/nissel.it\/wp-content\/uploads\/2020\/12\/grafik-6.png 580w, https:\/\/nissel.it\/wp-content\/uploads\/2020\/12\/grafik-6-300x144.png 300w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><figcaption>Add a Database<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Automatisches Update<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/cron.weekly\/update-mariadb-docker<\/code><\/pre>\n\n\n\n<p>Das Skript zum erstellen und updaten der ausf\u00fchren lassen <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\n#!\/bin\/bash\necho \"$(date) start update\" &gt;&gt; \/var\/log\/update-mariadb-docker.log\n\/var\/www\/vhosts\/nissel.it\/dockerdb\/rebuild.sh &gt;&gt; \/var\/log\/update-mariadb-docker.log 2&gt;&amp;1<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod +x \/etc\/cron.weekly\/update-mariadb-docker<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Backup<\/h2>\n\n\n\n<p>Wenn es ein plesk Backup dieser Domain oder des Servers gibt, kann auf den data Ordner des maradb Ordner nicht zugegriffen werden. Deswegen sollte man diesen aus dem Backup ausschlie\u00dfen. Im Normalen Datenbank Backup der Domain (mysqldump) ist der Container enthalten.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"706\" height=\"245\" src=\"https:\/\/nissel.it\/wp-content\/uploads\/2020\/12\/grafik-7.png\" alt=\"\" class=\"wp-image-312\" srcset=\"https:\/\/nissel.it\/wp-content\/uploads\/2020\/12\/grafik-7.png 706w, https:\/\/nissel.it\/wp-content\/uploads\/2020\/12\/grafik-7-300x104.png 300w\" sizes=\"auto, (max-width: 706px) 100vw, 706px\" \/><\/figure>\n\n\n\n<p>Plesk: 18.0.31<br>Ubuntu: 18.04.5<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Links<\/h2>\n\n\n\n<p><a href=\"https:\/\/canox.net\/2017\/08\/passwort-fuer-den-root-benutzer-von-mariadb-setzen\/\">https:\/\/canox.net\/2017\/08\/passwort-fuer-den-root-benutzer-von-mariadb-setzen\/<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/connecting.html\">https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/connecting.html<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/docs.docker.com\/engine\/install\/ubuntu\/\">https:\/\/docs.docker.com\/engine\/install\/ubuntu\/<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/docs.docker.com\/engine\/install\/linux-postinstall\/\">https:\/\/docs.docker.com\/engine\/install\/linux-postinstall\/<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/docs.moodle.org\/310\/en\/MySQL_full_unicode_support\">https:\/\/docs.moodle.org\/310\/en\/MySQL_full_unicode_support<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Plesk bietet die M\u00f6glichkeit weitere Datenbanken in der Oberfl\u00e4che einzubinden. Wenn man eine neuere\/andere Version der Datenbank nutzen m\u00f6chte ist dies sehr hilfreich. Dies ist mit Moodle 3.9 und Ubuntu 18.04 notwendig, da die Datenbankversion zu alt ist und ein update auf Ubuntu 20.04 zu diesem Zeitpunkt von Plesk noch nicht unterst\u00fctzt wird.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[13,14,6,4],"class_list":["post-294","post","type-post","status-publish","format-standard","hentry","category-webserver","tag-docker","tag-mariadb","tag-moodle","tag-plesk"],"_links":{"self":[{"href":"https:\/\/nissel.it\/index.php\/wp-json\/wp\/v2\/posts\/294","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nissel.it\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nissel.it\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nissel.it\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nissel.it\/index.php\/wp-json\/wp\/v2\/comments?post=294"}],"version-history":[{"count":8,"href":"https:\/\/nissel.it\/index.php\/wp-json\/wp\/v2\/posts\/294\/revisions"}],"predecessor-version":[{"id":314,"href":"https:\/\/nissel.it\/index.php\/wp-json\/wp\/v2\/posts\/294\/revisions\/314"}],"wp:attachment":[{"href":"https:\/\/nissel.it\/index.php\/wp-json\/wp\/v2\/media?parent=294"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nissel.it\/index.php\/wp-json\/wp\/v2\/categories?post=294"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nissel.it\/index.php\/wp-json\/wp\/v2\/tags?post=294"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}