HATA 2002 (HY000): Yerel MySQL sunucusuna '/tmp/mysql.sock' soketi üzerinden bağlanamıyor


203

MySQL'i Mac OS X Mountain Lion'a yükledim homebrew install mysql, ancak denediğimde mysql -u rootaşağıdaki hatayı aldım:

HATA 2002 (HY000): Yerel MySQL sunucusuna '/tmp/mysql.sock' soketi üzerinden bağlanamıyor (2)

Bu hata ne anlama geliyor? Nasıl düzeltebilirim?


3
Bir cevap olarak yayınlamadı ama install mysql-serversadece paketlemek zorunda değil, sadecemysql
Hanky ​​Panky

3
@HankyPanky belki yazdığınızda doğruydu. Ama 2016 yılında Brew hiçbir vardır mysql-serveriçin install.
jjpe

22
Homebrew kullanarak kurduğunuza dikkat etmeniz önemlidir, bu nedenle homebrew olmayan ipuçlarını göz ardı edin ve ( brew services start mysqlveya bir arka plan hizmeti istemiyorsanız ) ile başlayın (ve başlangıçta yeniden başlatın ) mysql.server start.
Dave Everitt

1
Çalıştım ama eski normal mysql ile 5.7.19. Yeni mysql@5.7 sürümü 5.7.24, bazı yapılandırma referansı yeni demleme Cellar mysql@5.7 Keg yerine eski mysql ile bağlantılı tutulduğundan çalışamadı. Çok teşekkürler bunu daha sonra
deniyorum

1
Bu hatanın, brew upgradedaha önce kurulduğundan daha yeni bir mysql sürümünü yükleyecek şekilde çalıştırıldıktan sonra oluşması da muhtemeldir .
johnsampson

Yanıtlar:


113

Muhtemelen MySQL kurulu fakat henüz çalışmıyor.

Çalıştığını doğrulamak için Etkinlik İzleyicisi'ni açın ve "Tüm İşlemler" altında, "mysqld" işlemini gördüğünüzden emin olun.

"MySQL.prefPane" uygulamasını yükleyerek başlatabilirsiniz.

İşte bana yardımcı olan öğreticinin tamamı: http://obscuredclarity.blogspot.in/2009/08/install-mysql-on-mac-os-x.html


97
Sadece koştum mysqldve hepsi bu, sistemin bir tür sert sıfırlama / kapatma nedeniyle zayıf kapanma nedeniyle oluşan bir sorundu .
ProfNandaa

2
Önerilen yöntemlerin hiçbiri işe yaramadı. Benim için koşuyordu, ancak bir izin sorunu vardı. Koşu sudo chown -R _mysql:mysql /usr/local/var/mysql && sudo brew services restart mysql@5.7sorunu çözdü
FooBar

Etkinlik İzleyicisi'ne bakıldığında, mysqlId çalışıyor; Bu geçici çözüm için mysql durdurun ve yeniden başlatın.
JpersaudCodezit

109

mysqlTerminalinizdeki komutu kullanabilmek için MySQL'i başlatmanız gerekir . Bunu yapmak için çalıştırın brew services start mysql. Brew, varsayılan olarak MySQL veritabanını root şifresi olmadan kurar. Güvenli çalışmasını sağlamak için:mysql_secure_installation .

Connect vadede Kime: mysql -uroot. rootburadaki kullanıcı adıdır.


8
Koşu sudo chown -R _mysql:mysql /usr/local/var/mysql && sudo brew services restart mysql@5.7sorunu çözdü
FooBar

1
Merak edenler mysql_secure_installationiçin mariaDB'ye özgü bir betik.
T.Woody

3
brew services start mysqlbaşarısı. Ama mysql -urootpeşinden koştuğumda hala aynı hata.
Harper Koo

bir Mac her başlatıldığında veya bir kez hatadan kurtulmak / MySQL'i çalışır durumda tutmak veya başlangıçta başlamak için çalıştırmak gerekir mi?
Connor Leech

