Setelah menginstal MySQL melalui Brew, saya mendapatkan pesan kesalahan - Server berhenti tanpa memperbarui file PID

88

Ok, saya telah mencari di mana-mana dan telah menghabiskan cukup banyak waktu saya menginstal, mencopot pemasangan, mencoba berbagai opsi tetapi tidak berhasil.

Saya menggunakan Mac OS X Lion (10.7.3) dan sedang mencoba menyiapkan Python, MySQL.

Saya berhasil menginstal Python dan MySQL melalui HomeBrew. Python bekerja dengan baik.

Setelah Instalasi MySQL, saya mengikuti 2 langkah pertama - unset dan mysql_install_dbperintah.

Sekarang, ketika saya mencoba menjalankan mysql "mysql.server start", saya mendapatkan error berikut

ERROR! The server quit without updating PID file (/usr/local/var/mysql/Brajeshwar.local.pid).
  • Brajeshwar adalah nama pengguna saya di komputer saya.
Brajeshwar
sumber

Jawaban:

81

EDIT 2012/09/18: Seperti yang ditunjukkan oleh Kane , pastikan mysqldatabase sudah disiapkan dengan benar sebelum melakukan hal lain. Lihat “ Kesalahan PID pada mysql.server start? ”Untuk info lebih lanjut.

