Ich habe MySQL Server 5.5 unter Ubuntu 12.04 installiert. Ich versuche, den MySQL-Server auf einer anderen Sock-Datei zu starten. Standardmäßig läuft MySQL unter /var/run/mysqld/mysqld.sock.
Ich versuche, denselben Server unter /var/run/mysqld/mysqld1.sock auszuführen.
Hierzu habe ich folgende Änderungen vorgenommen:
- Änderungen an /etc/mysql/my.cnf
[Klient] Port = 3306 Socket = /var/run/mysqld/mysqld1.sock [mysqld_safe] Socket = /var/run/mysqld/mysqld1.sock schön = 0 [mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid ** socket = /var/run/mysqld/mysqld1.sock** Port = 3306 basedir = / usr datadir = / var / lib / mysql tmpdir = / tmp lc-messages-dir = / usr / share / mysql
Ich habe auch die folgende Zeile zu /etc/apparmor.d/usr/sbin.mysqld hinzugefügt
/var/run/mysqld/mysqld1.sock w,
/var/run/mysqld/mysqld[1-9‹.sock w,
Ich habe auch den Besitz für das Verzeichnis / var / run / mysqld in mysql user geändert.
ls -lA / var / run / | grep mysqld
drwxrwxrwx 2 mysql mysql 40 Dec 31 17:24 mysqld
Wenn ich jedoch versuche, den MySQL-Server zu starten, wird der folgende Fehler angezeigt (als Root-Benutzer)
$ mysqld --user = mysql --verbose 121231 18:40:56 [Hinweis] Das Plugin 'FEDERATED' ist deaktiviert. 121231 18:40:56 InnoDB: Der InnoDB-Speicherheap ist deaktiviert 121231 18:40:56 InnoDB: Mutexe und rw_locks verwenden GCC-Atom-Builtins 121231 18:40:56 InnoDB: Komprimierte Tabellen verwenden zlib 1.2.3.4 121231 18:40:56 InnoDB: Pufferpool wird initialisiert, Größe = 128,0 MB 121231 18:40:56 InnoDB: Initialisierung des Pufferpools abgeschlossen 121231 18:40:56 InnoDB: Das am höchsten unterstützte Dateiformat ist Barracuda. 121231 18:40:57 InnoDB: Warten auf den Start der Hintergrund-Threads 121231 18:40:58 InnoDB: 1.1.8 gestartet; Protokollsequenznummer 1595685 121231 18:40:58 [Hinweis] Server-Hostname (Bindungsadresse): '127.0.0.1'; Port: 3306 121231 18:40:58 [Hinweis] - '127.0.0.1' wird in '127.0.0.1' aufgelöst; 121231 18:40:58 [Hinweis] Server-Socket erstellt unter IP: '127.0.0.1'. ** `121231 18:40:58 [FEHLER] Server kann nicht gestartet werden: An Unix-Socket binden: Berechtigung verweigert` ** 121231 18:40:58 [FEHLER] Haben Sie bereits einen anderen mysqld-Server, der auf dem Socket ausgeführt wird: /var/run/mysqld/mysqld1.sock? 121231 18:40:58 [FEHLER] Abbruch ** 121231 18:40:58 InnoDB: Herunterfahren starten ... 121231 18:40:58 InnoDB: Herunterfahren abgeschlossen; Protokollsequenznummer 1595685 121231 18:40:58 [Hinweis] mysqld: Herunterfahren abgeschlossen
Wenn ich den Server mit der Standard-Socket-Datei starte, kann ich den Server starten. Ich habe über dieses Problem gegoogelt, aber nur Lösungen gefunden, die darauf hindeuten, dass es sich um ein Berechtigungsproblem handelt. Die Berechtigungen scheinen jedoch in Ordnung zu sein. Einige haben vorgeschlagen, dass AppArmor eine Ursache sein könnte, aber ich habe das auch überprüft - Snippet ist oben eingefügt.
Kann jemand Hinweise geben?
[BEARBEITEN]
Ich sehe die folgende Ausgabe in /var/log/syslog
.
2. Januar 12:09:34 praveshp-lt mysqld: 130102 12:09:34 [Hinweis] Das Plugin 'FEDERATED' ist deaktiviert. 2. Januar 12:09:34 praveshp-lt mysqld: 130102 12:09:34 InnoDB: Der InnoDB-Speicherheap ist deaktiviert 2. Januar 12:09:34 praveshp-lt mysqld: 130102 12:09:34 InnoDB: Mutexe und rw_locks verwenden GCC-Atom-Builtins 2. Januar 12:09:34 praveshp-lt mysqld: 130102 12:09:34 InnoDB: Komprimierte Tabellen verwenden zlib 1.2.3.4 2. Januar 12:09:34 praveshp-lt mysqld: 130102 12:09:34 InnoDB: Initialisierung des Pufferpools, Größe = 128,0 MB 2. Januar 12:09:34 praveshp-lt mysqld: 130102 12:09:34 InnoDB: Initialisierung des Pufferpools abgeschlossen 2. Januar 12:09:34 praveshp-lt mysqld: 130102 12:09:34 InnoDB: Das am höchsten unterstützte Dateiformat ist Barracuda. 2. Januar 12:09:35 praveshp-lt mysqld: 130102 12:09:35 InnoDB: Warten auf den Start der Hintergrund-Threads 2. Januar 12:09:36 praveshp-lt mysqld: 130102 12:09:36 InnoDB: 1.1.8 gestartet; Protokollsequenznummer 1595685 2. Januar 12:09:36 praveshp-lt mysqld: 130102 12:09:36 [Hinweis] Server-Hostname (Bindungsadresse): '127.0.0.1'; Port: 3307 2. Januar 12:09:36 praveshp-lt mysqld: 130102 12:09:36 [Anmerkung] - '127.0.0.1' wird in '127.0.0.1' aufgelöst; 2. Januar 12:09:36 praveshp-lt mysqld: 130102 12:09:36 [Hinweis] Server-Socket erstellt unter IP: '127.0.0.1'. 2. Januar 12:09:36 praveshp-lt mysqld: 130102 12:09:36 [FEHLER] Server kann nicht gestartet werden: Auf Unix-Socket binden: Berechtigung verweigert 2. Januar 12:09:36 praveshp-lt mysqld: 130102 12:09:36 [FEHLER] Haben Sie bereits einen anderen mysqld-Server auf Socket: /var/run/mysqld/mysqld1.sock? 2. Januar 12:09:36 praveshp-lt mysqld: 130102 12:09:36 [FEHLER] Abbruch 2. Januar 12:09:36 praveshp-lt mysqld: 2. Januar 12:09:36 praveshp-lt mysqld: 130102 12:09:36 InnoDB: Herunterfahren starten ... 2. Januar 12:09:36 praveshp-lt-Kernel: [7060.098580] type = 1400 audit (1357108776.036: 33): apparmor = "DENIED" operation = "mknod" parent = 6702 profile = "/ usr / sbin / mysqld" name = "/run/mysqld/mysqld1.sock" pid = 7039 comm = "mysqld" request_mask = "c" verweigert_mask = "c" fsuid = 116 ouid = 116 2. Januar 12:09:36 praveshp-lt mysqld: 130102 12:09:36 InnoDB: Herunterfahren abgeschlossen; Protokollsequenznummer 1595685 2. Januar 12:09:36 praveshp-lt mysqld: 130102 12:09:36 [Hinweis] / usr / sbin / mysqld: Herunterfahren abgeschlossen
Es heißt, die Erlaubnis wurde verweigert, aber ich habe anscheinend die richtigen Berechtigungen festgelegt.
/usr/local/mysql
und/tmp
. Die Notwendigkeit muss mindestens 775 sein. 2. Die Berechtigung für das MySQL-Datenbankverzeichnis unter dem/var/lib/
Ordner solltemysql:root
(chown mysql:root mysql
) sein/etc/apparmor.d/usr.sbin.mysqld
Es gibt hier einen Vergleich zwischen alter und neuer Version: bugs.launchpad.net/ubuntu/+source/mysql-5.1/+bug/876268/…Antworten:
Wenn Sie sich diese Zeile in der folgenden Zeile des Protokolls ansehen, scheint Apparmor den Zugriff zu verweigern.
Fügen Sie dazu eine Datei
/etc/apparmor.d/local/usr.sbin.mysqld
mit dem folgenden Eintrag hinzu und starten Sie MySQL neu.Vielen Dank an Rinzwind für diesen Hinweis.
quelle