Bunu bir kez çalıştırmak yeterli olmalı.
Md Mazedul İslam Han

91

Bu, homebrew kurulumundan sonra oldu ve izin sorunları nedeniyle ortaya çıkıyor. Aşağıdaki komutlar sorunu çözdü.

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

sudo mysql.server start

2
@nirojan harikasın, kafamı duvara vuruyordum: thumsup:
Ravi Sharma

Güzel. Başka bir mac yönetici hesabına geçerken sorunumu çözebilirim :)
William Wong Garay

Milyonlarca kez teşekkürler. 5 saatten fazla süredir başımı çatlatıyorum. İnternette birden fazla cevap gördüm ve sadece bu yardımcı oldu.
ivange94

Seni seviyorum @nirojan
Rakun

Kudos! Ancak MacBook'umu yeniden başlattığımda da aynı sorun var.
Junior Gantin

46

Çalıştırmak: brew info mysql

Ve talimatları izleyin. Formüldeki açıklamadan:

Set up databases to run AS YOUR USER ACCOUNT with:
    unset TMPDIR
    mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

To set up base tables in another folder, or use a different user to run
mysqld, view the help for mysql_install_db:
    mysql_install_db --help

and view the MySQL documentation:
  * http://dev.mysql.com/doc/refman/5.5/en/mysql-install-db.html
  * http://dev.mysql.com/doc/refman/5.5/en/default-privileges.html

Bu yardımcı olur umarım.


35

Diğerlerinin de belirttiği gibi, bunun nedeni MySQL'in kurulu olması ancak hizmetin çalışmamasıdır. MySQL hizmetini başlatmanın birçok yolu vardır ve benim için işe yarayan şey aşağıdadır.

Hizmeti başlatmak için:

  1. "Sistem Tercihi" ne gidin
  2. Alt bölmede MySql simgesi olmalıdır.
  3. 'MySQL Sunucu Durumu'nu başlatmak için çift tıklayın ve' MySQL Sunucusunu Başlat 'düğmesine basın

Benim env:

Mac Yosemite 10.10.3

Kurulu Paket: /Volumes/mysql-advanced-5.6.24-osx10.8-x86_64


@HosMercury, MySQL'in kurulu olduğunu teyit edebilir
Ithar

Mysql'i resmi Mysql web sayfasından indirip yüklüyorum. Bu çözüm benim için çalışıyor. Teşekkürler :)
鄭元傑

1
Merhaba, resmi web sayfasından da mysql indirdim ve yükledim, ancak tercih bölmesinde sunucu etkinleştirilmedi (kırmızı nokta), 'sql server'ı başlat' ı tıkladığımda bir saniye için 'yeşil' ve tekrar kırmızıya dönüyor, hiçbir şey olmuyor. 'Chown' denedim, tmp / mysql.socket için symlink, kaldırma / yeniden yükleme, mysql kurulumunu yap, ama hepsi başarısız oldu. demlemek kurulum bana tatminsiz bir hata veriyor, Sierra veya daha yüksek işletim sistemi gerektiriyor. El capitan kullanıyorum. Herhangi bir yardım mutluluk duyacağız.
Spencer Trinh

24

Çözümler:

  • MySQL'in izinlerini değiştirme

    sudo chown -R _mysql:mysql /usr/local/var/mysql
  • MySQL işlemini başlatma

    sudo mysql.server start

Burada ve birçok farklı gönderiden sağlanan birçok harika ve kullanışlı yanıtı eklemek için , yukarıdaki komutlar bu sorunu sizin için çözmediyse ana bilgisayarı belirtmeyi deneyin , yani

mysql -u root -p h127.0.0.1

Benim için izin sorunu
pfwd

olması gereken: mysql -u root -p -h127.0.0.1
Duc Chi

Vay canına, tüm yerel eşyalarımı silmekten daha iyi bir çözüm. Bu hızlı bir düzeltme oldu!
Ürdün

