Kesalahan startup server MySql 'Server berhenti tanpa memperbarui file PID'

284

Di Snow Leopard, memulai MySQL memberikan kesalahan berikut:

Server berhenti tanpa memperbarui file 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
Chinmay
sumber
7
berjalan sebagai pengguna admin. dengan sudo /usr/local/mysql/support-files/mysql.server start
Chinmay
6
permasalahan yang sama. Menginstal mysql dengan brew
vrybas
20
Masalah yang sama disini. juga diinstal dengan minuman.
jspooner
11
Saya mendapatkan case ini juga di mac saya, dan baru saja menghapus log kesalahan, seperti '/usr/local/var/mysql/*.err', mulai berhasil.
Mathew P. Jones
3
Saya juga mendapat kesalahan yang sama pada mac. Tapi saya bisa menyelesaikannya. Jika Anda diinstal melalui file .dmg pergi ke preferensi sistem kemudian klik pada ikon mysql kemudian klik mulai tombol mysql.
Amaranadh Meda

Jawaban:

276

coba cari file log Anda dengan suffix ".err", harus ada info lebih lanjut. Mungkin di:

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

Mungkin masalah dengan izin

  1. periksa apakah ada instance mysql sedang berjalan

    ps-id | grep mysql

    jika ya, Anda harus menghentikannya, atau mematikan prosesnya

    bunuh -9 PID

    di mana PIDnomor ditampilkan di sebelah nama pengguna pada output dari perintah sebelumnya

  2. periksa kepemilikan /usr/local/var/mysql/

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

    jika pemiliknya rootAnda harus mengubahnya mysqlatauyour_user

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

Tombart
sumber
24
Saya harus chown ke pengguna mysql daripada pengguna saya.
Jared
3
bekerja untukku. saya memeriksa file kesalahan dan mengatakan bahwa itu karena izin file. menjalankan perintah chown dan bekerja. Terima kasih!!
Paket Tracer
2
sudo chown -R my_user / usr / local / var / mysql / setidaknya bekerja untuk saya
Bjørn Børresen
Dari pengalaman saya sendiri - Berhati-hatilah bahwa setelah Anda melakukan sudo chown yang saat ini Anda tidak memiliki beberapa proses mysql berjalan di bawah pengguna atau root lain. ps-id | grep mysql akan memvalidasi bahwa Anda tidak menjalankan apa pun - jika tidak, Anda tidak akan dapat memulainya.
Arthur Frankel
1
Penghemat total. Satu-satunya pengamatan saya adalah jalur file ke folder mysql dapat bervariasi.
ALisboa
198

Apakah Anda mengikuti instruksi dari brew install mysql?

Siapkan basis data untuk dijalankan SEBAGAI AKUN PENGGUNA ANDA dengan:

Untuk mysql 5.x:

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

Untuk mengatur tabel dasar di folder lain, atau menggunakan pengguna lain untuk menjalankan mysqld, lihat bantuan untuk mysqld_install_db:

mysql_install_db --help

dan lihat dokumentasi MySQL:

Untuk mysql 8.x:

unset TMPDIR
mysqld --initialize-insecure --log-error-verbosity --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

Pastikan direktori data di /usr/local/var/mysqlatas kosong, cadangan jika perlu.

Untuk menjalankan sebagai, misalnya, pengguna "mysql", Anda mungkin perlu sudo:

sudo mysql_install_db ...options...

Mulai mysqld secara manual dengan:

mysql.server start

Catatan: jika ini gagal, Anda mungkin lupa menjalankan dua langkah pertama di atas

svs
sumber
78
Jika Anda berulang kali mendapatkan kesalahan yang sama bahkan setelah mengikuti langkah-langkah dari output maka hapus file * .err dari direktori yang sama dengan file * .pid. mahdiyusuf.com/post/21022913180/…
ekillaby
6
Saya mencoba mengikuti instruksi ini jutaan kali tetapi tidak pernah berhasil. Saya mencoba "menipu" dengan tidak membersihkan semua hal yang oleh dokter saya ingatkan sejak saya pikir mereka tidak membuat perbedaan. Pada akhirnya, membersihkan dan mengikuti saran dokter memungkinkan untuk menjalankan melalui pengaturan yang dijelaskan di atas. Jadi catatan untuk orang lain yang lewat; jangan mencoba menipu dokter pembuat bir dan berpikir Anda tahu lebih baik!
span
9
Saya masih memiliki banyak hal yang salah ketika saya menyeduh dokter dan menambahkan izin menulis kepada pengguna saya sendiri melakukan trik. sudo chown -R your_user /usr/local/var/mysql/sama seperti jawaban
@Tartart
1
@countfloortiles Ya! Menghapus file kesalahan melakukannya. :-)
ott--
6
The mysqld_install_dbperintah memberi saya kesalahanmysql_install_db: [ERROR] unknown variable 'tmpdir=/tmp'
Snowcrash
125

