Yerel MySQL sunucusuna '/tmp/mysql.sock' soketi ile bağlanamıyor (2)


143

MySQL sunucusunu yükledim ve ona bağlanmaya çalışıyorum, ancak hatayı alıyorum:

    Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

/ Tmp dizinimi kontrol ettim ve mysql.sock yok. Hiçbir yerde mysql.sock bulamıyorum. İçinde olabileceğini okudum

    /var/lib/mysql/mysql.sock

Ama ben de orada kontrol ve hatta mysql dizini, / lib içinde sadece bazı postfix şey yok. Birisi bana bu problemde yardımcı olabilir mi?


2
Mac OS X üzerinde çalışıyorum
user3344382

Merhaba, bağlanmak için kullandığınız komutu yapıştırabilir misiniz? Ayrıca MySQL'i başlattınız mı?
Mark Butler

@MarkButler Bu komutu kullanıyorum: / usr / local / mysql / bin / mysql
user3344382

doğru, sadece sunucu çalışmıyor. Ancak, hala mysql.sock nerede olduğunu anlayamıyorum, ikamet edebileceği başka gizli yerler olabilir mi?
user3344382

Bu hata çok geneldir ve çeşitli nedenlerle olabilir. Düzgün bir özet için buraya bakın: medium.com/@7anac/…
Janac Meena

Yanıtlar:


272

MySQL sunucusunu başlatmayı deneyin:

mysql.server start


45
HATA! Sunucu PID dosyasını güncellemeden çıkıldı
bastianwegge


mysql hizmetlerini başlatmayı unuttum!
GeekHades

1
@bastianwegge /usr/local/var/mysql/USERNAME.local.err hata dosyasını kontrol etmeyi deneyin Benim durumumda /tmp/mysql.sock silmek ve sonra kullanarak yeniden başlatmak zorundamysql.server start
Josh Bradley

61

OS X Yosemite'i güncelledikten sonra aynı soruyu aldım, çözüm oldukça basit, sistem tercihini kontrol edin -> mysql, durum DURDUR. Sadece yeniden başlatın ve şimdi mac'imde iyi çalışıyor.


1
Teşekkürler bir ton @keren çok basit, ben tüm zaman bu tek sorun oldu benim my.cnf dosya ayarları değiştirme iyi 45 dakika boşa.
kandroidj

Benim için de çalıştım teşekkürler, DMG kurulumu konusunda fikir sahibi değildi.
Rameshwar Vyevhare

Bu ne yazık ki bana yardımcı olmadı
simhumileco

Basit ve harika!
Desmond DAI

6
Ne? OSX'in Sistem Tercihleri'nde neden MySQL seçeneği var?
AlxVallejo

45

MAMP için

ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock

Gönderen https://coderwall.com/p/w5kwzw/solved-can-t-connect-to-local-mysql-server-through-socket-tmp-mysql-sock

GÜNCELLEME: Bilgisayarım her yeniden başladığında bu komutu girmek zorundayım, bu yüzden bir kısayol oluşturdum.

Terminal tipinde aşağıdakileri yapın:

~: vi ~/.profile

Ekle

alias ...='source ~/.profile'
alias sockit='sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock'

Kayıt etmek.

Terminal tipinde:

~: ... .profile config kaynak için.

Şimdi terminalde yazabilirsiniz

~: sockit

1
Muhteşem. Sadece aradığım düzeltme.
JoshHighland

1
Bu gönderiye birçok kez geri döndüm ve her zaman işe yarıyor.
Trey Copeland

MAMP dışında mysql 5.7.1'e yükseltildi ve hata ile karşılaştı. Bu benim için düzeltildi
David

Bir mac kitabındaysanız ve MAMP
görürseniz,

32

Aşağıdaki komut sorunumu çözdü:

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

sudo mysql.server start

1
3 saat aradıktan sonra bu sorunumu çözdü. Ben sadece homebrew aracılığıyla mysql yükledim brew install mysqlama homebrew düzgün çalışması için bana söyledi komutları hiçbir şey. Bu, her sorunun ortadan kalkmasını sağladı ... Teşekkürler !! Yazdığınız ilk satır tam olarak nedir? Bu ne demek?
mesqueeb

