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.

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/*

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.


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!

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


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!


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

10

Ini berhasil untuk saya:

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

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

3

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


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

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.


1

Bagi saya itu berhasil dengan:

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

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.


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 /


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


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.


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.


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.


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

bekerja untuk saya.


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.


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!



0

Saya memiliki masalah serupa. Tapi perintah berikut menyelamatkan saya.

cd /usr/local/Cellar
sudo chown _mysql mysql

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.


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.


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 ..


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 mysql@5.7 di macbook mojave saya dengan homebrew

buat instal mysql@5.7

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!


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.


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 mysql@8.0kemudian 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 mysql@8.0dan mysql.server startdan itu berhasil.
antriver

0

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


0

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

mysql.server status

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.