Zainstalowałem serwer MySQL 5.5 na Ubuntu 12.04. Próbuję uruchomić serwer MySQL na innym pliku skarpety. Domyślnie MySQL działa na /var/run/mysqld/mysqld.sock.
Próbuję uruchomić ten sam serwer na /var/run/mysqld/mysqld1.sock.
W tym celu wprowadziłem następujące zmiany:
- Zmiany w /etc/mysql/my.cnf
[klient] port = 3306 socket = /var/run/mysqld/mysqld1.sock [mysqld_safe] socket = /var/run/mysqld/mysqld1.sock ładne = 0 [mysqld] użytkownik = mysql pid-file = /var/run/mysqld/mysqld.pid ** gniazdo = /var/run/mysqld/mysqld1.sock** port = 3306 basedir = / usr datadir = / var / lib / mysql tmpdir = / tmp lc-messages-dir = / usr / share / mysql
Dodałem również następujący wiersz do /etc/apparmor.d/usr/sbin.mysqld
/var/run/mysqld/mysqld1.sock w,
/var/run/mysqld/mysqld[1-9].sock w,
Zmieniłem także własność katalogu / var / run / mysqld na użytkownika mysql.
ls -lA / var / run / | grep mysqld
drwxrwxrwx 2 mysql mysql 40 grudnia 31 17:24 mysqld
Jednak gdy próbuję uruchomić serwer MySQL, pojawia się następujący błąd (jako użytkownik root)
$ mysqld --user = mysql --verbose 121231 18:40:56 [Uwaga] Wtyczka „FEDERATED” jest wyłączona. 121231 18:40:56 InnoDB: Sterty pamięci InnoDB są wyłączone 121231 18:40:56 InnoDB: Muteksy i rw_locki używają atomowych wbudowań GCC 121231 18:40:56 InnoDB: Tabele skompresowane używają zlib 1.2.3.4 121231 18:40:56 InnoDB: Inicjowanie puli buforów, rozmiar = 128,0 M. 121231 18:40:56 InnoDB: Zakończono inicjalizację puli buforów 121231 18:40:56 InnoDB: najwyższy obsługiwany format pliku to Barracuda. 121231 18:40:57 InnoDB: Oczekiwanie na rozpoczęcie wątków w tle 121231 18:40:58 Uruchomienie InnoDB: 1.1.8; numer kolejny log 1595685 121231 18:40:58 [Uwaga] Nazwa hosta serwera (adres powiązania): „127.0.0.1”; port: 3306 121231 18:40:58 [Uwaga] - „127.0.0.1” zmienia się na „127.0.0.1”; 121231 18:40:58 [Uwaga] Gniazdo serwera utworzone pod adresem IP: „127.0.0.1”. ** `121231 18:40:58 [BŁĄD] Nie można uruchomić serwera: Bind na gnieździe unix: Odmowa uprawnień` ** 121231 18:40:58 [BŁĄD] Czy masz już inny serwer mysqld działający na gnieździe: /var/run/mysqld/mysqld1.sock? 121231 18:40:58 [BŁĄD] Przerwanie ** 121231 18:40:58 InnoDB: Rozpoczęcie zamykania ... 121231 18:40:58 InnoDB: Zakończono zamykanie; numer kolejny log 1595685 121231 18:40:58 [Uwaga] mysqld: Zakończono zamykanie
Jeśli uruchomię serwer z domyślnym plikiem gniazda, będę mógł uruchomić serwer. Zaglądałem na ten temat, ale znalazłem tylko rozwiązania sugerujące, że jest to problem z uprawnieniami. Jednak uprawnienia wydają się w porządku. Niektórzy sugerują, że przyczyną może być AppArmor, ale ja też to sprawdziłem - fragment został wklejony powyżej.
Czy ktoś może podać jakieś wskazówki?
[EDYTOWAĆ]
Widzę następujące dane wyjściowe w /var/log/syslog
.
2 stycznia 12:09:34 praveshp-lt mysqld: 130102 12:09:34 [Uwaga] Wtyczka „FEDERATED” jest wyłączona. 2 stycznia 12:09:34 praveshp-lt mysqld: 130102 12:09:34 InnoDB: Sterty pamięci InnoDB są wyłączone 2 stycznia 12:09:34 praveshp-lt mysqld: 130102 12:09:34 InnoDB: Mutexy i rw_locks używają atomowych wbudowań GCC 2 stycznia 12:09:34 praveshp-lt mysqld: 130102 12:09:34 InnoDB: Skompresowane tabele używają zlib 1.2.3.4 2 stycznia 12:09:34 praveshp-lt mysqld: 130102 12:09:34 InnoDB: Inicjalizacja puli buforów, rozmiar = 128.0M 2 stycznia 12:09:34 praveshp-lt mysqld: 130102 12:09:34 InnoDB: Zakończono inicjalizację puli buforów 2 stycznia 12:09:34 praveshp-lt mysqld: 130102 12:09:34 InnoDB: najwyższy obsługiwany format pliku to Barracuda. 2 stycznia 12:09:35 praveshp-lt mysqld: 130102 12:09:35 InnoDB: Oczekiwanie na rozpoczęcie wątków w tle 2 stycznia 12:09:36 praveshp-lt mysqld: 130102 12:09:36 Uruchomiono InnoDB: 1.1.8; numer kolejny log 1595685 2 stycznia 12:09:36 praveshp-lt mysqld: 130102 12:09:36 [Uwaga] Nazwa hosta serwera (adres powiązania): „127.0.0.1”; port: 3307 2 stycznia 12:09:36 praveshp-lt mysqld: 130102 12:09:36 [Uwaga] - „127.0.0.1” rozwiązuje się na „127.0.0.1”; 2 stycznia 12:09:36 praveshp-lt mysqld: 130102 12:09:36 [Uwaga] Gniazdo serwera utworzone pod adresem IP: „127.0.0.1”. 2 stycznia 12:09:36 praveshp-lt mysqld: 130102 12:09:36 [BŁĄD] Nie można uruchomić serwera: Bind na gnieździe unix: Odmowa uprawnień 2 stycznia 12:09:36 praveshp-lt mysqld: 130102 12:09:36 [BŁĄD] Czy masz już inny serwer mysqld działający na gnieździe: /var/run/mysqld/mysqld1.sock? 2 stycznia 12:09:36 praveshp-lt mysqld: 130102 12:09:36 [BŁĄD] Przerwanie 2 stycznia 12:09:36 praveshp-lt mysqld: 2 stycznia 12:09:36 praveshp-lt mysqld: 130102 12:09:36 InnoDB: Rozpoczęcie zamykania ... 2 stycznia 12:09:36 jądro praveshp-lt: [7060.098580] type = 1400 audit (1357108776.036: 33): apparmor = Operacja "DENIED" = "mknod" rodzic = 6702 profil = "/ usr / sbin / mysqld" name = "/run/mysqld/mysqld1.sock" pid = 7039 comm = "mysqld" Request_mask = "c" denied_mask = "c" fsuid = 116 ouid = 116 2 stycznia 12:09:36 praveshp-lt mysqld: 130102 12:09:36 InnoDB: Zakończono zamykanie; numer kolejny log 1595685 2 stycznia 12:09:36 praveshp-lt mysqld: 130102 12:09:36 [Uwaga] / usr / sbin / mysqld: Zakończono zamykanie
Mówi, że odmówiono zgody, jednak wydaje mi się, że ustawiłem odpowiednie uprawnienia.
/usr/local/mysql
i/tmp
. Potrzeba co najmniej 775. 2. Zezwolenie na katalog bazy danych mysql w/var/lib/
folderze powinno byćmysql:root
(chown mysql:root mysql
)/etc/apparmor.d/usr.sbin.mysqld
Istnieje porównanie między starą i nową wersją tutaj: bugs.launchpad.net/ubuntu/+source/mysql-5.1/+bug/876268/...Odpowiedzi:
Patrząc na ten wiersz w następnym wierszu w dzienniku, wydaje się, że Apparmor odmawia dostępu.
Aby to umożliwić, dodaj plik
/etc/apparmor.d/local/usr.sbin.mysqld
z poniższym wpisem i uruchom ponownie MySQL.Dzięki Rinzwindowi za zwrócenie na to uwagi.
źródło