Teşekkürler, iyi çalışıyor!
Nirojan Selvanathan

1
Hey benim için: sudo chown -R _mysql: mysql / usr / local / mysql / data
Junaid Bhura

chown -R sahibini değiştir -R özyineli olarak
Hos Mercury

Bozulmamış bir 10.13.1 ve homebrew mariadb (10.2.10) kurarken bu hatayı verdi. Bu sahip değişikliği düzeltildi, bu yüzden şimdi sudo brew services start mariadbaynı zamanda açılışta mariadb başlatmak için çalışıyor (sadece girişte değil). YAŞASIN! Teşekkür ederim!
iggie

16

Tüm çözümleri denedikten sonra, ev sahibini belirledikten sonra sadece benim için çalıştı

mysql -u root -p -h127.0.0.1

şifre isterken

Enter password:

Enter tuşuna basın

ve her şey yukarıdaki gibi tamamsa çalışır.


2
Mac için Docker kullanarak mysql'i bir docker konteyneri ile ayarladım ve 3306 bağlantı noktasını Mac'e eşledim. Eklemeden -h 127.0.0.1, her zaman sorulur Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2); argümanı ekledikten sonra iyi çalışıyor.
Evi Song

1
Bunun nedeni 127.0.0.1'den geçmenin soketi kullanmamasıdır. Daha dar bir çözüm.
Lucas Morgan

1
Koşu mysql -u root -h127.0.0.1 olmadan -pben yüklendiğinde MySQL koştum asla beri bayrak, benim için çalıştı mysql_secure_installationkomutu. Anladığım kadarıyla, bu durumda kurulum varsayılan olarak gerekli bir parolaya sahip değildir.
Richie Thomas

1
Bir cazibe gibi çalıştı!
Panduka DeSilva

10

Saatlerce uğraştıktan sonra işe yarayan tek şey

sudo mysql.server start

Ardından,

mysql_secure_installation 

Sonra üzerinden db'ye bağlanın

mysql -uroot -p

Mysql homebrew ile yüklenir ve sürüm

Server version: 5.7.21 Homebrew

Sürümün belirlenmesi, çözüm sürüme bağlı olarak farklı olabileceğinden yardımcı olabilir.


9

Mysql config dosyanızda /etc/my.cnfbulunan aşağıdaki değişiklikleri yapın ve ardından mysqlddameon işlemini yeniden başlatın

[client]
socket=/var/lib/mysql/mysql.sock

Ayrıca bu ilgili konuyu kontrol edin

Yerel MySQL sunucusuna '/tmp/mysql.sock soketi üzerinden bağlanamıyor


/ etc dizininde my.cnf dosyası yok. Ben bu dosyayı el ile oluşturabilirsiniz düşünüyorum, ama dediğim gibi / var / lib hiçbir mysql dizini, nasıl soket orada olabilir?
user3344382

Gönderdiğim ilgili iş parçacığını ve mysql sunucunuzun gerçekten çalışıp çalışmadığını kontrol edin.
Rahul

Dosyayı buldum/etc/mysql/my.cnf
Devon

demleme ile kurduysanız /tmp/mysql.sockçorap yeri olarak kullanmanız gerekir
Mark Shust M.academy'de

8

Aşağıdaki sorunumu çözdü:

MySQL sunucunuzun nerede listelendiğini kontrol edin: netstat -nlp TCP listeliyorsa, "localhost" yerine DB'ye bağlanırken 127.0.0.1 kullanın

MySQL belgesini buradan kontrol edin


Bu benim için çalışıyor gibi görünüyor ve mysql canlı olduğunu kanıtlıyor ama neden yerel sokete bağlanamıyorum?
Colin D

8

Benim için çalıştı bunu deneyin.

sudo /usr/local/mysql/support-files/mysql.server başlatma