Yukarıda denedim ama sonunda, bu çalıştı: sudo chown -R $ (whoami) $ (brew --prefix) / *
Kiran Ruth R

15

Uyarı - bu yöntem /usr/local/var/mysqlklasördeki tüm veritabanlarınızı kaldıracak

Homebrew ile yüklü MySQL vardı ve bunu benim için düzelten tek şey MySQL'i yeniden kurmaktı.

Şirket dizüstü bilgisayarımda, MySQL'i Homebrew aracılığıyla bilgisayarımdan kaldırma iznim yoktu:

$ brew uninstall mysql --ignore-dependencies
Uninstalling /usr/local/Cellar/mysql/8.0.12... (255 files, 233.0MB)
Error: Permission denied @ dir_s_rmdir - /usr/local/Cellar/mysql/8.0.12

Bunun yerine, MySQL'i manuel olarak kaldırdım ve yeniden kurdum:

$ sudo rm -rf /usr/local/Cellar/mysql
$ brew cleanup
$ sudo rm -rf /usr/local/var/mysql
$ brew install mysql

Ve bu işe yaradı!


Uyarı - bu yöntem tüm veritabanlarınızı kaldırır (/ usr / local / var / mysql klasöründe).
johnsampson

13

Aşağıda brew install mysql, bu sorunla ilgili daha yeni aramaların yararlanabilmesi için en son talimatları ekliyorum:

$ brew install mysql
==> Downloading https://homebrew.bintray.com/bottles/mysql-5.6.26.yosemite.bottle.1.tar.gz
######################################################################## 100.0%
==> Pouring mysql-5.6.26.yosemite.bottle.1.tar.gz

To connect:
    mysql -uroot

To have launchd start mysql at login:
  ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
Then to load mysql now:
  launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Or, if you don't want/need launchctl, you can just run:
  mysql.server start

Benim durumumda şimdi mysql yükledim launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plistve daha sonra başlatmak $ mysqlve yolda olmak mümkün .

Umarım bu son sorun gidericilere yardımcı olur!


11

Görünüşe göre mysql sunucunuz başlatılmadı. Genellikle stop komutunu çalıştırıp tekrar başlatırım:

mysqld stop
mysql.server start

Aynı hata ve bu benim için çalışıyor.


9

Bu mysql hizmetini yeniden başlattığımda sorunumu çözdü. Sadece koş:

brew services start mysql

8

/usr/local/var/mysqlklasör erişimi ile ilgili bu sorun , bu klasörü kaldırmak ve mysql yeniden yükleyin.

  1. demlemek ile mysql kaldırmak:

    brew uninstall mysql

  2. sudo rm -r /usr/local/var/mysql

  3. brew install mysql@8.0
  4. mysql -u root

Bu çözüm benim için iyi çalışıyor! ANCAK TÜM VERİTABANLARINIZI KAYIP OLUN! UYARI!


2
Bu, büyük olasılıkla sorunu çözecektir, ancak gelecekteki okuyucular için, bunun tüm veritabanlarınızı sileceği konusunda uyarılmalıdır. Temelde MySQL'in yeniden yüklenmesi. Sorunun bağlamının yeni bir kurulum olduğunu biliyorum, ancak tarama yapan bazı insanlar, mevcut bir / üretim kurulumunda neden olabileceği zararı bilmeden bunu deneyebilirler.
efru

1
Bu aslında bir çözüm değil. "Tekrar açıp kapatmayı denediniz mi?"
Berry M.

6

Ough, anlaması biraz zaman aldı. Bir yorumda gördüm. Demlemek kullanarak mysql yükledikten ve hizmeti (belki de kullanarak sudo brew services start mysql) başlattıktan sonra çalıştırın:

$ mysqld

Ve bundan sonra MySQL çalışıyor olmalıdır.


5

Benim için koşmak basitti:

/usr/local/opt/mysql/bin/mysqld_safe

onun yerine mysqld


1
Bu benim için çalıştı. Neden olduğundan emin değilim, ancak
makinemdeki

