Mariadb funktioniert nicht gleich nach der Installation unter Ubuntu 16.04

8

Hallo, ich habe den MariaDB-Server und den mariaDB-Client php7.0-mysql auf meinem neuen Ubuntu 16.04 VPS installiert, aber nach der Installation kann ich mich nicht mit PhpMyAdmin anmelden, wenn ich versuche, mich mit PHPMyAdmin anzumelden, wird dem Benutzer 'root' @ immer der Zugriff verweigert 'localhost'-Fehler.

Hier sind einige Informationen. Wenn Sie versuchen, den Status zu erhalten

root @ ubuntu-2gb-ams2-01: / var / lib # service mariadb status
● mariadb.service
   Geladen: nicht gefunden (Grund: Keine solche Datei oder kein solches Verzeichnis)
   Aktiv: inaktiv (tot)

Als ich versuchte, das zu bekommen

# service mariadb start
Fehler beim Starten von mariadb.service: Einheit mariadb.service nicht gefunden.

Ich kann mich mit SSH anmelden und eine neue Datenbank erstellen

root @ ubuntu-2gb-ams2-01: / var / lib # mysql -u root -p
Passwort eingeben:
Willkommen auf dem MariaDB-Monitor. Befehle enden mit; oder \ g.
Ihre MariaDB-Verbindungs-ID lautet 61
Serverversion: 10.0.27-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab und andere.

Geben Sie 'help' ein. oder '\ h' um Hilfe. Geben Sie '\ c' ein, um die aktuelle Eingabeanweisung zu löschen.

MariaDB [(keine)]> Datenbankprotest erstellen;
Abfrage OK, 1 Zeile betroffen (0,00 Sek.)

Wenn ich die Datenbank sehen möchte, kann ich alle Datenbanken sehen

root @ ubuntu-2gb-ams2-01: / var / lib # mysql -u root -p -e 'Datenbanken anzeigen'
Passwort eingeben:
+ -------------------- +
| Datenbank |
+ -------------------- +
| Informationsschema |
| mysql |
| Leistungsschema |
| protestieren |
+ -------------------- +

Es sieht also so aus, als wäre Mariadb installiert, kann aber nicht verstehen, warum der Status "Tot" angezeigt wird, Start / Neustart nicht funktioniert, Front-End-Login nicht funktioniert (kann jemand mit phpmyadmin einen Hinweis geben?

UPDATE: Ich habe gerade eine andere Datenbank und einen anderen Benutzer erstellt. Ich kann diesen Benutzer anmelden und mit phpmyadmin auf db zugreifen.

Mi2
quelle

Antworten:

8

Wenn Sie überprüfen mysql --version, sollte es etwas sagen wie:

mysql  Ver 15.1 Distrib 10.1.16-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Dann wissen Sie, dass Sie tatsächlich mariaDB ausführen, dann können Sie es einfach

sudo service mysql restart

und es sollte alles gut sein!

Es lohnt sich, die Datei nachzuschlagen, um festzustellen /lib/systemd/system/mariadb.service, ob sie verwendet wird mysqld.

Jan Myszkier
quelle
4

MariaDB wird ausgeführt, es ist nur , dass es sich als MySQL verkleidet hat (hinterhältig). MariaDB ist ein Drop-In-Ersatz für MySQL. Sie starten den MariaDB-Monitor also mit dem CLI- $ mysqlBefehl usw. Alle Interaktionen, bei denen Sie MySQL direkt angeben, wirken sich tatsächlich auf MariaDB aus. (Ich weiß nicht, was passiert, wenn Sie auch MySQL ausführen!) Um MariaDB auszuführen, lautet der Befehl

$ service mysql start

Versuchen Sie es erneut

$ service mysql status

um eine ganze Menge Informationen zu generieren, einschließlich so etwas:

...
16 08:19:55 <YR-CMPTR> mysqld[1769]: Version: '10.0.28-MariaDB-0ubuntu0.16.04.1'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306
...

Alle Apps, die normalerweise MySQL verwenden, bemerken nicht einmal, dass sie mit MariaDB interagieren.

Hedley Finger
quelle
1

Ich glaube, die Statussache verwendet immer noch den Namen von MySQL für das MariaDB-Paket. Versuchen

service mysql status

Dies sollte Ihnen den Status "aktiv (laufend)" geben.

Nach der Migration von MySQL zu MariaDB hatte ich Probleme, mich als Root von meinem (Entwicklungs-) Chamilo-Portal (einer E-Learning-Plattform) in PHP (also Verbindung über TCP / IP) anzumelden. Ich konnte mich jedoch perfekt über die Kommandozeile verbinden.

Beim Überprüfen von mysql.user stellte ich fest, dass in der Spalte "Plugin" "unix_socket" stand. Dies alles ist auf die neue Verwaltung der Authentifizierung durch Plugins seit MySQL 5.5 und MariaDB 5.2 zurückzuführen.

Ich habe es behoben, indem ich alle Berechtigungen für root erneut gewährt habe, ohne dass ein Plugin erwähnt wurde:

grant all privileges on *.* to root@'127.0.0.1' identified by 'mypass';
flush privileges;

Dadurch wurde einfach die Spalte "Plugin" geleert und ich konnte wieder eine Verbindung über TCP / IP herstellen.

ywarnier
quelle