Chyba pri spustení servera MySql 'Server skončil bez aktualizácie súboru PID '

V systéme Snow Leopard sa pri spustení MySQL zobrazí nasledujúca chyba:

Server skončil bez aktualizácie súboru PID

my.cnf

[mysqld]
port            = 3306

socket          = /tmp/mysql.sock

skip-external-locking

key_buffer_size = 16K

pid-file=/var/run/mysqld/mysqld.pid

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

skúste nájsť súbor denníka s príponou ".err", malo by tam byť viac informácií. Mohlo by to byť v:

/usr/local/var/mysql/your_computer_name.local.err

Pravdepodobne ide o problém s oprávneniami

  1. skontrolujte, či je spustená nejaká inštancia mysql

ps -ef | grep mysql

ak áno, mali by ste ho zastaviť alebo proces ukončiť

kill -9 PID

kde PID je číslo zobrazené vedľa používateľského mena na výstupe predchádzajúceho príkazu

  1. skontrolujte vlastníctvo adresára /usr/local/var/mysql/

ls -laF /usr/local/var/mysql/

ak je jeho vlastníkom root, mali by ste ho zmeniť na mysql alebo your_user

sudo chown -R mysql /usr/local/var/mysql/

Komentáre (18)

Čo hovorí chybový protokol? Dostal som túto chybu a nakoniec to bolo staré neplatné nastavenie v my.cnf, ktoré uviedol chybový protokol mysql. Ak nejde o zlé nastavenie konfigurácie, chybový log by vás mal aspoň nasmerovať správnym smerom.

No, predpokladám, že OP to opravil v tomto bode... ale dúfam, že to ukazuje ostatným, ktorí vidia túto chybu správnym smerom.

Komentáre (0)

Dúfam, že vám to pomôže.

Po kontrole chybového protokolu som našiel toto:

120309 17:42:49 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
120309 17:42:50 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/mysql/data/ is case insensitive
120309 17:42:50 [Warning] You need to use --log-bin to make --binlog-format work.
120309 17:42:50 [Note] Plugin 'FEDERATED' is disabled.
120309 17:42:50 InnoDB: The InnoDB memory heap is disabled
120309 17:42:50 InnoDB: Mutexes and rw_locks use GCC atomic builtins
120309 17:42:50 InnoDB: Compressed tables use zlib 1.2.3
120309 17:42:50 InnoDB: Initializing buffer pool, size = 16.0M
120309 17:42:50 InnoDB: Completed initialization of buffer pool
120309 17:42:50  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name /usr/local/mysql/data/ib_logfile0
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
120309 17:42:50 mysqld_safe mysqld from pid file /usr/local/mysql/data/lu1s.local.pid ended

A aby som to vyriešil, dal som vlastnícke práva na celý priečinok mysql:

cd /usr/local
sudo chown mysql mysql
sudo chown mysql mysql-5.5.21-osx10.6-x86_64
sudo chown _mysql mysql
sudo chown _mysql mysql-5.5.21-osx10.6-x86_64

Potom (môžete to urobiť aj z príkazového riadku) som použil práva (keď som dal toto vlastníctvo používateľom _mysql a mysql) na všetky priložené priečinky z ponuky "get info" priečinka na adrese /usr/local/mysql-5.5.21-osx10.6-x86_64 . Nemusíte to tho alias, pretože je to len alias.

Názov priečinka závisí od inštalačnej verzie mysql, ktorú máte.

Komentáre (0)