3

Sorunuma çözüm buldum. Gerçekten de MySQL sunucum çalışmıyordu.

Bu, MySQL'in makineme doğru bir şekilde ayarlanmamasından, dolayısıyla çalışamamasından kaynaklandı.

Bunu düzeltmek için Mac OSX Mountain Lion'a MySQL yükleyen bir komut dosyası kullandım eksik dosyaları yüklemesi gereken .

Bağlantı: http://code.macminivault.com/

Önemli Not: Bu komut dosyası, kök parolayı Masaüstünde kaydettiği rastgele oluşturulan bir dize olarak ayarlar, bu nedenle bu dosyayı silmemeye ve parolayı not etmeye dikkat edin. Ayrıca MySQL yöneticisini sistem tercihlerinize yükler. Mevcut veritabanlarını kaldırıp kaldırmayacağından da emin değilim, bu yüzden dikkatli olun.


3

Benim durumumda bu sadece bir kilit dosyasını silmek meselesiydi.

sudo rm -f /tmp/mysql.sock.lock

3

Bu sorunu yaşadım ve aşağıdaki çözümü kullanarak mysql sunucusunu çalıştırmayı başardım

MySQL'i .dmg( https://dev.mysql.com/downloads/mysql/5.7.html ) ile yükleyin , sistem tercihlerinde mysql hizmet panelini alacaksınız, ardından mysql'yi panelden başlatacak ve deneyin

mysql -u root -p

Referans için eklenen resimler

Sistem Tercihleri

MySQL paneli


2

Birkaç saat boyunca üzerinde çalıştıktan sonra benim için ne çalıştı / etc / mysql / gidin ve my.cnf dosyasını düzenleyin. Aşağıdakileri ekleyin

