Brew aracılığıyla MySQL kurulumundan sonra, hatayı alıyorum - Sunucu, PID dosyasını güncellemeden kapanıyor


88

Tamam, her yerde aradım ve zamanımın çoğunu çeşitli seçenekleri yükleyerek, kaldırarak, denedim ama başarılı olamadım.

Mac OS X Lion (10.7.3) kullanıyorum ve bir Python, MySQL kurmaya çalışıyorum.

Python ve MySQL'i HomeBrew aracılığıyla başarıyla kurdum. Python harika çalışıyor.

MySQL Kurulumundan sonra, ilk 2 adımı - unset ve mysql_install_dbkomutları takip ettim .

Şimdi mysql "mysql.server start" ı başlatmaya çalıştığımda aşağıdaki hatayı alıyorum

ERROR! The server quit without updating PID file (/usr/local/var/mysql/Brajeshwar.local.pid).
  • Brajeshwar makinemdeki kullanıcı adım.

Yanıtlar:


81

DÜZENLEME 2012/09/18: Kane tarafından belirtildiği gibi , mysqlbaşka bir şey yapmadan önce veritabanının doğru şekilde kurulduğundan emin olun . " Mysql.server başlangıcında PID hatası mı? " daha fazla bilgi için.

Orijinal cevap uğruna tarihin tuttu: Büyük ihtimalle olan bir izin sorunu. Kontrol edin /usr/local/var/mysql/*.err. Benimki şöyle dedi:

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

Bunu da yapmak zorundaydım:

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

65
Sorunu sudo chown -R _mysql:_mysql /usr/local/var/mysql
çözdüm

1
Aynı hatayı alıyorum, ancak / usr / local / var / mysql klasörüm yok :( Ayrıca homebrew kullanıyorum.
Nathan Bashaw

2
Doğru çözüm için bu soruyabrew info mysql veya yorumlara bakın
Kane

4
sudo chmod ugo + w / tmp benim çözümümdü.
TR3B

2
benimki sudo chown -R {my_user_name} ile çözüldü: admin / usr / local / var / mysql55 /
Packet Tracer

101

mysqlKlasörle ilgili bir izin sorunu olduğunu buldum .

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

benim için çözdü.


18
Bu 777 yapmak için gerek yoktur
JamesHalsall

2
Ben de uzun süredir arıyordum ve bu benim için sorunu çözdü.
ısırıldı

6
Lütfen bir üretim ortamında 777 olarak herhangi bir ayar önermediğimi unutmayın. Bunun yalnızca yerel kurulumda olması gerekir. Ayrıca minimum olarak 755'e geri döndürürdüm.
mikoop

1
Mysql başlangıcında hata görürseniz Uyarı: Herkes tarafından yazılabilir yapılandırma dosyası '/var/lib/mysql/none-dev/my.cnf' yok sayılır O zaman muhtemelen chmod ow / var / lib / mysql / none- dev / my.cnf
David Mann

1
benimki sudo chown -R {my_user_name} ile çözüldü: admin / usr / local / var / mysql55 /
Packet Tracer

65

Sonunda mysql'i tamamen yeniden yükledim ve sonunda işe yaradı.

UYARI Bu, tüm veritabanlarınızı kaldıracaktır, bu nedenle önce dökümleri kaydettiğinizden emin olun.

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
Başarı olmadan mümkün olan her şekilde izinleri değiştirmeyi denedim. Bu talimatları izleyerek sona erdi ve ... başarı :)
kartsims

Bulduğum TEK çözüm bu. Bu bir numara olmalı
Dan

Teşekkürler, benim için işe yarayan tek şey bu. mysqld --initialize --explicit_defaults_for_timestamp
Derin

1
MySQL başlatılıyor ... HATA! Sunucu, PID dosyasını (<path> -.lightspeed.irvnca.sbcglobal.net.pid) güncellemeden çıktı. Bu hatayı alıyorum
Unnikrishnan

1
Sadece homebrew sorunu
McGrady

31

Mac 10.10.5 Yosemite'de bu sorunu yaşadım

Bunu çözmek için ne yaptım

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


Şerefe! Bu yol en basit ve günümü kurtardı!
iplus26

Mükemmel, günümü kurtardın;)
Emy Stats

İç çekmek. İnternetteki her çözümü 2 saat boyunca denedikten sonra, nihayet çözen şey buydu! Eski güzel bir yeniden başlatma! :)
SexyBeast

18

Kasım 2014: Bu hatayı Mac OS X Mavericks veya Yosemite üzerinde MySQL 5.6.x üzerinde alıyorsanız ve MySQL'i PHP ile yerel olarak kullanmak istiyorsanız (/tmp/mysql.sock, PHP PDO'nun sock dosyasını bulmayı beklediği yerdir), işte benim için düzelten şey:

1) Varsayılan homebrew yapılandırma dosyası satırlarının açıklamasını kaldırın ve aşağıdaki gibi düzenleyin

$ 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, ağdaki bilgisayarınız için benzersiz kimlik olarak Sistem Tercihleri ​​-> Ağınızda bulunan şeydir.

2) mysql datadir içindeki tüm dosyalar için izinleri ayarlayın. Bunların hepsi [kullanıcı_adım] 'a aitti. MySQL bu konuda çok seçicidir ve dizinin sahibi (_mysql kullanıcısı) olmadığı sürece pid dosyasını oluşturmayı reddeder.

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

3) bash yardımcı / sarmalayıcı komut dosyasını kullanarak MySQL'i başlatın:

$ sudo mysql.server start
Starting MySQL
. SUCCESS! 

Umarım yardımcı olur. Yukarıdakiler sizin için işe yaramazsa, mysqld_safe ikili dosyasını Cellar / mysql / VERSION_ / bin / dizininde manuel olarak çalıştırmayı deneyin ve ayarların ne olduğunu kontrol edin (çalışırsa)

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

Eğer bu çalışırsa, yapabilirsin

ps aux | grep mysql 

ve şöyle bir şey gör

[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

Bunun neden benim için işe yaradığından emin değilim ama size my.cnf yapılandırma dosyası seçeneklerini nereden aldığımı gösteriyor. Ayrıca mysqld'yi manuel olarak başlatırken sorun gidermeyi denemek için komut satırı seçeneklerini de kullanabilirsiniz.

Mysqld_safe kullanarak MySQL sunucusunu çalıştırmayı çalıştırırsanız, mysql.server bash yardımcısını denemeden önce onu kapatmak için bunu yapmanız gerekebilir. Verilerinizi bozabileceğiniz için -9 [PID] 'yi sonlandırma dürtüsüne direnin.

mysqladmin -uroot shutdown

İyi şanslar!


teşekkürler - benimki sudo chown -R {my_user_name} ile çözüldü: admin / usr / local / var / mysql55 /
Packet Tracer

18

OS X El Capitan'da da aynı sorunu yaşadım, işte benim için düzelten terminal komut dizisi.

Hata dosyalarını silin (kurulumunuza bağlı olarak yolu değiştirmeniz gerekir)

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

Hala çalışan mysql işleminin bilgilerini bulun ve sonlandırın:

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

Şimdi MySQL'i yeniden başlatın:

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

10

Bu benim için çalıştı:

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

Bu, MAC os 10.11.3'teki sorunumu çözdü (modu mysql dizininin 777'sine değiştirdikten sonra)
Ratha

Bu, Oku Yazma Yürütme veya bu klasörün tüm kullanıcılara ve (-R) bu klasör altındaki tüm dosya ve klasörlere tam haklar olduğu anlamına gelir. Ayrıntılı açıklama için lütfen aşağıdaki bağlantıya bir göz atın: linux.com/learn/understanding-linux-file-permissions
Kresimir Plese

4

Bu benim için 10.12.2'de çalıştı:

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

sonra

$ brew services restart mysql

3

Doğru hatırlıyorsam, bu bir izin sorunudur. Pid dosyasına veya dosyanın tutulduğu klasöre 'dokunmayı' ve 'chmod'u' deneyin.


Hayır! Sorunu çözüp çözmediğini görmek için chmod 777'yi bile denedim. Aynı HATA.
Brajeshwar

Mysql dizinini 777 chmod yapmayı ve pid dosyasını silmeyi ve MySQL'i yeniden başlatmayı denediniz mi?
LonnyLot

3

Sorunum, sunucuyu bir kez sudo olarak başlatmam ve ardından yerel bir kullanıcı olarak yeniden başlatmaya çalışmamdı.

Burada mysql, kökün sahip olduğu '.err' dosyasına yazamadı. Bu dosyayı kaldırmam ve sunucuyu yeniden başlatmam gerekiyordu:

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

2

Mac'te MySQL ile benzer bir sorun yaşıyorum (Mac Os X MySQL Sunucusu başlatılamıyor. Neden: 255 ve ayrıca “HATA! PID dosyasını güncellemeden sunucu çıkılıyor”). Uzun bir deneme yanılma sürecinden sonra, nihayet dosya izinlerini geri yüklemek için sadece şunu yaptım:

Disk Utilities.app'i başlatın
sol panelde sürücümü seçin
"Disk izinlerini onar" düğmesine tıklayın

Bu hile yaptı benim için. Bunun başka birine yardımcı olabileceğini umuyorum.


1

Benim için çalıştı:

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

1

Benim için işe yarayan şuydu:

  1. Mysql kurulum dizininize gidin
  2. sudo chmod -R 777 data
  3. Sonra bir dizine geri dönün
  4. cd support-files/
  5. sudo ./mysql.server start

Bundan sonra sunucu çalışmaya başladı.

Ancak bu yöntemle ilgili sorun şu ki, mysql'i şimdi başlatmak istediğim her seferde bunu tekrar etmem gerekiyor. Neden birdenbire böyle davranmaya başladığını bilmiyorum.


1

Usr / local / var / mysql / your_computer_name.local.err dosyasını bulun ve hata hakkında daha fazla bilgi edinin

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

Muhtemelen izinlerle ilgili bir sorun

  1. Mysql'in çalışıp çalışmadığını bulun ve öldürün

ps -ef | grep mysql

öldür -9 PID

burada PID ikinci sütun değeridir 2. mysql'nin sahipliğini kontrol edin

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

Bunu deneyin (OSX)

Aşama 1: ps -aux | grep mysql

Sonra 4 basamaklı PID numarasını öldürün

Adım 2: kill 1965

Aşama 3: mysql.server start

Ya da bu PID numaralarını bulmakta zorlanıyorsanız, aşağıda bunu deneyin

Adım 1 tekrar: ps -aux | grep mysql

Adım 2 tekrar: killall

3. Adım tekrar: mysql.server start


1

Eğer 8.x için MySQL kurulumunu artırdıysanız önceki sürümü için desteklenen olup olmadığını kontrol edin upgradation .

Değilse, mysql çalışmayacaktır! Mysql'inizi içindeki tüm yapılandırma dosyalarıyla birlikte kaldırın./usr/local/var/mysql kaldırın (tüm klasörü kaldırın). Mysql'yi yeniden yükleyin.

NOT: yeniden yükleme, veri kaybına neden olabilir.


1

Lütfen günlüğü kontrol edin, daha detaylı bilgi alacaksınız.

Hata günlüğünü takip etmek için aşağıdaki komutu kullanın

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

Benim için, dizinlerden biri eksik, bir kez oluşturulduktan sonra sunucu başladı.


1

Ana fikir, .err dosyasını kontrol etmektir, varsayılan olarak içinde bulunduğu Mac OSX'te /usr/local/var/mysql .

Dosyalanan günlük bana aşağıdaki dosyaları silmem gerektiğini gösterdi:

ibdata1
ib_logfile0
ib_logfile1

MySQL'i çalıştırmak mysql.startbundan sonra başarıyla çalıştı. Bu dosyaları silmenin muhtemelen veri kaybına neden olacağını unutmayın.


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

benim için çalışıyor.


0

Ben de aynı sorunu yaşadım:

Ama her girmeye çalıştığımda durum şuydu:

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

hatada belirtilenin localhost.pidyerine adlı bir dosya oluşturulur iMax0.local.pid:

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

Benim için çalışan çözüm, localhost.pidonu kopyalayıp olarak yeniden adlandırmaktı iMax0.local.pid.


0

OSX El Capitan'daki çözümüm şuydu:

sudo chmod ugo+w /tmp

Aniden kırıldı.

Hata şuydu:

ERROR! The server quit without updating PID file

ve günlük gösterdi:

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

Ayrıca OSX altında my.cnfvarsayılan olarak dosya bulunmadığını ve bilmediğim varsayılan olarak gerekli olmadığını belirtmek de yararlı olabilir . İyi şanslar!



0

Ben de benzer bir sorun yaşadım. Ancak aşağıdaki komutlar beni kurtardı.

cd /usr/local/Cellar
sudo chown _mysql mysql

0

Bu dosya izin sorunudur. Disk izinlerini kontrol edin ve onarın.

Osx => Cmd + Space => Disk Utilty => Disk İzinlerini Doğrulayın.

Onarım Diski İzinlerinden sonra tamamlandığını doğrulayın. mysql.server start komutu başarıyla çalıştı.


Bu benim için çalıştı. Lütfen başka bir şey yapmadan önce bunu deneyin.
kamlesh

0

Cevapların hiçbiri benim için işe yaramadı. Ancak, basitçe yaptımsudo mysql.server start ve iyi çalıştı.

Ayrıca benim için * .err dosyasında izin sorunu GÖSTERMEDİ.


0

Linux'ta bu sorunu yaşadım, ancak nedeni herhangi bir mysql kurulumuyla ilgilidir. Benim durumumda, başlangıç ​​tamamlanmadan sunucu çöküyordu ve pid dosyası güncellendi. Hata mesajları "service mysql start" yerine doğrudan mysqld başlatılırken görüldü.

Benim durumumda neden, günlük dosyalarının bulunduğu bölümün dolu olmasıydı. Günlük dosyalarının kaldırılması mysql'nin yeniden başlamasına izin verdi. Bu sorunu test etmek için, mysql etkinlik günlüklerinizin konumuna gidin ve yapın df ..


0

Yukarıdaki tüm çözümler benim için çalışmıyor. ama bana bu hatayı düzeltmek için bazı ipuçları veriyorlar.

mysql.server start ---- hatası Sunucu, PID dosyasını güncellemeden kapandı

Macbook mojave'ime homebrew ile mysql@5.7 yükledim

demlemek mysql@5.7 yükleyin

/usr/local/var/mysql/IU.lan.err'de bulunan mysql hata günlüğü, içinde bir satır var: Ayrıcalık tablolarını açamıyor ve kilitleyemiyor: 'mysql.user' tablosu mevcut değil

Goole arama motorunda birçok gönderi denedikten sonra, bu yazıdan esinlenerek baidu https://blog.csdn.net/xhool/article/details/52398042 adresine döndüm, çözümü buldum:

rm / usr / local / var / mysql / *

mysqld --initialize

bash'da root kullanıcısı için rastgele bir şifre gösterilecektir. ancak mysql -uroot -p [theRandomPassword] komutu çalışamaz. bu yüzden şifreyi sıfırlamam gerekiyor. bunun gibi içeriğe sahip bir başlangıç ​​dosyası oluştur

'Root' @ 'localhost' = PAROLA ('MyNewPass');

Masaüstü gibi bulması kolay herhangi bir dizine yerleştirin

mysqld --init-file = [YourInitFile] &

ekranınıza yazdırılan birçok günlük.

mysql -uroot -pMyNewPass

yüksek sürüm mysql'inizin tadını çıkarın!


0

Benim başıma geldi çünkü aslında MariaDB'den Mysql'e geçiyordum. MariaDB'ye geri dönmek bunu çözdü.

Mevcut veri tabanının uyumlu olmadığını tahmin ediyorum.


Bu da benim sorunumdu, MariaDB'den MySQL'e geçiyordum. Ancak MariaDB'ye geri dönmek kabul edilebilir bir çözüm değildi. Yeni mysql'yi kaldırdım, brew uninstall mysql@8.0ardından MariaDB tarafından oluşturulan eski mysql klasörünü sildim sudo rm -rf /usr/local/var/mysql(bu, veritabanlarınızı açıkça silecektir). Sonra brew install mysql@8.0ve mysql.server startişe yarıyor.
antriver

0

Bunu sudo chown -R _mysql:_mysql /usr/local/var/mysql Matteo Alessani sayesinde çözdüm


0

Bu hata aslında mysql başlatıldığı için gösteriliyor olabilir. Mevcut durumu şu şekilde görmeye çalışın:

mysql.server status

Bunu her zaman günlük dosyalarını silerek çözdüm, ancak psaslında mysql işlemlerini gösterdim. Her şeyi öldürdüm yeniden koştu mysql.server restartve işe yaradı!
EAT
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.