hata: 'Yerel MySQL sunucusuna soket üzerinden bağlanamıyor' /var/run/mysqld/mysqld.sock '(2)' - Eksik /var/run/mysqld/mysqld.sock


322

Benim sorunum artık benim mysql yükleme artık kök olarak oturum açamıyorum başladı. Şifreleri açmadan mysql'i çalıştırmaya çalışıyordum ... ama ne zaman komutu çalıştırsam

# mysqld_safe --skip-grant-tables &

Asla istemi geri almak istiyorum. Şifreyi kurtarmak için bu talimatları izlemeye çalışıyordum .

Ekran şöyle görünür:

root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables
120816 11:40:53 mysqld_safe Logging to syslog.
120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

ve parolayı sıfırlamak için SQL komutlarını yazmaya başlama istemi alamıyorum.

CTRL+ Tuşuna basarak öldürdüğümde Cşu mesajı alıyorum:

error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'

Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!

Komutu yeniden dener ve yeterince uzun bırakırsam, aşağıdaki mesaj dizisini alırım:

root@jj-SFF-PC:/run/mysqld# 120816 13:15:02 mysqld_safe Logging to syslog.
120816 13:15:02 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
120816 13:16:42 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

[1]+  Done                    mysqld_safe --skip-grant-tables
root@jj-SFF-PC:/run/mysqld#

Ama sonra yaparak root olarak giriş yapmaya çalışırsam:

# mysql -u root

Aşağıdaki hata iletisini alıyorum:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Kontrol ettim ve /var/run/mysqld/mysqld.sockdosya mevcut değil. Klasör bunu yapar, ancak dosyayı değil.

Ayrıca, bu yardımcı olup olmadığını bilmiyorum, ama ben koştu find / -name mysqldve ile geldi:

/var/run/mysqld - folder
/usr/sbin/mysqld - file
/run/mysqld - folder

Linux ve MySQL'de yeniyim, bu yüzden bunun normal olup olmadığını bilmiyorum. Ama yardımcı olması durumunda bu bilgiyi ekliyorum.

Sonunda mysql'i kaldırmaya ve yeniden yüklemeye karar verdim.

apt-get remove mysql-server
apt-get remove mysql-client
apt-get remove mysql-common
apt-get remove phpmyadmin

Phpmyadmin kurulumu sırasında tüm paketleri tekrar aynı sırayla tekrar yükledikten sonra aynı hatayı aldım:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Bu yüzden kaldırmayı / yeniden yüklemeyi tekrar denedim. Bu sefer, paketleri kaldırdıktan sonra, tüm mysql dosyalarını ve dizinlerini mysql.badde ilgili konumlarına manuel olarak yeniden adlandırdım .

/var/lib/mysql 
/var/lib/mysql/mysql
/var/log/mysql
/usr/lib/perl5/DBD/mysql
/usr/lib/perl5/auto/DBD/mysql
/usr/lib/mysql
/usr/bin/mysql
/usr/share/mysql
/usr/share/dbconfig-common/internal/mysql
/etc/init.d/mysql
/etc/apparmor.d/abstractions/mysql
/etc/mysql

Sonra tekrar mysql-serverve mysql-clienttekrar yüklemeye çalıştım . Ama bir şifre istemediğimi fark ettim. Yönetici şifresi istemesi gerekmez mi?


Ben de aynı problemi yaşadım. Şimdi çözdüm. stackoverflow.com/questions/18150858/…
robert


sadece sunucuyu yeniden başlatın, sonra mysql hizmetini yeniden başlatın
bowpunya

@Anto Bu bir kopya değil. Bu /var/run/mysqld/mysqld.sockeksik. Bağladığınız sorunun bu dosyası var.
motorbaby

Burada ya da başka bir yerde cevapların hiçbiri bulamadım sorunumu çözdü. Yeni bir proje olduğu için PostgreSQL'e geçtim ve işe yarıyor! :-)
James Bradbury

Yanıtlar:


195

Sisteminizdeki tüm soket dosyalarını bulmak için:

sudo find / -type s

Mysql sunucu sistemim soketi açmış /var/lib/mysql/mysql.sock

Soketin nerede açıldığını bulduğunuzda, /etc/my.cnf dosyanıza soket dosyasının yolunu içeren satırı ekleyin veya düzenleyin:

socket=/var/lib/mysql/mysql.sock