[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock

1
Bu benim için de hile yaptı, benim os / mysql sürümü için: /etc/my.conf ve soket /var/lib/mysql/mysql.sock /var/log/mysqld.log soket dosyasının bulunduğu yere.
keithpjolley

1

Ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock gibi bu sorunu çözmek için mümkün olan her yolu denedim, mysql'i kaldırın ve yeniden yükleyin, mysql'in xampp üzerinde çalıştığından emin olun, ancak hiçbiri hala çalışmıyor .

Son olarak, my.cnf (config dosyası) 'nı açtım ve soket yolunu kopyaladım (çalışmadığı tam yolu kopyaladığınızdan emin olun). Sonra bu komutu terminalimde gerçekleştiriyorum

mysql --socket=/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock

Bakın, mysql fırlatır.

Bu çözüm yalnızca MySQL'iniz Xampp / Ampps üzerinde çalışıyorsa gösterilecektir, ancak terminalde zaten aşağıdaki gibi bir şey denediğinizde doğru sokete bağlanmıyor:

./mysql -u root

veya

brew services start mysql

Umarım bu yardımcı olur!


Ayrıca bu yazıdan önerilen her çözümü denedim ve işe yaramadı. Kurulu xampp'a ihtiyacınız var mı? Buna aşina değilim. Yalnızca resmi web sitesinden (.DMG) mysql sunucusu GPL sürümünü yükledim. XAMPP - Ben bu app var inanmıyorum. Lütfen biraz açıklayabilir misiniz? Teşekkürler.
Spencer Trinh

1

sadece bu benim için hile yaptı brew services start --all (tüm cevapları denedikten sonra)


2
Soruyla nasıl ilişkili olduğunu açıklayın.
mentallurg

1

Koşmanı tavsiye ederim

  mysql.server start

gitmeden önce

  mysql -u root -p

oturum açmayı denemeden önce mysql sunucusunun çalıştığından emin olmak için

Bu, mysql sunucusunun çalışmadığı bir makineyi başlattığınız / yeniden başlattığınız birçok kez olur.


1

Bu gönderiye geri dönmeye devam ediyorum, bu hatayla birkaç kez karşılaştım. Yeni bir yükleme yaptıktan sonra tüm veritabanlarımı içe aktarmakla ilgili olabilir.

Homebrew kullanıyorum. Benim için düzeltmek için kullanılan tek şey:

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

Bu sabah, makinem bir gece kapanmaya karar verdikten sonra geri döndü. Şimdi düzelten tek şey mysql yükseltmek oldu.

brew upgrade mysql

0

Benim durumumda terminalden mysql erişim MAMP yükledikten hemen sonra aynı yuva hatası veriyordu. Sonunda tek istediği bir yeniden başlatma oldu ve çalışıyor.


0

Burada başka birçok yararlı yanıt var, ama hiçbir şey bunu benim için düzeltmedi. Nihayetinde bu sitede bulduğum hiçbir şey veya başkaları benim için çalışan Homebrew MySQL herhangi bir sürümünü alacaktı.

DMG'yi https://dev.mysql.com/downloads/file/?id=479114 adresinden (ihtiyacınız olan uygun sürümü bulun) indirmek ve sihirbazın benim için yüklemesine izin vermek çok acı vericiydi . Diğer tek manuel adım /usr/local/mysql/binPATH'ımı eklemektir .

Demlemek size sorun çıkarsa bu seçeneği tavsiye ederim.

Güncelleme - bu hala çözülmezse, DMG aracılığıyla yüklemeden önce mysql'yi tamamen boşaltmayı deneyin. Şu talimatları izleyin: https://gist.github.com/vitorbritto/0555879fe4414d18569d


Ben de DMG dosyası üzerinden yüklü, ama yine de bu soket hatası alıyorum. mysql --version benim için çalışıyor ve --help, ama başka bir şey değil. --Version ve --help komutlarının çalışmasını sağlamak için yola ekledim. biraz tavsiye verebilir misin Teşekkürler.
Spencer Trinh

Önce mysql temizleme hakkındaki güncellemeye bakın. Bu, kendim ve birkaç iş arkadaşım için düzeltildi.
Patrick

0

Bunu dene

rm -rf /usr/local/var/mysql && brew postinstall mysql@5.7 && brew services restart mysql@5.7

0

Catalina işletim sistemine geçtikten sonra benzer bir sorunla karşılaştık. Mysqld komutunu çalıştırdıktan sonra günlük dosyasında bir sorun olduğunu gördüm. Başkaları için farklı olabilir.

$ mysqld

Sorun şuydu:

2019-10-16T04:58:59.174474Z 0 [ERROR] Could not open file '/var/log/mysql/error.log' for error logging: No such file or directory
2019-10-16T04:58:59.174508Z 0 [ERROR] Aborting

Oluşturup uygun izinleri uygulayarak çözüldü.

sudo mkdir -p /var/log/mysql
sudo touch /var/log/mysql/error.log
sudo chown -R _mysql:mysql /var/log/mysql/

MySQL'i yeniden başlat

brew services restart mysql@5.7

Sorun çözüldü.

mysql -uroot -proot

0

Birçok çözüm denedikten sonra, nihayet hile yapan IP ile bağlantı kurmak gibi görünüyor. Artık dosya yuvaları rasgele silinmiyor.

MySQL istemci yapılandırmanızı (ör. /usr/local/etc/my.cnf) Aşağıdakilerle güncelleyin :

[client]
port = 3306
host=127.0.0.1
protocol=tcp

-4
  1. MySQL'i kaldırın.
  2. Kaldır /usr/local/var/mysql/.
  3. MySQL'i yükleyin.

1
Bu, sahip olabileceğiniz tüm veritabanlarını uçurmayacak mı? Özellikle MySQL'in çalışmadığı bir sorun olduğu düşünüldüğünde bana oldukça ağır bir çözüm gibi görünüyor.
Martin Tournoij

evet olacak, ama soruya göre, bu taze bir kurulum ve bu nedenle herhangi bir veritabanının ot olacağı varsayımı oldu.
Amod Kulkarni
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.