Saya memiliki masalah yang sama pada mesin Mac saya (diikuti dengan benar semua langkah instalasi yang disarankan oleh brew install).

Menghapus file kesalahan yang diperbaiki untuk saya:

sudo rm -rf /usr/local/var/mysql/dev.work.err( dev.workadalah nama host saya)

Ini berfungsi karena dev.work.errdimiliki oleh _mysql:wheelalih-alih nama pengguna saya sendiri. CHOWN-ing file kesalahan mungkin akan memperbaikinya juga.

ukliviu
sumber
2
Ini memecahkan masalah saya juga, setelah me-reboot mysql tidak bisa bekerja lagi, memberi saya masalah yang sama, tetapi menghapus log kesalahan yang dimiliki oleh _mysql: admin memecahkan masalah
user980085
5
Ini sepertinya yang paling membantu, membuat saya sadar bahwa saya tidak boleh memulai layanan ini dengan SUDO tetapi menjalankannya di bawah akun pengguna saya sendiri.
Bnjmn
3
Ini adalah jawaban yang cukup bagus bagi mereka yang telah menginstal MySQL menggunakan Homebrew
Stephane Paquet
Setelah berminggu-minggu mencoba hal yang berbeda, ketika saya menghapus file kesalahan semuanya mulai berfungsi. Terima kasih
DF
Saya tidak harus menghapusnya, cukup kembalikan ke akun saya, karena di suatu tempat akun _mysql mengambil alih.
Sammy Larbi
90

Setelah reboot saya mengalami masalah yang sama. Inilah cara saya memperbaikinya:

 sudo chown -R _mysql /usr/local/var/mysql
Sam Ruberti
sumber
terima kasih banyak - jangan lupa untuk membuat cadangan barang, untuk berjaga-jaga jika Anda mengacaukan dengan izin
m02ph3u5
Terima kasih. Saya mengalami masalah dengan Lampp di Ubuntu. Saya menyalin seluruh folder lampp dari / opt ke server baru. Ketika saya mencoba memulai mysql saya mendapat pesan: Server berhenti tanpa memperbarui file PID. Pergi ke lampp / var / dan lakukan chown -R mysql mysql / Itu berhasil untuk saya!
Dave
6
Terima kasih, Kamu adalah Pahlawanku;)
Fareed Alnamrouti
Terima kasih banyak, teman! Selamat hari itu!
Masiar
8
Pada El Capitan ini bekerja:sudo chown -R _mysql /usr/local/mysql/data
Justin
33

Ini bekerja untuk saya ...

Periksa semua proses MySQL yang sedang berjalan:

$ ps aux | grep mysql

USER     PID    %CPU  %MEM 
_mysql   5970   0.0   0.4 ...

Kemudian bunuh semua proses yang terdaftar dari perintah di atas menggunakan yang berikut:

$ sudo kill -9 [PID]

Ganti [PID]dengan PID individual dari daftar di atas, misalnya 5970.

Lakukan itu untuk semua baris yang Anda lihat dengan perintah pertama.

Kemudian Anda dapat memulai kembali server MySQL Anda:

mysql.server start
mikoop
sumber
atau gunakan pkill mysqluntuk membunuh semua proses yang cocok dengan "mysql" ( -9tidak perlu dalam kebanyakan kasus)
bfontaine
untuk mematikan semua proses dengan ID spesifik dan memulainya lagi
Anupam Maurya
26

Kesalahan ini dapat terjadi ketika mencoba untuk memulai msql setelah itu tidak benar dimatikan.

  1. Lihatlah file log kesalahan mysql. Jika itu menyebutkan sesuatu seperti "Periksa bahwa Anda belum memiliki proses mysqld lain menggunakan data atau file log yang sama." , maka Anda perlu mematikan proses itu dengan benar.

  2. Lihat proses apa yang sedang dijalankan mysql, gunakan perintah ini: lsof -i:3306

Output Anda akan terlihat seperti ini:

COMMAND  PID    USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
mysqld  4249 username   17u  IPv4 0x7843d9d130469c0b      0t0  TCP localhost:mysql (LISTEN)
  1. Hentikan proses menjalankan mysql: kill -15 4249

Kill -15 mengirimkan siganl ke proses untuk membebaskan semua sumber daya yang dikunci dan menghentikan proses setelahnya.

  1. Sekarang mysql harus memulai tanpa masalah: mysql.server start
cosbor11
sumber
Ini masih bekerja untuk saya di High Sierra, untuk apa pun yang berharga.
Jonathan Stegall
24

File kesalahan saya juga memberi tahu saya bahwa port mungkin sedang digunakan oleh proses lain, tetapi hanya menjalankan sudo mysql.server startperbaikan masalah untuk saya.

jaredsmith
sumber
ya ... ini bekerja untuk saya juga ... dan tidak ada yang di atas bekerja
Prashant
Saya mengikuti instruksi yang saya baca di suatu tempat cara untuk memulai MySQL pada Mac adalah 'sudo /usr/local/mysql/support-files/mysql.server start'. Itu menghasilkan kesalahan "server berhenti tanpa memperbarui file pid", dan itulah bagaimana saya sampai ke halaman ini. Setelah mencoba banyak jawaban, saya menemukan 'sudo mysql.server start', dan ternyata berhasil. Terima kasih.
rodmclaughlin
19

Cobalah untuk menghapus ib_logfile0dan ib_logfile1file dan kemudian jalankan mysql lagi

rm /usr/local/var/mysql/ib_logfile0
rm /usr/local/var/mysql/ib_logfile1

Ini bekerja untuk saya.

pengguna3890355
sumber
1
Saya juga menghapus .errfile di direktori yang sama, yang bekerja untuk saya.
Anthony To
Baik. Ini sederhana dan benar-benar bekerja untuk saya. Tapi, dalam kasus saya, saya hanya mengganti nama menjadiib_log*.bak
mochadwi
18

Jika tidak ada jawaban yang membantu Anda, hapus saja folder /usr/local/var/mysqllalu instal mysql lagi brew reinstall mysql.

pengguna3890355
sumber
9
PERINGATAN itu berarti menghapus semua basis data.
Diredam
Saya menginstal versi mysql yang lebih tinggi sebelumnya, daripada menginstal mysql5.7 dan masalah ini terjadi. Hapus / usr / local / var / mysql dan brew reinstall [email protected]selesaikan.
Pegasus
Pindahkan dbs di bawah / usr / local / var / mysql ke folder lain terlebih dahulu. Setelah instalasi dan memulai layanan mysql berhasil, cobalah untuk memindahkan db yang diperlukan kembali.
civic.LiLister
15

Saya baru-baru ini menemukan masalah ini, namun berhasil sebelumnya, lalu berhenti.

Ini karena saya awalnya memulai mysql.serversebagai root alih-alih saya sendiri.

Cara mengatasinya adalah menghapus file err log (yang dimiliki oleh _mysql). Memulainya lagi berhasil.

Roland Parnaso
sumber
Terima kasih! Saya memiliki masalah yang sama mencari satu jam kemudian menemukan jawaban Anda.
FLY
11

Bagi saya, saya harus menginstal ulang mysql

brew reinstall mysql

dan kemudian di bawah Untuk memiliki launchd mulai mysql sekarang dan restart saat login:

brew services start mysql
sumit
sumber
10

Solusi yang bekerja untuk saya ada di sini: /server/334284/cant-create-pid-file-on-mysql-server-permission-denied

Mengubah beberapa izin saya sepertinya berhasil. Saya menjalankan Mid-2012 Macbook Air dengan OS X 10.8.2 dan mysql diinstal dengan homebrew.