Bazen çalıştırılabilir komut satırı çalıştıran sistem başlatma komut dosyası bir bayrak belirtir --socket=path. Bu bayrak my.cnf konumunu geçersiz kılabilir ve bu, my.cnf dosyasının olması gerektiğini belirten bir soketin bulunmamasına neden olur. Daha sonra mysql komut satırı istemcisini çalıştırmayı denediğinizde, soketi bulmak için my.cnf'yi okuyacak, ancak sunucunun oluşturduğu yerden saptığı için bulamayacaktır. Yani, soketin nerede bulunduğunu umursamıyorsanız, sadece my.cnf dosyasını eşleştirmek için çalışmanız gerekir.

Ardından, mysqld işlemini durdurun. Bunu nasıl yapacağınız sisteme göre değişir.

Linux sisteminde süper kullanıcıysanız, Mysql kurulumunuzun kullandığı belirli yöntemi bilmiyorsanız aşağıdakilerden birini deneyin:

  • service mysqld stop
  • /etc/init.d/mysqld stop
  • mysqladmin -u root -p shutdown
  • Bazı sistemler mysql'i durdurmanın zarif bir yoluna sahip olmayacak şekilde ayarlanmamıştır (veya bazı nedenlerden dolayı mysql yanıt vermiyor) ve mysql'i aşağıdakilerden biriyle sonlandırmaya zorlayabilirsiniz:
    • Bir adım: pkill -9 mysqld
    • İki adım (en az tercih edilen):
      • Mysql işlem kimliğini pgrep mysqlveyaps aux | grep mysql | grep -v grep
      • İşlem kimliğinin 4969sonlandırıldığı varsayılarakkill -9 4969

Bunu yaptıktan sonra içinde bir pid dosyası aramak /var/run/mysqld/ve silmek isteyebilirsiniz

Soketinizdeki izinlerin, mysqld kullanıcısının çalıştırdığı / okuyabileceği şekilde çalıştığından emin olun. Kolay bir test, onu tam okuma / yazmaya açmak ve hala çalışıp çalışmadığını görmek:

chmod 777 /var/run/mysqld/mysqld.sock

Bu sorunu çözüyorsa, güvenlik ayarlarınıza bağlı olarak soketin izinlerini ve sahipliğini gerektiği şekilde özelleştirebilirsiniz.

Ayrıca, soketin bulunduğu dizine mysqld işlemini çalıştıran kullanıcı tarafından erişilebilir olmalıdır.


15
Lütfen kullanmanızı önermeyin kill -9; buna gelmeden önce denenmesi gereken birkaç yol var.
Ignacio Vazquez-Abrams

@dot bunu dosya kökünde çalıştırın 'find. -adım mysqld.sock '. Soket dosyasını / var / run dışında başka yerlerde gördüm. Bir kez bulduğunuzda, bulunduğu yeri göstermek için my.cnf dosyanızı düzenlemeniz gerekebilir.
Ray

@ray, ben farklı bir şekilde özgün komut çalıştırmak için çalıştı (başka bir sitede ubuntu belirli bir yazı bulundu ..). İşte çalıştırdığım komutlar: "sudo service mysql stop" ve "sudo mysqld --skip-grant-tables". İkinci komutu yaptıktan sonra şu hatayı alıyorum: "InnoDB: ./ibdata1, hata: 11 kilitlenemiyor." Bu ./ibdata1 dosyasını bulamıyorum ... InnoDB: Başka bir mysqld işleminiz olmadığından emin olun
dot

2
@dot çalıştırın ps -aux | grep mysqldve başka herhangi bir mysql işlemi olup olmadığını görmek
Ray

@ray. Saçımı dalgalandırıyorum adamım. Ben mysql darbe ve tekrar denemek karar verdi ... benim güncellenmiş yazı unutmayın.
nokta

251

Bu komutu deneyin,

sudo service mysql start

+1 my.cnf doğru dizinlere işaret ediyordu, mysql servisi tarafından ölmüştü
wruckie

Kabul edilen cevabı denedim ama mysql.sock'u bulamadım, bu benim için çalıştı. Teşekkür ederim
Giovanne Afonso

1
sudo service mysqld start
Gavin Miller

10
sudo apt-get install mysql-serverZaten
yüklemediyseniz

