Dopo l'installazione di MySQL tramite Brew, ottengo l'errore: il server si è chiuso senza aggiornare il file PID


88

Ok, ho cercato ovunque e ho passato un bel po 'del mio tempo a installare, disinstallare, provare varie opzioni ma senza successo.

Sono su Mac OS X Lion (10.7.3) e sto cercando di configurare un Python, MySQL.

Ho installato con successo Python e MySQL tramite HomeBrew. Python funziona alla grande.

Dopo l'installazione di MySQL, ho seguito i primi 2 passaggi: disimpostazione e mysql_install_dbcomandi.

Ora, quando provo ad avviare mysql "mysql.server start", ottengo il seguente errore

ERROR! The server quit without updating PID file (/usr/local/var/mysql/Brajeshwar.local.pid).
  • Brajeshwar è il mio nome utente sulla mia macchina.

Risposte:


81

EDIT 2012/09/18: come sottolineato da Kane , assicurati che il mysqldatabase sia impostato correttamente prima di fare qualsiasi altra cosa. Vedere " Errore PID all'avvio di mysql.server?" per maggiori informazioni.

Risposta originale mantenuta per amore della cronologia: molto probabilmente è un problema di autorizzazioni. Controlla /usr/local/var/mysql/*.err. Il mio ha detto:

120314 16:30:14  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 ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
120314 16:30:14 mysqld_safe mysqld from pid file /usr/local/var/mysql/janmoesen.local.pid ended

Ho anche dovuto fare questo:

sudo chown _mysql /usr/local/var/mysql/*

65
Ho risolto il problema correndo:sudo chown -R _mysql:_mysql /usr/local/var/mysql
Matteo Alessani

1
Ottengo lo stesso errore, ma non ho la cartella / usr / local / var / mysql :( Sto anche usando homebrew.
Nathan Bashaw

2
Vedi i commenti di brew info mysqlo questa domanda per la giusta soluzione
Kane

4
sudo chmod ugo + w / tmp era la mia soluzione.
TR3B

2
il mio è stato risolto con sudo chown -R {my_user_name}: admin / usr / local / var / mysql55 /
Packet Tracer

101

Ho scoperto che si trattava di un problema di autorizzazioni con la mysqlcartella.

chmod -R 777 /usr/local/var/mysql/ 

risolto per me.


18
non è necessario fare questo 777
JamesHalsall

2
Stavo anche cercando da molto tempo e questo è ciò che mi ha risolto.
morso il

6
Si prega di notare che non consiglio di impostare nulla su 777 in un ambiente di produzione. Deve essere solo su un'installazione locale. Vorrei anche riportarlo a 755 come minimo.
mikoop

1
Se vedi un errore all'avvio di mysql Attenzione: il file di configurazione scrivibile da tutti '/var/lib/mysql/none-dev/my.cnf' viene ignorato Allora probabilmente vorrai chmod ow / var / lib / mysql / none- dev / my.cnf
David Mann

1
il mio è stato risolto con sudo chown -R {my_user_name}: admin / usr / local / var / mysql55 /
Packet Tracer

65

Ho finito per reinstallare completamente mysql e alla fine ha funzionato.

ATTENZIONE Questo rimuoverà tutti i tuoi database, quindi assicurati di salvare prima i dump.

brew remove mysql
brew cleanup
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
sudo rm -rf /usr/local/var/mysql

brew install mysql
mysqld --initialize --explicit_defaults_for_timestamp
mysql.server start # no sudo!

3
Ho provato a cambiare le autorizzazioni in ogni modo possibile senza successo.
Ho

Questa è l'UNICA soluzione che ho trovato. Questo dovrebbe essere il numero uno
Dan

Grazie, questa è l'unica cosa che ha funzionato per me. Anche se non dovevo correremysqld --initialize --explicit_defaults_for_timestamp
Deep

1
Avvio di MySQL ... ERRORE! Il server si chiude senza aggiornare il file PID (<path> -.lightspeed.irvnca.sbcglobal.net.pid). Ottenere questo errore
Unnikrishnan

1
Solo problema di homebrew
McGrady

31

Ho avuto questo problema su Mac 10.10.5 Yosemite

Quello che ho fatto per risolvere questo problema

cd /usr/local/var/mysql
sudo rm *.err && sudo rm *.pid
sudo reboot
sudo mysql.server start


Saluti! In questo modo è il più semplice e mi ha salvato la giornata!
iplus26

Perfetto, mi hai salvato la giornata;)
Emy Stats

Sospiro. Dopo aver provato ogni soluzione su Internet per 2 ore, questo è ciò che finalmente l'ha risolto! Un buon vecchio riavvio! :)
SexyBeast

18

Novembre 2014: se ricevi questo errore su MySQL 5.6.x su Mac OS X Mavericks o Yosemite e desideri utilizzare MySQL con PHP localmente (/tmp/mysql.sock è dove PHP PDO si aspetta di trovare il file sock), ecco cosa lo ha risolto per me:

1) Rimuovere il commento dalle righe del file di configurazione homebrew predefinito e modificare come di seguito

$ sudo vi /usr/local/Cellar/mysql/5.6.21/my.cnf
...
basedir = /usr/local/Cellar/mysql/5.6.21
datadir = /usr/local/var/mysql
port = 3306
server_id = <UNIQUE_NUMBER_HERE_OR_LEAVE_COMMENTED_OUT>
socket = /tmp/mysql.sock
pid-file = /usr/local/var/mysql/[BOXNAME].local.pid
....

BOXNAME è quello che hai nelle tue Preferenze di Sistema -> Rete come ID univoco per il tuo computer sulla rete.

2) Imposta i permessi su tutti i file nel datadir mysql. Erano tutti di proprietà di [my_username]. MySQL è molto schizzinoso su questo e rifiuta di creare il file pid a meno che (l'utente _mysql) non possieda la directory.

$ sudo chown -R _mysql:mysql /usr/local/var/mysql

3) Avvia MySQL utilizzando lo script bash helper / wrapper:

$ sudo mysql.server start
Starting MySQL
. SUCCESS! 

Spero possa aiutare. Se quanto sopra non funziona per te, prova a eseguire manualmente il binario mysqld_safe nella directory Cellar / mysql / VERSION_ / bin / e controlla quali sono le impostazioni (se funziona)

sudo /usr/local/Cellar/mysql/5.6.12/bin/mysqld_safe &

Se funziona, puoi

ps aux | grep mysql 

e vedere qualcosa di simile

[username]  6881   0.0  2.7  3081392 454836   ??  S     8:52AM   0:00.54 /usr/local/Cellar/mysql/5.6.21/bin/mysqld --basedir=/usr/local/Cellar/mysql/5.6.21 --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/Cellar/mysql/5.6.21/lib/plugin --verbose --log-error=/usr/local/var/mysql/BOXNAME.local.err --pid-file=/usr/local/var/mysql/BOXNAME.local.pid

Non sono sicuro del motivo per cui abbia funzionato per me, ma ti mostra da dove ho preso le opzioni del file di configurazione my.cnf. È inoltre possibile utilizzare le opzioni della riga di comando per provare a risolvere i problemi all'avvio manuale di mysqld.

Se esegui la gestione per eseguire il server MySQL usando mysqld_safe, potresti doverlo fare per spegnerlo prima di provare l'helper bash mysql.server. Resisti all'impulso di uccidere -9 [PID] perché puoi corrompere i tuoi dati.

mysqladmin -uroot shutdown

In bocca al lupo!


grazie - il mio è stato risolto con sudo chown -R {my_user_name}: admin / usr / local / var / mysql55 /
Packet Tracer

18

Ho avuto lo stesso problema su OS X El Capitan, ecco la sequenza di comandi del terminale che lo ha risolto per me.

Elimina i file di errore (dovrai modificare il percorso a seconda della configurazione)

sudo rm /usr/local/mysql/data/*.err

Trova le informazioni per il processo mysql che è ancora in esecuzione e uccidilo:

ps -A | grep -m1 mysql | awk '{print $1}' | sudo xargs kill -9

Ora riavvia MySQL:

/usr/local/mysql/support-files/mysql.server start

10

Questo ha funzionato per me:

sudo chmod -R 777 /usr/local/var/mysql/
sudo /usr/local/mysql/support-files/mysql.server start

Questo ha risolto il mio problema in MAC OS 10.11.3 (dopo aver cambiato la modalità a 777 della directory mysql)
Ratha

Ciò significa Read Write Execute o diritti completi a tutti gli utenti su quella cartella e (-R) tutti i file e le cartelle in quella cartella. Per una spiegazione dettagliata, si prega di dare un'occhiata al seguente link: linux.com/learn/understanding-linux-file-permissions
Kresimir

4

Questo ha funzionato per me il 10.12.2:

$ rm /usr/local/var/mysql/*.err

poi

$ brew services restart mysql

3

Se ricordo bene è un problema di autorizzazioni. Prova a "toccare" e "chmod" il file pid o la cartella in cui è contenuto il file.


No. Ho anche provato chmod 777 per vedere se questo risolve il problema ma niente. Stesso ERRORE.
Brajeshwar

Hai provato a chmod 777 la directory mysql e cancellando il file pid e riavviando MySQL?
LonnyLot

3

Il mio problema era che ho avviato il server come sudo una volta e poi ho provato a riavviare come utente locale.

Qui mysql non è stato in grado di scrivere nel file ".err" di proprietà di root. Ho dovuto rimuovere quel file e riavviare il server:

sudo rm /usr/local/var/mysql/*.err
mysql.server start

2

Ho un problema simile con MySQL su un Mac (Mac Os X Impossibile avviare MySQL Server. Motivo: 255 e anche "ERRORE! Il server si è chiuso senza aggiornare il file PID"). Dopo un lungo processo di tentativi ed errori, finalmente per ripristinare i permessi del file, ho appena fatto questo:

lanciare Disk Utilities.app
scegliere la mia unità nel pannello di sinistra
fare clic sul pulsante "Ripara permessi disco"

Questo ha funzionato per me. Sperando che questo possa aiutare qualcun altro.


1

Per me ha funzionato con:

unset TMPDIR
mysql_install_db --user=`whoami` --basedir="$(brew --prefix mariadb)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

1

Quello che ha funzionato per me è stato:

  1. Vai alla directory di installazione di mysql
  2. sudo chmod -R 777 data
  3. Quindi torna indietro di una directory
  4. cd support-files/
  5. sudo ./mysql.server start

Dopo di che il server ha iniziato a funzionare.

Ma il problema con questo metodo è che devo ripeterlo ogni volta che voglio avviare il mysql ora. Non so perché ha iniziato a comportarsi così all'improvviso.


1

Trova il file usr / local / var / mysql / nome_computer.local.err e comprendi ulteriori informazioni sull'errore

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

Probabilmente è un problema con le autorizzazioni

  1. Trova se mysql è in esecuzione e uccidilo

ps -ef | grep mysql

kill -9 PID

dove PID è il valore della seconda colonna 2. controlla la proprietà di mysql

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

if it is owned by root, change it mysql or your user name

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


1

Prova questo (OSX)

Passo 1: ps -aux | grep mysql

Quindi uccidi il numero PID a 4 cifre

Passo 2: kill 1965

Passaggio 3: mysql.server start

O hai difficoltà a individuare quei numeri PID, prova questo di seguito

Passaggio 1 di nuovo: ps -aux | grep mysql

Passaggio 2 di nuovo: killall

Passaggio 3 di nuovo: mysql.server start


1

Se hai aggiornato l'installazione di mysql a 8.x, controlla se la tua versione precedente è supportata per l' aggiornamento .

In caso contrario, mysql non funzionerà! Disinstalla il tuo mysql insieme a tutti i file di configurazione in/usr/local/var/mysql (rimuovi l'intera cartella). Reinstalla mysql.

NOTA: la reinstallazione potrebbe causare la perdita di dati.


1

Controlla il registro, otterrai informazioni più dettagliate.

Utilizzare il comando seguente per completare il registro degli errori

tail -100 /usr/local/var/mysql/<user_name>.local.err

Per me manca una delle directory, una volta creato il server è partito.


1

Il punto chiave è controllare il file .err, di default su Mac OSX in cui si trova /usr/local/var/mysql.

Quel registro archiviato mi ha rivelato che dovevo eliminare i seguenti file:

ibdata1
ib_logfile0
ib_logfile1

L'esecuzione di MySQL con ha mysql.startfunzionato correttamente dopo. Tieni presente che l'eliminazione di tali file causerà probabilmente la perdita di dati.


0
sudo chmod -R 777 /usr/local/var/mysql/

per me va bene.


0

Ho avuto lo stesso problema:

Ma la situazione era, ogni volta che provo ad entrare:

/usr/local/mysql/support-files/mysql.server start

localhost.pidviene creato un file denominato invece di quello iMax0.local.pidindicato nell'errore:

ERROR! The server quit without updating PID file (/usr/local/mysql/data/iMax0.local.pid).

La soluzione che funziona per me è stata copiarlo localhost.pide rinominarlo in iMax0.local.pid.


0

La mia soluzione su OSX El Capitan era:

sudo chmod ugo+w /tmp

Si è rotto all'improvviso.

L'errore era:

ERROR! The server quit without updating PID file

e il registro mostrava:

Can't start server : Bind on unix socket: Permission denied

Potrebbe anche essere utile notare che in OSX non ci sono my.cnffile di default e non sono necessari di default, cosa che non conoscevo. In bocca al lupo!



0

Ho avuto un problema simile. Ma i seguenti comandi mi hanno salvato.

cd /usr/local/Cellar
sudo chown _mysql mysql

0

Questo è un problema di autorizzazione dei file. Controlla i permessi del disco e ripara.

Osx => Cmd + Spazio => Utilità disco => Verifica autorizzazioni disco.

Verifica completata dopo la riparazione delle autorizzazioni del disco. Il comando di avvio di mysql.server viene eseguito correttamente.


Questo ha funzionato per me. Prova questo prima di fare qualsiasi altra cosa.
kamlesh

0

Nessuna delle risposte ha funzionato per me. Tuttavia, l'ho semplicemente fattosudo mysql.server start e ha funzionato bene.

Inoltre, per me, NON mostrava problemi di autorizzazioni nel file * .err.


0

Ho avuto questo problema su Linux, ma la causa è rilevante per qualsiasi installazione di mysql. Nel mio caso, il server si bloccava prima che l'avvio fosse completo e il file pid aggiornato. I messaggi di errore sono stati visualizzati all'avvio di mysqld direttamente invece che tramite "service mysql start".

Nel mio caso, la causa era che la partizione in cui si trovavano i file di registro era piena. La rimozione dei file di registro ha consentito a mysql di ricominciare. Per verificare questo problema, vai alla posizione dei tuoi registri delle attività di mysql e fai df ..


0

tutte le soluzioni di cui sopra non funzionano per me. ma mi danno alcuni indizi per correggere questo errore.

mysql.server start ---- error Il server si è chiuso senza aggiornare il file PID

Ho installato mysql@5.7 sul mio macbook mojave con homebrew

brew install mysql@5.7

registro degli errori mysql situato in /usr/local/var/mysql/IU.lan.err, c'è una riga in esso: Impossibile aprire e bloccare le tabelle dei privilegi: la tabella "mysql.user" non esiste

dopo aver provato tanti post nel motore di ricerca goole, mi sono rivolto a baidu https://blog.csdn.net/xhool/article/details/52398042 ispirato a questo post, ho trovato la soluzione:

rm / usr / local / var / mysql / *

mysqld --initialize

una password casuale per l'utente root verrà mostrata in bash. ma il comando mysql -uroot -p [theRandomPassword] non può funzionare, quindi devo reimpostare la password. crea un file init con contenuti come questo

IMPOSTARE LA PASSWORD PER "root" @ "localhost" = PASSWORD ("MyNewPass");

posizionalo in una directory facile da trovare, come Desktop

mysqld --init-file = [YourInitFile] &

molti registri stampati sullo schermo.

mysql -uroot -pMyNewPass

goditi la tua versione alta di mysql!


0

Mi è successo perché stavo effettivamente passando da MariaDB a Mysql. Il ritorno a MariaDB ha risolto questo problema.

Immagino che il database esistente non fosse compatibile.


Questo era anche il mio problema, stavo passando da MariaDB a MySQL. Ma tornare a MariaDB non era una soluzione accettabile. Ho rimosso il nuovo mysql brew uninstall mysql@8.0quindi ho cancellato la vecchia cartella mysql creata da MariaDB sudo rm -rf /usr/local/var/mysql(questo ovviamente cancellerà i tuoi database). Allora brew install mysql@8.0e mysql.server starte funziona.
Antriver

0

Risolto usando sudo chown -R _mysql:_mysql /usr/local/var/mysql Grazie a Matteo Alessani


0

Questo errore potrebbe essere effettivamente visualizzato perché mysql è già avviato. Prova a vedere lo stato attuale:

mysql.server status

Ho sempre risolto questo problema eliminando i file di registro, ma psin realtà mostravo i processi mysql. Ho ucciso tutto ripetuto mysql.server restarte ha funzionato!
EAT
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.