Ubuntu 18.04 MySQL-Server 8 und phpMyAdmin installieren

  • ZAP-Hosting Gameserver and Webhosting


    Seit der neusten MySQL-Server Version (8) hat die Installation einige neuen Schwierigkeiten bekommen, die man beachten muss, damit man am ende eine Lauffähige Datenbank auf seinem Linuxserver mit phpMyAdmin nutzen kann.

    Doch woher kommen die Probleme? Mit der neusten Version wurden einige neuen Sicherheits-Funktionalitäten dem Dienst hinzugefügt, die es unter anderem nicht mehr einfach möglich machen sich mit dem root-Nutzer in der Datenbank einzuloggen. Auch wurde die Schnittelle zur Authentifizierung angepasst, was die aktuellste Version zum aktuellen Zeitpunkt mit vielen Programmen inkompatibel ist.


    Beachtet bitte das ich euch in diesem Tutorial nur eine Übergangslösung vorstelle bis es entsprechende Updates von allen anderen Softwareherstellern gab. Unter Umständen könnten Sicherheitsrisiken auftauchen wenn ihr dieses veraltete System nutzt.


    Zu Beginn müssen wir erst einmal den MySQL-Server installieren. Dazu geben wir in unserer SSH-Konsole unseres Servers sudo apt install mysq-server ein. Bei der aktuellsten MySQL Version wird man bei der Installation nicht mehr nach einem MySQL-Root--Passwort gefragt, da man diesen Nutzer eigentlich auch nicht mehr verwenden soll. Da wir diesen aber trotzdem noch verwenden müssen, müssen wir nun sudo mysql_secure_installation eingeben. Mit diesem "Befehl" gelangt man in die Sicherheitskonfiguration des MySQL Servers anpassen. Zum einen kann man hier einige Sicherheitsrelevante Dinge anpassen, zum anderen hat man hier die Möglichkeit das MySQL-Root-Passwort zusetzen. Nun werden euch einige Fragen gestellt die ihr nach euren eignen Sicherheitsanforderungen beantworten solltet. Ich empfehle euch folgende Konfiguration:

    Auf die Frage ob ihr das mySQL-Passwort Plugin installieren wollt solltet ihr mit Y, für yes, antworten. Danach werdet ihr gefragt wie sicher euer Passwort sein sollte, hier solltet ihr 3 wählen. Danach werdet ihr nach einem Passwort gefragt. Gebt hier nun ein sicheres Passwort ein. Beachtet, dass das Passwort lesbar in einer Datei abgespeichert wird, die zwar in der Regel nur von "sudo"-Nutzern gelesen werden kann, trotzdem stell dies ein potenzielles Sicherheitsrisiko dar. Wählt dem entsprechend hier ein einzigartiges Passwort das alle bekannten Sicherheitsanforderungen erfüllt! Nun werdet ihr gefragt ob ihr wirklich dieses Passwort verwenden möchtet, antwortet hier wieder mit Y, für yes. Danach werdet ihr gefragt ob der "anonymous-Nutzer" gelöscht werden soll. Da man diesen üblicherweise nicht benötigt, kann dieser auch gelöscht werden in dem ihr Y, für yes, eingebt. Danach kommt die Frage ob ihr das root-Login nur über "localhost" zulassen möchtet, dass müsst ihr für euren Anwendungsfall selbst entscheiden ob dies erforderlich ist, ich empfehle hier aber dies zu tun indem ihr es mit Y bestätigt. Dies nachfolgenden zwei Fragen könnt ihr mit Y benatwortet, diese Fragen euch nur ob die "test-Datenbank" gelöscht werden soll und die Tabelle Mit den Benutzerrechten neu eingelesenen werden soll.


    Damit ist die Installation eures MySQL-Servers abgeschlossen!


    Nun möchten wir noch phpMyAdmin installieren und richtig konfigurieren.

    Gebt dazu nun sudo apt install php libapache2-mod-php php-mysql in eurer Konsole ein. Damit installiert ihr die benötigten PHP-Module und aktiviert diese auf eurem Apache Webserver. Solltet ihr noch keinen Apache-Webserver installiert haben solltet ihr dies vor diesem Schritt tun. Ein entsprechendes Tutorial findet ihr auch in unserem Forum. Nun müsst ihr noch euren Webserver neustarten indem ihr service apache2 restart eingebt. Im nächsten Schritt können wir nun noch phpMyAdmin installieren. Gebt hierfür sudo apt install phpmyadmin php-mbstring php-gettext ein um dessen Installation zu starten. Bei der Installation werdet ihr nun gefragt auf welchem Webserver ihr phpMyadmin installieren möchtet. Drückt dort nun die Leertaste um den Apache-Webserver auszuwählen und bestätigt es mit Enter. Während der Installation werdet ihr gefragt, ob ihr eure Datenbank mit dbconfig-common Konfigurieren möchtet, wählt hier Yes aus. Danach müsst ihr noch das MySQL-Root Passowrt eingeben das ihr zuvor bei der Installation des MySQL-Servers gewählt habt.

    Danach gebt ihr noch sudo phpenmod mbstring ein alle benötigten Module zu aktivieren. Startet nun euren Webserver mit service apache2 restart neu. Nun könnt ihr mit http://meine-ip.de/phpmyadmin phpMyadmin aufrufen.

    Nun könnt ihr versuchen euch einzuloggen.


    Kommt jedoch bei euch nun folgender Fehler, müsst ihr noch eine kleine Anpassung vornehmen.



    MySQL-Fehler: mysqli_real_connect(): (HY000/1698): Access denied for user 'root'@'localhost'


    Geht dazu zurück in eure Serverkonsole. Gebt nun sudo mysql -p -u root ein um euch in der Konsole mit euren MySQL-Rootbenutzer einzuloggen. Nun fügen wir der Datenbank einen Nutzer hinzu, den wir für phpMyAdmin als Nichtadministrator nutzen werden.

    Ich habe mich hier für den Namen "pmauser" (PMA = Abkürzung für phpMyAdmin) entschieden. CREATE USER 'pmauser'@'%' IDENTIFIED BY 'password_here'; und ersetzt password_here durch eurer MySQL-Root Passwort. Was genau hier passiert, ist dass wir unseren alten root Account löschen und durch den neuen Nutzer ersetzen. Nun geben wir noch GRANT ALL PRIVILEGES ON *.* TO 'pmauser'@'%' WITH GRANT OPTION; um dem Nutzer alle Rechte zu geben. Nun solltet ihr in der Lage sein euch mit dem Nutzer "pmauser" und eurem alten root-Passwort einzuloggen.


    Solltet ihr weitere Probleme haben oder etwas nicht in diesem Tutorial verstanden haben, habe ich auf meinem YouTube-Channel noch dieses Video für euch:



    Ich hoffe euch hat dieses Tutorial geholfen.

    Falls ihr Hilfe braucht stehe ich euch gerne zur Verfügung.

  • Habe alles so gemacht wie es oben beschrieben wurde.

    Allerdings wenn ich jetzt auf ip/phpmyadmin gehe bekomme ich den fehler Not Found.

    Wenn ich normal meine IP im Browser eingebe komme ich normal auf die seite von Apache 2 Webserver