17
Bu sorunu vurursanız, elbette, diğer şeyleri test etmeden önce bu basit komutu İLK olarak çalıştırın, sadece bir saniye sürer ve sunucu basitçe çalışmıyorsa ve başlattıktan sonra iyi ise, sadece işe yaramadı demektir Otomatik başlatma, ki bu da çözülmesi gereken asıl sorun olacaktır.
Lizardx

137

Bu hata, mysql'nin birden çok yüklemesi nedeniyle oluşur. Komutu çalıştırın:

ps -A|grep mysql

İşlemi aşağıdakileri kullanarak öldür:

sudo pkill mysql

ve sonra komutu çalıştırın:

ps -A|grep mysqld

Ayrıca bu işlemi çalıştırarak öldürün:

sudo pkill mysqld

Şimdi tam olarak ayarlandınız sadece aşağıdaki komutları çalıştırın:

service mysql restart
mysql -u root -p

Yine çok iyi çalışan mysql var


Hey millet, bunu düzeltmek için web'in her yerinde koşuyordum. Benim sorunum docker kurmaya çalışıyordu. Ben daha önce dock dışında mysql tarafından kullanılan mysql veri dir kullanmak istedim ... bu ps komutu en iyisiydi!
Michael

3
Web üzerinde yaklaşık 4 saat boyunca çalıştıktan sonra, bu nihayet işe yaradı. En iyi cevap olmalı: +1:
Shivam Gaur

4
Mysql.service için iş, denetim işleminden hata kodu ile çıkıldığı için başarısız oldu. Ayrıntılar için bkz. "Systemctl status mysql.service" ve "journalctl -xe".
John Joe

1
Mysql.service için iş, denetim işleminden hata kodu ile çıkıldığı için başarısız oldu. Ayrıntılar için bkz. "Systemctl status mysql.service" ve "journalctl -xe".
Adib Aroui

Tnx, zamanımı kurtarıyorsun.
Aleksandur Atanasov

41

Çözüm çok daha kolay.

  1. Öncelikle, (sudo find / -type s "ile Terminal'de) mysql.sockdosyanızı bulmanız gerekir . Benim durumumda/opt/lampp/var/mysql/mysql.sock
  2. Terminali başlat ve sorun sudo Nautilus
    Bu, Dosya yöneticinizi süper kullanıcı ayrıcalıklarıyla başlatır
  3. Nautilus'tan mysql.sockdosyanızın bulunduğu yere gidin
  4. Dosyayı sağ tıklayın ve Bağlantı Oluştur'u seçin
  5. Link File Rename mysqld.sockdosya ve daha sonra sağ tıklama Cut o
  6. Git /var/runve adlı bir klasör oluştur mysqldve gir
  7. Şimdi sağ tıklayın ve Bağlantı Dosyasını Yapıştırın
  8. İşte bu kadar! Artık bir mysqld.sockdosyaya sahip olacaksınız /var/run/mysqld/mysqld.sock:)

4
Mysql.sock dosyanızı nasıl bulabilirsiniz? / -Name 'mysql.sock' bulmayı denedim ama hiçbir şey döndürmüyor.
Matthew Lock

2
@MatthewLock İlk önce, mysql'in çalıştığından emin olun ("ps aux | grep mysql" tarafından), aksi takdirde mysql.sock görünmez. İkinci olarak, mysql.sock'u bulmak için sisteminizdeki tüm soketleri veren "sudo find / -type s"
komutunu

35
Ya çıktı sudo find / -type sherhangi bir içermiyorsa mysql.sock?
jeff

1
İşe yarıyor. Ancak bu geliştiricilerin bu işi neden son yıllarda asla yapmadığını bilmiyorum?
Yi Jiang

2
"Find / -type s" aracılığıyla mysql.sock'un nereden geldiğini görmek acı çekiyorsa "mysql_config --socket" komutunu kullanmayı deneyin. Sen sudo apt-get install libmysqlclient-dev ile yükleyebilirsiniz
alexche8

26

Kurulumdan sonra MySQL Hizmetini başlatmanız yeterlidir:

Ubuntu için:

sudo service mysql start;

CentOS veya RHEL için:

sudo service mysqld start;

Önce bunu kontrol edin sudo systemctl status mysql.serviceve sudo systemctl start mysql.service. Bu benim için çalışıyor
Byeongin Yoon

16

MySQL 5.6 ve 5.7 ile Ubuntu üzerinde bir hata var; burada var/run/mysqld/MySQL hizmeti durduğunda veya yeniden başlatıldığında kaybolacak. Bu MySQL'in çalışmasını engeller. Mükemmel olmayan bu geçici çözümü buldum, ancak en azından durdurduktan / yeniden başlattıktan sonra çalışmasını sağlıyor:

mkdir /var/run/mysqld/
chown mysqld /var/run/mysqld/

teşekkür ederim - benim için düzeltti, ben hizmet
remy

1
Bunu denemedim, ama belki de size yardımcı olacaktır: Yeni bir dosya oluşturun /etc/tmpfiles.d/mysql.conf: # systemd tmpfile settings for mysql # See tmpfiles.d(5) for details ve sonra, d /var/run/mysqld 0755 mysql mysql - Yeniden başlattıktan sonra mysql normal şekilde başlamalıdır. Bu bugs.launchpad.net/ubuntu/+source/mysql-5.6/+bug/1435823 adresinden geliyor , yorum 3. MySQL 5.7 ile ilgili bir sorun yaşadıysanız , lütfen Launchpad'e yorum yapın. Sorunu ne kadar çok kullanıcı giderirse, o kadar fazla ilgi görecektir.
motorbaby

Benim için çalıştı ... mysql kullanıcı adı olarak değil, mysqld kullanmak zorunda
Evan Parsons

/etc/tmpfiles.d/mysql.confMotorbaby'nin yorumuna satır eklemek bu sorunu benim için düzeltti. Centos 7 işletim sisteminde ve kullanımı mysql Ver 15.1 Distrib 10.3.11-MariaDB,.
turrican_34

Bu benim için sorunu düzeltti.
shikata

14

Tamam, sadece bu kodları kopyalayıp yapıştırın: Bu, terminalde, bir sunucunun içinde, mysql veritabanınız düzgün şekilde yüklenmediğinde ve bu hatayı aldığınızda yapılmalıdır: 'Yerel MySQL sunucusuna soket üzerinden bağlanamıyor' / var / run / mysqld / mysqld.sock '(2)'.

MySql'i durdur

sudo /etc/init.d/mysqld stop

Yeniden başlatın veya başlatın

sudo /etc/init.d/mysqld restart or sudo /etc/init.d/mysqld start

Bunun gibi bir bağlantı yapın ve sisteme verin

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

MySQL'i yapılandırmak için yapmanız gereken tüm işlemleri yönlendiren güvenli bir kurulum çalıştırın

/usr/bin/mysql_secure_installation

Can't connectYukarıdaki komutu çalıştırmayı denediğimde aynı hatayı alıyorum.
18'de

Ubuntu koşanlar için keşfettiğim bir şey. Mysqld komutunu /etc/init.d/mysqld start komutunu kullanarak başlatırsanız, yine de bu sorunla karşılaşırsınız. Bunun yerine servis mysql start kullanın ve iyi olacak. Kızgın, ama sonunda anladım.
Adam Short

11

Aynı hatayla karşılaştım ve bunun paketlerin yükseltilmesinden kaynaklandığını gördüm, Yani sistemimi yeniden başlattıktan sonra hatayı çözdüm.

Ben sql kütüphaneleri / paketleri güncelleme nedeniyle bu hata oluştu düşünüyorum, bu yüzden bazı yükseltme yapıyorsanız bunu deneyin :)


1
Yeniden yükleme (veya yükseltme) sonra bunu yaptım ve şimdi çalışıyor. Soket mesajı yok. Teşekkürler!
wraithie

8

Bu sorunun birçok nedeni var, ancak bazen sadece mysql sunucusunu yeniden başlatın, sorunu düzeltir.

sudo service mysql restart

7

Ubuntu'da XAMPP kullanma:

  1. Adlı bir klasör oluşturun Mysqld/ var / run dizin. Bunu komutu kullanarak gerçekleştirebilirsiniz sudo mkdir /var/run/mysqld.

  2. XAMPP sunucusu başlatıldığında oluşturulan mysql.sock dosyasına sembolik bir bağlantı oluşturun. Komutu kullanabilirsiniz sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock.

Not: mysql.sock dosya sunucusu başlatıldığında oluşturulan ve sunucu durdurulduğunda, bazen link size kırılacak görünebilir oluşturulan ama sürece kullanarak sunucusu başladı olarak çalışması gerekir kaldırılır ya sudo /opt/lampp/lampp startveya başka bir anlamına geliyor.

  1. Çalışmıyorsa sunucuyu başlatın ve programınızı tekrar çalıştırmayı deneyin.

