MySQL na serwerze, uprawniena /var/run/mysqld [SOLVED]

Instalacja i konfiguracja oprogramowania sieciowego.
b33zon
Piegowaty Guziec
Piegowaty Guziec
Posty: 20
Rejestracja: 23 lis 2007, 00:06
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

MySQL na serwerze, uprawniena /var/run/mysqld [SOLVED]

Post autor: b33zon »

Witam,
mam problem z uruchomieniem mysqld na Ubuntu 11.04 Server. Otóż gdy wpisuję w konsoli:

Kod: Zaznacz cały

mysqld
mysqld się nie uruchamia, w logach można przeczytać:

Kod: Zaznacz cały

wr****@ubuntu:~$ sudo tail -f /var/log/mysql/error.log 
111012 12:32:22  InnoDB: Completed initialization of buffer pool
111012 12:32:22  InnoDB: Started; log sequence number 0 82551126
111012 12:32:22 [ERROR] Can't start server : Bind on unix socket: Permission denied
111012 12:32:22 [ERROR] Do you already have another mysqld server running on socket: /var/run/mysqld/mysqld.sock ?
111012 12:32:22 [ERROR] Aborting

111012 12:32:22  InnoDB: Starting shutdown...
111012 12:32:28  InnoDB: Shutdown completed; log sequence number 0 82551126
111012 12:32:28 [Note] mysqld: Shutdown complete
Patrząc na uprawnienia katalogu /var/run/mysqld widzimy:

Kod: Zaznacz cały

wr****@ubuntu:~$ sudo ls -l /var/run |grep mysqld
drwxr-xr-x 2 mysql      root         40 2011-10-12 12:32 mysqld
Po zmianie uprawnień na 777 w/w katalogu mysqld normalnie się uruchamia.
Jest jedno ale: po restarcie systemu uprawnienia wracają do poprzednich. Co zrobić aby uprawnienia zostały zmienione na stałe? Lub w jaki inny sposób odpalć mysqld?

EDIT:
Odkryłem dlaczego zmieniane są uprawnienia. Mysqld powinno się uruchamiać poprzez "service mysql start". Wykonywany jest wtedy skrypt:

Kod: Zaznacz cały

# MySQL Service

description     "MySQL Server"
author          "Mario Limonciello <superm1@ubuntu.com>"

start on (net-device-up
          and local-filesystems
	  and runlevel [2345])
stop on runlevel [016]

respawn

env HOME=/etc/mysql
umask 007

# The default of 5 seconds is too low for mysql which needs to flush buffers
kill timeout 300

pre-start script
    #Sanity checks
    [ -r $HOME/my.cnf ]
    [ -d /var/run/mysqld ] || install -m 755 -o mysql -g root -d /var/run/mysqld
    /lib/init/apparmor-profile-load usr.sbin.mysqld
    LC_ALL=C BLOCKSIZE= df --portability /var/lib/mysql/. | tail -n 1 | awk '{ exit ($4<4096) }'
end script

exec /usr/sbin/mysqld

post-start script
   for i in `seq 1 30` ; do
        /usr/bin/mysqladmin --defaults-file="${HOME}"/debian.cnf ping && {
            exec "${HOME}"/debian-start
            # should not reach this line
            exit 2
        }
        sleep 1
    done
    exit 1
end script
Niestety, skrypt ten nie wiedzieć czemu nie uruchamia procesu mysqld. Wie ktoś, jak poprawić ten skrypt?

EDIT2:
Przyczyną było zakomentowanie opcji bind-address w pliku my.cnf. Po przywróceniu starej wersji, wszystko działa aż miło. Nie mam pojęcia co te dwie rzeczy mają ze sobą wspólnego, ale tak właśnie to zadziałało.
Bind-address ustawiłem na adres, z którym połączony jest interfejs eth0, tj: 192.168.0.1.
ODPOWIEDZ

Wróć do „Sieci, serwery, Internet”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 11 gości