Neden bu yol? çıkış /usr/local/mysql/bin/ veren "mysql nerede" komutunu (MAC OS) kullanırken. Mac'te bu yol nasıl belirlenir?
Vineeth Bhaskaran

Ya, Yol buna göre değişiyor
vasanth vasu

4

Mac OS X'te XAMPP kullanıyorsanız ve MySQL'i Homebrew ile yüklediyseniz bu sorunla karşılaşabilirsiniz. XAMPP yöneticisi penceresinde Sunucuları Yönet'e gidin ve MySQL'i seçin, ardından yapılandır'a tıklayın ve yapılandırma dosyasını açın, soket dosya yoluna sahipsiniz, yolu MySQL ana bilgisayar yapılandırmanıza koyun ve çalışması gerekir.

Bunun gibi bir şey:

...
[client]
#password   = your_password
port        = 3306
socket      = /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
...

örneğin, örneğin Django'da:

...    
DATABASES = {
        "default": {
            "ENGINE": "django.db.backends.mysql",
            "NAME": "database_name",
            "USER": "user",
            "PASSWORD": "password",
            "HOST": "/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock",
            "PORT": "",
        }
    }
...

Bu yardımcı olur umarım.


3

İlk olarak, veri dizininin benim için nerede olduğunu bilmek anahtardı. /usr/local/var/mysql Burada, .err uzantılı yerel makine adımdan önce gelen en az bir dosya vardı. Teşhis için gerekli tüm bilgiler vardı.

Ben ilk önce mysql 8 yükleyerek berbat düşünüyorum. Uygulamam onunla uyumlu değil, bu yüzden 5.7'ye geri dönmek zorunda kaldım

Benim için çalışan çözümüm /usr/local/etc/my.cnf adresine gidiyordu

Orada ise bu satırı bulun. Ben onun mysql 8 ile ilgili düşünüyorum:

mysqlx-bind-address = 127.0.0.1 

Bunu kaldırın çünkü mysql 5.7 hata günlüğünde beğenmediğini söylüyor

Ayrıca bağlama adresinin altında değilse bu satırı buraya ekleyin.

socket=/tmp/mysql.sock

/tmpDizine gidin ve içindeki mysql.sock dosyalarını silin. Sunucu başlangıcında, çorap dosyalarını yeniden oluşturur

Veri dizinini mySQL ile durdurulmuş durumda çöp kutusuna atın. Benimki /usr/local/var/mysql. Burası günlüklerin bulunduğu yerle aynı

Oradan koştum

>mysqld --initialize

Sonra her şey çalışmaya başladı ... bu komut sonunda rastgele bir şifre verecek. Bir sonraki adım için bu şifreyi kaydedin

Kendi şifremi atamak için bunu çalıştırıyorum.

>mysql_secure_installation 

Her ikisi de

>brew services stop mysql@5.7

ve

>mysql.server start

şimdi çalışıyor. Bu yardımcı olur umarım. Yaklaşık 3 saatlik deneme yanılma.


3

İlk olarak şunu yazın:

brew services start mysql

Sonra bu -:

mysql -uroot

0

Bunu yapmak için çok zaman harcadım django uygulamamı sunucuma koymak istiyorum ve çalıştırdığımda python manage.py migratebu soruları karşıladım

Ve!! Bunu ayarladım ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock Sonunda işe yaradı!



0

Mysql sunucusunun terminalden durdurulması ve başlatılması sorunumu çözdü. MacO'larda mysql sunucusunu durdurmak ve başlatmak için cmds aşağıdadır.

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

Not: Hizmetleri Mac Sistem tercihinden yeniden başlatmak, mac'umdaki sorunu çözmedi. Bu yüzden terminalden yeniden başlatmayı deneyin.


0

Bir macOS üzerinde çalışıyorsanız, önce 'Sistem Tercihleri'ne gidin ve MySQL'in çalışıp çalışmadığını kontrol etmek daha kolaydır.


-1

CentOS için, mysql init dosya burada bulunur:

/etc/init.d/mysqld start
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.