İyi şanslar! Umarım bu sefer ondan kaçacaksın.


@MohsinKhan localhost / phpmyadmin'e gidin ve veritabanını oradan içe aktarın
Robert Odoch

6

Kullanıcı yükleme adımının cevabı benim için çalıştı. Bazen /etc/mysql/my.cnfistemciye satır eklemek dosyayı düzenlemek gerekir

[client]
password = your_mysql_root_password
port  = 3306
host  = 127.0.0.1
socket  = /var/lib/mysql/mysql.sock

Bu bana verir:mysql: unknown variable 'Host=127.0.0.1'
Splaktar

@ Splaktar: bir yazım hatası var. Hostküçük harf olması gerekir hostve işe yarayacaktır. Ayrıca, bu çözüm benim için çalıştı.
Muhammed Faysal

Brilliant - bu benim ve liman işçim için çalışıyor - sadece benim durumumda docker mysql konteyner ip 172.17.xx ip ayarlamak zorunda kaldı
InforMedic

6

* Hata: 'Yerel MySQL sunucusuna' /var/run/mysqld/mysqld.sock soketi ile bağlanamıyor '(2)'

çözeltiler

son olarak mysql'i kaldırıp yeniden yükleyin. **

  • sudo apt-get kaldır mysql-server
  • sudo apt-get mysql istemcisini kaldır
  • sudo apt-get kaldır mysql-common
  • sudo apt-get kaldır phpmyadmin

sonra tekrar yükle

  • sudo apt-get install mysql-sunucu-5.6

Bu işlemden sonra 164 MB ek disk alanı kullanılacaktır.

  • Devam etmek istiyor musun? [E / H] Komple kurulumlar için EVET tuşuna basın

...... .......

  • Sonunda bu satırları alacak ....

    Libhtml-template-perl (2.95-1) kuruluyor ...

    Mysql-common-5.6 (5.6.16-1 ~ exp1) kurulumu ... libc-bin için tetikleyiciler işleniyor (2.19-0ubuntu6) Üredahead (0.100.0-16) için tetikleyiciler işleniyor ...

  • Ve sonra

    root @ ubuntu1404: ~ # mysql -u root -p (ilk kullanmanız gereken her şifre için)

  • Parolanı Gir:

  • Not: Girilen şifre mysql kurulum zamanı şifresiyle aynı olmalıdır (.root, sistem, admin, rahul vb. Gibi)

    Sonra yazın

  • KULLANIM rahul_db (veritabanı adı);

Teşekkürler.**


Cevap kalitesini artırmak lütfen
Mo

Bu, yüklü birden fazla mysql sürümü nedeniyle benim için çalıştı. Ayrıca kaldırın mysql-server-5.6/5.5, mysql-client-5.6/5.5. Teşekkürler!
Luuk Skeur

var E: Package 'mysql-server-5.6' has no installation candidate, Ubuntu
18.04'te

6

Erişilemeyen soket dosya yolunuzun '/var/run/mysqld/mysqld.sock' ile aynı olduğundan emin olun, aksi takdirde yolu sizinkiyle değiştirin. MySQL'i durdurun

$ sudo /etc/init.d/mysqld stop

Süreç hala devam ediyorsa;

$ sudo pkill -9 mysqld

Soketin oluşturulacağı mysql dizinini kaldırın. Benim için kaldırılmasına izin verilmedi, bu yüzden zorla kaldırmak zorunda kaldım.

$ sudo mkdir -p /var/run/mysqld

Sahipliği yönetime ayarlayın

$ sudo chown mysql:mysql /var/run/mysqld

MySQL'i başlat

$ sudo /etc/init.d/mysql start

MySQL bağlamaya çalışıyorum

$ sudo mysql -u dbuser -p

Evet aynı cevap 14 Şubat 1919 at 11:56 (aşağıya bakınız)
Ingo

Sen hayat kurtarıcısın.
Sahib Khan

5

Sanırım MySQL sunucunuz başlamadı. Bu nedenle, aşağıdaki komutlardan birini kullanarak sunucuyu başlatın.

#services mysql start

veya

#/etc/init.d/mysql start

5

Geçici çözüm

Belki birileri bu problemle karşı karşıyadır. Ubuntu 14 üzerinde Mysql Workbench kullanıyorum ve bu hatayı aldım.

mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) when trying to connect