chmod 0755 /var
chown root:wheel /var/tmp
sudo chmod 0771 /usr/local/var/mysql/*
Gabe
sumber
10

Bagi saya perbaikannya sederhana:

top

menunjukkan bahwa mysqld sudah berjalan

sudo killall mysqld 

lalu biarkan proses dimulai

Luke Madhanga
sumber
8

Saya mengalami masalah ini ketika mencoba membuat pembaruan pada MacOS X 10.7.5.

Sayangnya mysql juga ditingkatkan menjadi 5.6.10 dari 5.5.14. Mencoba yang baru, tidak berhasil.

Saya memutuskan untuk kembali ke pengaturan lama saya dan melakukan

brew switch mysql 5.5.14

Ini tidak menyelesaikan masalah. Di tempat lain saya membaca dan melakukan ini, voila! Semua sudah kembali :)

cd /usr/local/var/mysql
mv ib_logfile0 ib_logfile0.bak
mv ib_logfile1 ib_logfile1.bak
cenk
sumber
Ini bekerja untuk saya setelah menggunakan pertama brew upgrade mysqldan kemudian brew switch mysql 5.7.17yang merupakan versi saya sebelumnya. Aneh!
Jorge Orpinel
7

Saya menggunakan,

Saya Menginstal MySQL menggunakan homebrew ('brew install mysql'). Itu menginstal beberapa dependensi dan kemudian mysql.

Ketika saya mencoba untuk memulai,

west$ mysql.server start
Starting MySQL
.. ERROR! The server quit without updating PID file (/usr/local/var/mysql/west.local.pid).

Saya menjalankan perintah ini,

west$ /usr/local/Cellar/mysql/5.5.25/scripts/mysql_install_db 

dan karya-karya MySQL.

Harap perhatikan bahwa Anda perlu menjalankan mysql_install_db dari bagian atas dengan direktori mysql (IE, usr / local / Cellar / mysql / 5.5.25). Menjalankannya langsung di direktori / script tidak memberikan konteks yang cukup untuk menjalankannya.

Pelat Weston
sumber
Bekerja untuk saya dengan 5.5.28 dan menyeduh OSX 10.7.5
ch3rryc0ke
7

Bagi saya solusinya adalah menimpa / memperbaiki direktori data di / etc / my / cnf.

Saya membangun MySQL 5.5.27 dari sumber dengan arahan yang disediakan di file readme:


# Preconfiguration setup
shell> groupadd mysql
shell> useradd -r -g mysql mysql
# Beginning of source-build specific instructions
shell> tar zxvf mysql-VERSION.tar.gz
shell> cd mysql-VERSION
shell> cmake .
shell> make
shell> make install
# End of source-build specific instructions

# Postinstallation setup
shell> cd /usr/local/mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> scripts/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql data

# Next command is optional
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> bin/mysqld_safe --user=mysql &

# Next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server

mysqld_safe mengakhiri sendiri tanpa penjelasan. berlari/etc/init.d/mysql.server start mengakibatkan kesalahan:

"Server berhenti tanpa memperbarui file PID"

Saya melihat sesuatu yang aneh dalam instruksi instalasi. Kepemilikan berubah menjadi mysql untuk direktori "data", tetapi tidak untuk "var"; ini tidak biasa karena selama bertahun-tahun saya harus memastikan bahwa direktori var adalah mysql dapat ditulisi. Jadi saya berlari secara manualchown -R mysql /usr/local/mysql/var dan kemudian mencoba memulainya lagi. Masih belum berhasil. Tapi lebih buruknya, tidak ada file .err di dir var - itu ada di dir "data"! jadi skrip / mysql_install_db menyiapkan camp di / usr / local / mysql / var, tetapi aplikasi lainnya sepertinya ingin melakukan tugasnya di / usr / local / mysql / data!

Jadi saya baru saja mengedit /etc/my.cnf dan di bawah bagian [mysqld] saya menambahkan arahan untuk secara eksplisit menunjuk direktori data mysql ke var (seperti yang biasanya saya harapkan bagaimana pun caranya), dan setelah melakukannya, mysqld memulai hanya baik. Arahan untuk menambahkan terlihat seperti ini:

datadir = / usr / local / mysql / var

Bekerja untukku. Semoga ini bisa membantu Anda.

SKelly
sumber
5

Tampaknya proses MySQL sedang berjalan maka Anda tidak dapat menggunakan porta. Anda dapat memeriksa proses MySQL yang sedang berjalan menggunakan perintah berikut:

ps auxf | grep mysql

Jika Anda mendapatkan proses MySQL, bunuh ID proses itu menggunakan kill -9 PID dan kemudian coba mulai MySQL.

colin2328
sumber
Jawaban ini adalah penyelamat saya.
Sangbeom Han
5

Mulai Mysql dalam mode aman

/usr/local/mysql/bin/mysqld_safe start

ATAU

di MAC End any mysqlormysqld tugas (atau lainnya) dalam aplikasi Monitor Aktivitas Anda.

atau periksa kesalahan Anda

tail -f /usr/local/mysql/data/XXXXX-XXXXX-Pro.local.err
Saurabh Chandra Patel
sumber
4

Apa kata error log? Saya mendapatkan kesalahan ini, dan akhirnya menjadi pengaturan lama yang tidak valid di my.cnf, yang ditunjukkan oleh log kesalahan mysql. Jika bukan pengaturan konfigurasi yang buruk, log kesalahan setidaknya harus mengarahkan Anda ke arah yang benar.

Yah, saya berasumsi OP telah memperbaikinya pada saat ini ... tapi mudah-mudahan ini menunjukkan yang lain melihat kesalahan ini ke arah yang benar.

Brian Ray
sumber
4

Dengan bantuan beberapa jawaban yang diposting di sini, saya dapat menemukan masalahnya

Pertama saya lari

sudo -i

Jadi saya bisa memiliki akses root.

Daripada saya menghapus file xxxx.err

rm -rf /usr/local/mysql/data/xxxx.err

setelah saya mulai MySQL di SafeMode

/usr/local/mysql/bin/mysqld_safe start

Itu akan mencoba untuk memulai dan akan keluar karena kesalahan ... file xxx.err baru akan dibuat dan Anda perlu membacanya untuk melihat penyebab kesalahan

tail -f /usr/local/mysql/data/mysqld.local.err

Dalam kasus saya, untuk beberapa alasan, itu hilang beberapa folder dan file di dalam /var/log/folder ... Jadi saya membuat keduanya

cd /var/log

mkdir mysql

touch mysql-bin.index

Setelah file baru dibuat, Anda perlu mengubah izin

chown -R _mysql /var/log/mysql

Ketika semua langkah itu dilakukan, basis data saya mulai bekerja segera ...

Semoga ini bisa membantu orang lain di sini ... Kuncinya adalah membaca kesalahan dan masuk dan menemukan apa yang salah ...

Paulo Griiettner
sumber
4

Dalam kasus saya, kesalahan terjadi karena masalah pengaksesan file log kesalahan.

Dua perintah berikut membantu saya mengatasi masalah ini.

sudo chown <user> /usr/local/var/mysql/<my-host-name>.err
sudo chmod 666 /usr/local/var/mysql/<my-host-name>.err
FrankSu
sumber
3

Saya harap ini berhasil untuk Anda.

Setelah memeriksa log kesalahan, saya menemukan ini:

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

Dan untuk mengatasinya, saya memberikan hak kepemilikan ke seluruh folder 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

Kemudian (Anda dapat melakukannya juga dengan command-line), saya menerapkan izin (setelah saya memberikan kepemilikan itu kepada pengguna _mysql dan mysql ) ke semua folder terlampir dari dalam menu "dapatkan info" folder di / usr / local / mysql -5.5.21-osx10.6-x86_64 . Anda tidak perlu mengatakan itu ke alias karena itu hanya alias.

Nama folder tergantung pada versi instalasi mysql yang Anda miliki.

lu1s
sumber
3

Saya memiliki masalah yang sama. memindahkan file /etc/my.cnf saya berhasil untuk saya. Saya mendapat informasi di sini

Nealv
sumber
3

Punya masalah yang sama, bagi saya itu melakukan menghapus minuman sementara memiliki instalasi mysqld sebelumnya berjalan. Tampaknya minuman tidak menghentikan layanan sebelum menghapus instalasi.

Setelah memeriksa file .err saya melihat kesalahan login bahwa salinan mysql lain dapat berjalan, setelah menghentikan layanan yang lama. Saya kemudian dapat me-restart instalasi mysql baru.

Dorongan
sumber
Ya, periksa log kesalahan. Dalam kasus saya, saya berlari ls -latr /usr/local/var/mysql/untuk menemukan file yang dimodifikasi terbaru, yang termasuk log kesalahan, kemudian tail -50 name.erruntuk melihat kesalahan, yang merupakan masalah dalam konfigurasi.
mahemoff
Terima kasih Tuhan, Anda benar. Saya menggunakan ps aux | grep mysqlddan kemudian menghentikan proses dengan kill -9 [proccessid]dan server mulai berhasil
Sagish
3

Sederhana....

Perbaiki kesalahan MySQL Socket 2002

Memperbaiki kesalahan soket 2002 yang menjulang - yang menghubungkan tempat MySQL menempatkan soket dan di mana OSX berpikir seharusnya, MySQL meletakkannya di / tmp dan OSX mencarinya di / var / mysql soket adalah jenis file yang memungkinkan klien mysql / komunikasi server.

sudo mkdir / var / mysql

sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

Sudah selesai dilakukan dengan baik : )

Ini Bantu Saya BANYAK! saya mengambil panduan ini dari orang-orang di http://coolestguidesontheplanet.com/

carloslozada
sumber
3

Coba ini..

  1. Arahkan ke direktori induk masalah cd YOURPATH/usr/local/mysql
  2. rm -rf *.local.err (menghapus file)
  3. touch YOURUSERNAME.local.pid (menghasilkan file * .local.pid baru yang dikeluhkan oleh kesalahan)
  4. cd kembali ke proyek Anda dan restart mysql menggunakan mysql.server start
Nick Sarafa
sumber
1
Ini berhasil untuk saya. Alasannya, error.logfile itu dimiliki oleh "_mysql" melempar kesalahan dalam log. Hanya ingin login yang memetikan orang lain yang memiliki masalah ini. 150818 19:32:06 mysqld_safe Logging to '/opt/boxen/log/mysql/error.log'. 150818 19:32:06 mysqld_safe Starting mysqld daemon with databases from /opt/boxen/data/mysql /opt/boxen/homebrew/bin/mysqld_safe: line 129: /opt/boxen/log/mysql/error.log: Permission denied
Donovan
Ini tidak berfungsi jika masalah Anda terkait dengan izin, yang menyebabkan kesalahan mysql yang sama.
mpoletto
Bekerja untuk saya juga. Saya juga harus memulai ulang apache saya (bagi mereka yang juga menggunakan tumpukan LAMP).
Tommyixi
3

Entah bagaimana saya mengacaukan izin saya pada El Capitan dan memutuskan untuk menginstal ulang MySQL dari awal.

Saya menggunakan minuman pada el capitan, dan memutuskan untuk menginstal ulang:

brew uninstall mysql
sudo rm -rf /usr/local/var/mysql
brew install mysql
mysql.server start # ... SUCCESS

Izin file pada instalasi baru berubah dari _mysqluntuk memasukkan nama pengguna saya

 ls -alh /usr/local/var/mysql
drwxr-xr-x   22 lfender  admin   748B Mar 22 09:58 .
# ... etc
lfender6445
sumber
2

Periksa apakah Anda memiliki ruang yang tersisa di drive Anda. Saya mendapatkan masalah ini ketika tidak ada ruang tersisa di drive saya.

terima kasih
sumber
Saya tidak akan pernah memikirkan masalah ruang jika Anda tidak menyebutkannya. Anda seorang penyelamat!
Kshitij Bajracharya
2

Masalahnya adalah izin satu, tidak bisa mulai karena tidak bisa menulis ke mac.err karena dimiliki oleh orang lain.

Pastikan folder / usr / local / var / mysql dimiliki oleh pengguna yang akan memulai mysql. Jika saya memulai mysql sebagai jack, semuanya baik. Namun, jika Anda memulainya sebagai root, itu akan membuat file mac.err (dimiliki oleh root) yang tidak dapat ditulisi oleh jack, jadi ketika Anda mencoba me-restart sebagai jack, ia akan gagal.

  1. Pastikan folder dan file milik pengguna yang menjalankan mysql.server mulai
  2. Pastikan belum ada mac.err atau mac.pid yang dimiliki oleh orang lain.
  3. Mulai adalah sebagai pengguna yang tepat.
Jack Sukerman
sumber
Saya menggunakan chown -R <user_name> / usr / local / var / mysql dan bekerja dengan baik. Solusi bagus
mbokil
2

Dalam kasus saya, saya mendapatkan masalah ini di vps, cPanel .

Saya sudah mencoba sebagian besar jawaban di atas, tetapi tidak berhasil.

  1. periksa di mana log kesalahan Anda. Itu akan disebutkan di akhir baris kesalahan.

KESALAHAN! Server berhenti tanpa memperbarui file PID (/var/lib/mysql/111318.vps-11.com.pid).

  1. Buka file itu (/var/lib/mysql/111318.vps-11.com.err) dan chek bagian bawah untuk baris terbaru. Dalam kasus saya, ada

[GALAT] Kesalahan fatal: Tidak bisa membuka dan mengunci tabel hak istimewa: Tabel './mysql/db' ditandai sebagai macet dan harus diperbaiki

  1. Bagaimana mengatasi ini: Memulihkan dan memperbaiki indeks tabel dengan perintah:

[~] # myisamchk -r /var/lib/mysql/mysql/db.MYI

https://forums.cpanel.net/threads/mysql-is-not-running.407142/

  1. (Re) Mulai mysql Anda
Sadee
sumber