Jawaban asli disimpan demi sejarah: Kemungkinan besar adalah masalah izin. Periksa /usr/local/var/mysql/*.err. Punyaku berkata:

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

Saya juga harus melakukan ini:

sudo chown _mysql /usr/local/var/mysql/*
janmoesen.dll
sumber
65
Saya memecahkan masalah ini dengan berjalan:sudo chown -R _mysql:_mysql /usr/local/var/mysql
Matteo Alessani
1
Saya mendapatkan kesalahan yang sama, tetapi saya tidak memiliki folder / usr / local / var / mysql :( Saya juga menggunakan homebrew.
Nathan Bashaw
2
Lihat komentar brew info mysqlatau pertanyaan ini untuk solusi yang tepat
Kane
4
sudo chmod ugo + w / tmp adalah solusi saya.
TR3B
2
milik saya diselesaikan dengan sudo chown -R {my_user_name}: admin / usr / local / var / mysql55 /
Packet Tracer
101

Saya menemukan bahwa itu adalah masalah izin dengan mysqlfolder tersebut.

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

memecahkannya untuk saya.

mikoop
sumber
18
tidak perlu membuat ini 777
JamesHalsall
2
Saya juga mencari untuk waktu yang lama dan inilah yang memperbaikinya untuk saya.
digigit
6
Harap dicatat Saya tidak menganjurkan pengaturan apa pun ke 777 dalam lingkungan produksi. Ini harus pada instalasi lokal saja. Saya juga akan mengembalikannya ke minimal 755.
mikoop
1
Jika Anda melihat kesalahan pada mysql start Peringatan: File konfigurasi yang dapat ditulis dunia '/var/lib/mysql/none-dev/my.cnf' diabaikan Maka Anda mungkin ingin chmod ow / var / lib / mysql / none- dev / my.cnf
David Mann
1
milik saya diselesaikan dengan sudo chown -R {my_user_name}: admin / usr / local / var / mysql55 /
Packet Tracer
65

Saya akhirnya menginstal ulang mysql sepenuhnya, dan akhirnya berhasil.

PERINGATAN Ini akan menghapus semua database Anda, jadi pastikan untuk menyimpan dump terlebih dahulu.

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!
artnikpro
sumber
3
Saya mencoba mengubah izin dengan segala cara yang mungkin tidak berhasil. Akhirnya mengikuti instruksi ini dan ... sukses :)
kartsims
Ini adalah solusi HANYA yang saya temukan. Ini harus menjadi nomor satu
Dan
Terima kasih, hanya ini yang berhasil untuk saya. Meskipun saya tidak harus larimysqld --initialize --explicit_defaults_for_timestamp
Jauh
1
Memulai MySQL ... ERROR! Server berhenti tanpa memperbarui file PID (<path> -.lightspeed.irvnca.sbcglobal.net.pid). Mendapatkan kesalahan ini
Unnikrishnan
1
Hanya masalah homebrew
McGrady
31

Saya mengalami masalah ini di mac 10.10.5 Yosemite

Apa yang saya lakukan untuk mengatasi ini

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

Rakesh James
sumber
Bersulang! Cara ini adalah yang paling sederhana dan menyelamatkan hari saya!
iplus26
Sempurna, Anda menyelamatkan hari saya;)
Emy Stats
Mendesah. Setelah mencoba setiap solusi di internet selama 2 jam, inilah yang akhirnya memperbaikinya! Restart lama yang bagus! :)
SexyBeast
18

November, 2014: Jika Anda mendapatkan kesalahan ini di MySQL 5.6.x di Mac OS X Mavericks atau Yosemite dan ingin menggunakan MySQL dengan PHP secara lokal (/tmp/mysql.sock adalah tempat PHP PDO mengharapkan untuk menemukan file sock), inilah yang memperbaikinya untuk saya:

1) Hapus tanda komentar pada baris file config config default dan edit seperti di bawah ini

$ 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 adalah apa yang Anda miliki di System Prefs -> Jaringan sebagai id unik untuk komputer Anda di jaringan.

2) Tetapkan izin pada semua file di datadir mysql. Ini semua dimiliki oleh [my_username]. MySQL sangat pemilih tentang hal ini dan menolak untuk membuat file pid kecuali jika itu (pengguna _mysql) memiliki direktori tersebut.

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

3) Mulai MySQL menggunakan skrip bash helper / wrapper:

$ sudo mysql.server start
Starting MySQL
. SUCCESS! 

Semoga membantu. Jika cara di atas tidak berhasil untuk Anda, coba jalankan biner mysqld_safe secara manual di direktori Cellar / mysql / VERSION_ / bin / dan periksa apa pengaturannya (jika berjalan)

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

Jika itu berjalan, Anda bisa

ps aux | grep mysql 

dan melihat sesuatu seperti

[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

Saya tidak yakin mengapa itu berhasil untuk saya tetapi ini menunjukkan kepada Anda dari mana saya mendapatkan opsi file konfigurasi my.cnf. Anda juga dapat menggunakan opsi baris perintah untuk mencoba memecahkan masalah saat memulai mysqld secara manual.

Jika Anda menjalankan mengelola untuk menjalankan server MySQL menggunakan mysqld_safe, Anda mungkin harus melakukan ini untuk mematikannya sebelum mencoba bantuan bash mysql.server. Tahan keinginan untuk mematikan -9 [PID] karena Anda dapat merusak data Anda.

mysqladmin -uroot shutdown

Semoga berhasil!

phpguru
sumber
terima kasih - milik saya diselesaikan dengan sudo chown -R {my_user_name}: admin / usr / local / var / mysql55 /
Packet Tracer
18

Saya memiliki masalah yang sama di OS X El Capitan, inilah urutan perintah terminal yang memperbaikinya untuk saya.

Hapus file kesalahan (Anda harus mengubah jalur tergantung pada pengaturan Anda)

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

Temukan info untuk proses mysql yang masih berjalan dan matikan:

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

Sekarang mulai ulang MySQL:

/usr/local/mysql/support-files/mysql.server start
Lingkaran B
sumber
10

Ini berhasil untuk saya:

sudo chmod -R 777 /usr/local/var/mysql/
sudo /usr/local/mysql/support-files/mysql.server start
Kresimir Plese
sumber
Ini memecahkan masalah saya di MAC os 10.11.3 (setelah mengubah mode ke 777 dari direktori mysql)
Ratha
Ini berarti Read Write Execute, atau hak penuh untuk semua pengguna ke folder itu dan (-R) semua file dan folder di bawah folder itu. Untuk penjelasan rinci, silakan lihat tautan berikut: linux.com/learn/understanding-linux-file-permissions
Kresimir Plese
4

Ini berhasil untuk saya pada 10.12.2:

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

kemudian

$ brew services restart mysql
Suryanto Rachmat
sumber
3

Jika saya ingat dengan benar, itu adalah masalah izin. Coba 'sentuh' dan 'chmod' file pid atau folder tempat file disimpan.

LonnyLot
sumber
Nggak. Saya bahkan mencoba chmod 777 untuk melihat apakah itu menyelesaikan masalah tetapi tidak ada. ERROR yang sama.
Brajeshwar
Apakah Anda mencoba chmod 777 direktori mysql dan menghapus file pid dan memulai ulang MySQL?
LonnyLot
3

Masalah saya adalah saya memulai server sebagai sudo sekali dan kemudian mencoba memulai ulang sebagai pengguna lokal.

Di sini mysql tidak dapat menulis ke file '.err' yang dimiliki oleh root. Saya harus menghapus file itu dan memulai ulang server:

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

Saya punya masalah serupa dengan MySQL di Mac (Mac Os X tidak dapat memulai Server MySQL. Alasan: 255 dan juga "ERROR! Server berhenti tanpa memperbarui file PID"). Setelah proses trial and error yang lama, akhirnya untuk mengembalikan izin file, saya baru saja melakukannya:

luncurkan Disk Utilities.app
pilih drive saya di panel kiri
klik tombol "Perbaiki izin disk"

Ini melakukan trik untuk saya. Berharap ini bisa membantu orang lain.

Claude BISA
sumber
1

Bagi saya itu berhasil dengan:

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

Apa yang berhasil bagi saya adalah:

  1. Buka direktori instalasi mysql Anda
  2. sudo chmod -R 777 data
  3. Lalu kembali satu direktori
  4. cd support-files/
  5. sudo ./mysql.server start

Setelah itu server mulai berjalan.

Tetapi masalah dengan metode ini adalah saya harus mengulangi ini setiap kali saya ingin memulai mysql sekarang. Tidak tahu mengapa tiba-tiba mulai berperilaku seperti ini.

Pritam Banerjee
sumber
1

Temukan file usr / local / var / mysql / your_computer_name.local.err dan pahami lebih banyak informasi tentang kesalahan

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

Mungkin ada masalah dengan izin

  1. Temukan apakah mysql sedang berjalan dan matikan

ps -ef | grep mysql

bunuh -9 PID

dimana PID adalah kolom kedua nilai 2. cek kepemilikan 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 /

Amitesh Bharti
sumber
1

Coba ini (OSX)

Langkah 1: ps -aux | grep mysql

Kemudian bunuh 4 digit nomor PID

Langkah 2: kill 1965

Langkah 3: mysql.server start

Atau mengalami kesulitan untuk menemukan nomor PID tersebut, coba ini di bawah

Langkah 1 lagi: ps -aux | grep mysql

Langkah 2 lagi: killall

Langkah 3 lagi: mysql.server start

EsterlingAccime Youtuber
sumber
1

Jika Anda telah mengupgrade instalasi mysql Anda untuk 8.x, memeriksa apakah versi sebelumnya didukung untuk upgradation .

Jika tidak, mysql tidak akan berfungsi! Copot pemasangan mysql Anda bersama dengan semua file konfigurasi di /usr/local/var/mysql(hapus seluruh folder). Instal ulang mysql.

CATATAN: menginstal ulang dapat menyebabkan hilangnya data.

Ayush Goel
sumber
1

Silakan periksa log, Anda akan mendapatkan informasi lebih rinci.

Gunakan perintah di bawah ini untuk mengikuti log kesalahan

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

Bagi saya, salah satu direktori hilang, setelah dibuat, server telah dimulai.

Mani
sumber
1

Kuncinya adalah memeriksa file .err, secara default di Mac OSX file tersebut ada di dalamnya /usr/local/var/mysql.

Log yang diajukan mengungkapkan kepada saya bahwa saya harus menghapus file berikut:

ibdata1
ib_logfile0
ib_logfile1

Menjalankan MySQL dengan mysql.startberhasil setelah itu. Perhatikan bahwa menghapus file tersebut kemungkinan besar akan menyebabkan hilangnya data.

Janac Meena
sumber
0
sudo chmod -R 777 /usr/local/var/mysql/

bekerja untuk saya.

Anshul
sumber
0

Saya memiliki masalah yang sama:

Tapi situasinya, setiap kali saya mencoba masuk:

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

file bernama localhost.piddibuat, bukan iMax0.local.pidyang dinyatakan dalam kesalahan:

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

Solusi yang berhasil untuk saya adalah menyalin localhost.piddan mengganti namanya menjadi iMax0.local.pid.

0yeoj
sumber
0

Solusi saya di OSX El Capitan adalah:

sudo chmod ugo+w /tmp

Tiba-tiba rusak.

Kesalahannya adalah:

ERROR! The server quit without updating PID file

dan log menunjukkan:

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

Mungkin juga membantu untuk dicatat, bahwa di bawah OSX tidak ada my.cnffile secara default dan tidak diperlukan secara default, yang saya tidak tahu. Semoga berhasil!

Gasgeber
sumber
0
$ sudo mysql.server restart

Ini bekerja untuk saya.

Lucas Ocon
sumber
0

Saya memiliki masalah serupa. Tapi perintah berikut menyelamatkan saya.

cd /usr/local/Cellar
sudo chown _mysql mysql
shakti singh
sumber
0

Ini adalah masalah izin file. Periksa izin dan perbaikan disk.

Osx => Cmd + Spasi => Utilitas Disk => Verifikasi Izin Disk.

Verifikasi selesai setelah Perbaiki Izin Disk. mysql.server start command berhasil dengan sukses.

wallance
sumber
Ini berhasil untuk saya. Silakan coba ini sebelum melakukan apa pun.
kamlesh
0

Tidak ada jawaban yang berhasil untuk saya. Namun, saya hanya melakukannyasudo mysql.server start dan itu bekerja dengan baik.

Juga, bagi saya, itu TIDAK menunjukkan masalah izin di file * .err.

master_dodo
sumber
0

Saya mengalami masalah ini di Linux, tetapi penyebabnya relevan dengan instalasi mysql apa pun. Dalam kasus saya, server macet sebelum startup selesai dan file pid diperbarui. Pesan kesalahan terlihat saat memulai mysqld secara langsung daripada melalui "layanan mysql start".

Dalam kasus saya, penyebabnya adalah partisi tempat file log berada penuh. Menghapus file log mengizinkan mysql untuk memulai kembali. Untuk menguji masalah ini, pergi ke lokasi log aktivitas mysql Anda, dan lakukan df ..

Edward Schaefer
sumber
0

semua solusi di atas tidak berhasil untuk saya. tetapi mereka memberi saya beberapa petunjuk untuk memperbaiki kesalahan ini.

mysql.server start ---- error Server berhenti tanpa memperbarui file PID

Saya menginstal [email protected] di macbook mojave saya dengan homebrew

buat instal [email protected]

log kesalahan mysql terletak di /usr/local/var/mysql/IU.lan.err, ada satu baris di dalamnya: Tidak dapat membuka dan mengunci tabel hak istimewa: Tabel 'mysql.user' tidak ada

Setelah mencoba banyak posting di mesin pencari goole, saya beralih ke baidu https://blog.csdn.net/xhool/article/details/52398042 terinspirasi oleh posting ini, saya menemukan solusinya:

rm / usr / local / var / mysql / *

mysqld --inisialisasi

kata sandi acak untuk pengguna root akan ditampilkan di bash. tetapi perintah mysql -uroot -p [theRandomPassword] tidak dapat berfungsi. jadi saya harus mengatur ulang kata sandi. buat file init dengan konten seperti ini

SET PASSWORD UNTUK 'root' @ 'localhost' = PASSWORD ('MyNewPass');

letakkan di direktori mana saja yang mudah ditemukan, seperti Desktop

mysqld --init-file = [YourInitFile] &

banyak log dicetak di layar Anda.

mysql -uroot -pMyNewPass

nikmati mysql versi tinggi Anda!

何德福
sumber
0

Terjadi pada saya karena saya sebenarnya beralih dari MariaDB ke Mysql. Beralih kembali ke MariaDB memecahkan masalah ini.

Saya menduga database yang ada tidak kompatibel.

theredled
sumber
Ini juga masalah saya, saya beralih dari MariaDB ke MySQL. Tetapi beralih kembali ke MariaDB bukanlah solusi yang dapat diterima. Saya menghapus mysql baru brew uninstall [email protected]kemudian menghapus folder mysql lama yang dibuat oleh MariaDB sudo rm -rf /usr/local/var/mysql(ini akan menghapus database Anda dengan jelas). Kemudian brew install [email protected]dan mysql.server startdan itu berhasil.
antriver
0

Dipecahkan ini menggunakan sudo chown -R _mysql:_mysql /usr/local/var/mysql Thanks to Matteo Alessani

Vallie
sumber
0

Kesalahan ini mungkin sebenarnya ditampilkan karena mysql sudah dimulai. Coba lihat status saat ini dengan:

mysql.server status
Jahmic
sumber
Saya selalu menyelesaikan ini dengan menghapus file log, tetapi pspada kenyataannya menunjukkan proses mysql. Saya membunuh semuanya kembali berlari mysql.server restartdan itu berhasil!
MAKAN