Soket dosyanızı çalıştırarak bulun, sudo find / -type sbenim durumumda/run/mysqld/mysqld.sock

Bu yüzden, tmpdizindeki bu dosyaya bir bağlantı oluşturdum .

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

Gördüğünüz gibi dosyanın konumu /tmpklasörün altında olduğundan emin olarak kaldırılacaktır. .sockDosya konumunu değiştirebilirsiniz . Bkz. @ User3002884 yanıtı.
Bilal

Biliyorum, cevabınızı tamamlıyordum, böylece diğer kullanıcılar çözümün geçici olduğunu biliyorlar, klasör olarak
Alex Burdusel

Hayatımı kurtardın :)
Mashpy Rahman

4

Bulabileceğiniz mysqld.sockiçinde /var/run/mysqldzaten yüklediyseniz mysql-server tarafındansudo apt-get install mysql-server


4

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

içinde /etc/my.cnfbu satırları ekleyin:

[client]
socket=/var/lib/mysql/mysql.sock <= this path should be also same as is[mysqld]

Ve hizmeti şu şekilde yeniden başlatın: service mysql restart

bu benim için çalıştı


4

Bundan birkaç kez bahsedildi, ancak bu hemen benim için çalıştı:

hizmet mysql yeniden başlatma


Bunun basit, "mysql" komutunu kullanmaktan ne kadar farklı olduğu ilginç
luminol

3

Benim durumumda iki mysqld işlemi yürütülüyordu .. pkill -9 mysqld kullanarak isteğe bağlı işlemleri öldürdü


'Sudo' öldürme işlemini eklemem gerekiyordu.
noti

3

Sisteminizde çok fazla veritabanı ve tablo varsa innodb_file_per_tableve my.cnf dosyasında ayarladıysanız, mysql sunucunuzda açık nesneler / dosyalar (veya bu nesneler için tanımlayıcılar) tükenmiş olabilir. ile

open-files-limit = 2048

ve mysql'yi yeniden başlatın. Soket hiç oluşturulmadığında bu yaklaşım yardımcı olabilir, ancak gerçekte bu gerçek sorun olmayabilir, altta yatan bir sorun vardır.


2

Bu sorunu Ubuntu 14.10'da yaşadım

mysql-serverArtık yüklü olmayan dönüşler (bir şekilde kaldırılmıştı), ancak yükleyemedim çünkü bazı kırık paketler ve bağımlılık sorunları / çatışmaları vardı.

Sonunda mysql'i yeniden yüklemek zorunda kaldım

sudo apt-get remove mysql-client
sudo apt-get install mysql-server


2

Çözümüm;

Ubuntu 18.04 (WSL)

/etc/mysql/my.cnf

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

/etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306

Bağlantı noktasını değiştirdim. Benim için çalıştı. Başka bir bağlantı noktası yazabilirsiniz. Örnek 3355


2

Neden bu hatayı alıyorsunuz

MySQL kütüphanelerinin yeni güncellemelerini aldım, bu yüzden bu hataları aldıktan sonra Kubuntu işletim sistemimi güncelledim.


Denediğim komutlar ve bunu nasıl düzelttim.

MySql-server düzgün çalışıyor ancak vermeyi bağlamaya çalıştığımda

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'.

/var/run/mysqld/mysqld.sock'.Bu dizini kontrol ettim . Dosyalarım mevcut değildi.

Ben de bağlanmak için bu komutları denedim ama benim için çalışmadı.

 mysql -h 127.0.0.1 -P 3306 -u root -p

 sudo service mysql start

Yaklaşık 2 saat harcadıktan sonra çözümü buldum

sudo apt-get clean
sudo apt-get update
sudo apt-get upgrade -f

Ondan sonra her şey benim için düzeltildi.


Bu, sorunu çözmeme yardımcı oldu. Ben nasıl çorap problem ile ilgili olduğunu anlamıyorum ...
Mayamo

1

Değişen hostiçin 127.0.0.1benim için çalıştı.

Dosyayı /etc/mysql/my.cnfdüzenleyin ve bölüme aşağıda belirtilen satırı ekleyin:client

[client]
port  = 3306
host  = 127.0.0.1
socket  = /var/lib/mysql/mysql.sock

İşiniz bittiğinde. Aşağıdaki komutu yürütün.

sudo service mysql start

Bu arkadaşım bana yardımcı oldu :)
Bhargav Nanekalva

