2016-08-12 1 views
0

Ich habe Mariadb 10.1.16 auf Ubuntu 16.04 installiert, aber das Standarddatenverzeichnis ist nicht geeignet, weil nicht genügend Platz und ich muss es auf einen anderen Datenträger verschieben. Ich habe den datadir Eintrag meiner mysql.cnf Datei hinzugefügt, aber wenn ich versuche, den MySQL-Dienst ich folgendes Ergebnis zu laden:Mariadb verschieben Systemdatenbank an neuen Ort

ago 12 08:27:40 aristotle mysqld[13786]: 2016-08-12 8:27:40 140584295778560 [Note] Plugin 'FEEDBACK' is disabled. 
ago 12 08:27:40 aristotle mysqld[13786]: 2016-08-12 8:27:40 140583574173440 [Note] InnoDB: Dumping buffer pool(s) not yet started 
ago 12 08:27:40 aristotle mysqld[13786]: 2016-08-12 8:27:40 140584295778560 [ERROR] Could not open mysql.plugin table. Some plugins may be not loaded 
ago 12 08:27:40 aristotle mysqld[13786]: 2016-08-12 8:27:40 140584295778560 [ERROR] Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist 
ago 12 08:27:40 aristotle mysqld[13786]: 2016-08-12 8:27:40 140584295778560 [Note] Server socket created on IP: '::'. 
ago 12 08:27:40 aristotle mysqld[13786]: 2016-08-12 8:27:40 140584295778560 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't 
ago 12 08:27:40 aristotle systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE 
ago 12 08:27:40 aristotle systemd[1]: Failed to start MariaDB database server. 
ago 12 08:27:40 aristotle systemd[1]: mariadb.service: Unit entered failed state. 
ago 12 08:27:40 aristotle systemd[1]: mariadb.service: Failed with result 'exit-code'. 

Meine Konfigurationsdatei ist:

[client] 
# Default is Latin1, if you need UTF-8 set this (also in server section) 
default-character-set = utf8 

[mysqld] 
# 
# * Character sets 
# 
# Default is Latin1, if you need UTF-8 set all this (also in client section) 
# 
character-set-server = utf8 
collation-server  = utf8_general_ci 
character_set_server = utf8 
collation_server  = utf8_general_ci 
datadir    = /BulkData/Mariadb 

Was muss ich tun meine Datenbank (en) auf einem anderen Datenträger haben?

+0

Sie tun können etwas einfacheres ... halt einfach den MariaDB - Dienst und kopiere den Inhalt von/var/lib/mysql an den neuen Ort ... dann erstelle einen Symlink von/var/lib/mysql zum neuen Ort ... dann starte den Service ... etwas in der Art: http://unix.stackexchange.com/questions/80515/using-symbolic-link-on-directory-with-co nents – Hackerman

+0

Wenn Sie Ihren Kommentar zu einer Antwort machen, kann ich es akzeptieren. Ich zögerte, eine externe Lösung ohne irgendeinen Hinweis darauf zu versuchen, dass es vernünftig wäre. – Jonathan

+0

Ok Jonathan, ich bin froh zu helfen :) – Hackerman

Antwort

1

In diesem Fall haben Sie zwei Optionen, erhöhen Sie die Partitionsgröße (root), oder kopieren Sie einfach in ein anderes Verzeichnis und erstellen Sie eine symbolic link. Die erste Option scheint natürlicher, aber wenn Sie etwas falsch machen, könnte das Ihr gesamtes System gefährden. Der zweite ist meine Wahl, weil es nicht zu viel Risiko beinhaltet, und es ist einfacher. Wenn Sie wirklich mit dem ersten gehen möchten, können Sie diesen Link überprüfen: http://www.hiroom2.com/2016/05/19/ubuntu-16-04-extend-and-reduce-lvm-root-filesystem/

Wenn Sie mit der zweiten Option gehen wollen, müssen Sie nur:

  • die Zielpartition identifizieren (viel den Befehl des Raumes), ausgeführt wird: df -h

  • Sobald die Zielpartition aktiviert ist, stoppen Sie den MySQLservice: service mysql stop

  • den Ordner verschieben (i t ist kürzer, als es kopieren und entfernen, auch müssen Sie keine Berechtigung überprüfen): mv /var/lib/mysql /usr/lib/mysql

  • Erstellen Sie den symbolischen Link: ln -s /usr/lib/mysql /var/lib/mysql

  • Starten Sie den Dienst: service mysql start

+0

Für mich funktioniert die Symlink-Option nicht immer. Wenn Sie zu dieser Situation laufen, empfehle ich eine Bindung mount. – sourcx

Verwandte Themen