@NBhargav ben senin ur sorunu çözebilir mutluyum .. Şerefe dostum .. 😇😇
Dulith De Costa

1

Ayrıca mysql yapılandırmasını kontrol ediyorum. Kendi sunucum ile bu sorunla çalışıyordu ama benim makine için biraz fazla aceleci ve yanlış yapılandırılmış innodb_buffer_pool_size.

innodb_buffer_pool_size = 4096M

Genellikle 2048'e kadar iyi çalışır, ancak sanırım 4 konseri desteklemek için gerekli belleğe sahip değilim.

Bunun diğer mysql yapılandırma ayarlarıyla da olabileceğini hayal ediyorum.


1

Bir CentOS VPS'de de benzer bir sorun yaşadım. MySQL başlamazsa veya başlatıldıktan hemen sonra kilitlenmeye devam ederse şu adımları deneyin:

1) my.cnf dosyasını bulun (benimki /etc/my.cnf konumunda bulundu) ve satırı ekleyin:

innodb_force_recovery = X

X yerine 1'den 6'ya kadar bir sayı girerek, 1'den başlayıp MySQL başlamazsa artar. 4, 5 veya 6 olarak ayarlamak verilerinizi silebilir, bu nedenle dikkatli olun ve daha önce http://dev.mysql.com/doc/refman/5.7/tr/forcing-innodb-recovery.html adresini okuyun .

2) MySQL hizmetini yeniden başlatın. Sadece SELECT çalışır ve bu noktada bu normaldir.

3) Tüm veritabanlarınızı / şemalarınızı mysqldump ile tek tek dökün, dökümleri sıkıştırmayın, çünkü daha sonra bunları sıkıştırmanız gerekir.

4) Yalnızca / var / lib / mysql içindeki bd dizinlerini taşıyın (veya silin!).

5) MySQL'i durdurun ve sonra 1) 'de eklenen satırı açın. MySQL'i başlatın.

6) 3) dökülür tüm bd kurtarmak.

İyi şanslar!


1

Terminal komut isteminde aşağıdakileri deneyin:

sudo mysql

Bu size izin verdiğinde, yeni bir kullanıcı oluşturabilir ve erişmeleri gereken belirli veritabanında istediğiniz ayrıcalıkları verebilirsiniz.

Mysql 5.7 bazı şeyleri değiştirdi ve varsayılan olarak hesabın saldırıya uğramasını önlemek için root için auth_socket eklentisini (mysql_native_password yerine) kullanır. Eklenti alanını kök için ayarlayarak bunu geçersiz kılabilirsiniz, ancak çok iyi bir nedeniniz yoksa muhtemelen korumayı atlatmamalısınız. Özellikle her sudo mysqlzamankinden daha kolay olduğunda mysql -u root -p.

Bir Ahududu Pi yardım sitesinden - tüm yerlerin - bu bilgileri öğrendim . Lubuntu 18.04 birkaç saatliğine benden rahatsız olduktan sonra bir cazibe gibi çalıştı.


1

Önce dir / var / run / mysqld öğesini oluşturun

komut ile:

mkdir -p /var/run/mysqld

sonra dir

chown mysql:mysql /var/run/mysqld

bu denemeden sonra

mysql -u root

1

Ben de aynı sorunu yaşadım. Bir saat boyunca mücadele ettikten sonra, mysql-common, mysql-client, mysql-server'ı yeniden yüklemeden düzeltmenin bir yolunu buldum.

Her şeyden önce, "/ var / run / mysqld" e gidin. Mysql.sock'un olmadığını göreceksiniz. Tüm mysqld dizinini kaldırın ve yeniden oluşturun ve gerekli ayrıcalıkları sağlayın.

# rm -rf /var/run/mysqld && mkdir /var/run/mysqld && chown mysql /var/run/mysqld/

Şimdi, mysql işlemini bütünüyle öldürün. Hizmeti kapattıktan sonra bile "/etc/init.d/mysql status" komutunu çalıştırırken "sayfa temizleyiciyi beklemeyi" göstermeniz mümkün olabilir.

Hizmeti tamamen kapatmak için şunu kullanın:

# pkill -9 mysqld

İşlem öldürüldükten sonra şunu kullanarak başlatmayı deneyin:

# /etc/init.d/mysql start

Ve iyi çalıştığını göreceksiniz! Ayrıca durdurmada da bir sorun olmayacak.

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.