HATA 2003 (HY000): '127.0.0.1' (111) üzerindeki MySQL sunucusuna bağlanılamıyor


135

Aşağıdaki komutu kullanıyorum:

mysql -u root -h 127.0.0.1 -p

ve hata mesajı:

ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)

Bunu düzeltmeme kim yardım edebilir?


3
MySQL Daemon çalışıyor mu? Güvenlik duvarınız yok mu? Mysql için telnet varsayılan bağlantı noktası 306 yani - telnet localhost 3306
mmmmmm

mysql arka plan programı çalışıyor. Eminim.
Charlie Epps

1
Sadece ben mi yoksa yerel mysql sunucusuna bağlanıyorsanız, ana bilgisayarı belirtmeniz gerekmez, örneğin mysql -u root -p çalışmalıdır?
RMcLeod

sadece emin olmak için, yerel olarak db sunucusuna bağlanmaya çalışıyorsunuz?
John Kane

Ubuntu-12.04.2 üzerine yeni kurulmuş mysql. Sürüm 14.14 Dağıtım 5.5.32'dir, readline 6.2 kullanan debian-linux-gnu (x86_64) için, varsayılan yapılandırması 'atlama ağı' içermez. Yani bu sürümde hatayla karşılaşmazsınız.

Yanıtlar:


220

Kullanıyorsanız ubuntu, bu hatayı önlemek için aşağıdaki adımları uygulamanız gerekir (etkinleştirilmiş çoğaltma yoksa):

  1. komutu çalıştır vim /etc/mysql/my.cnf
  2. bind-address = 127.0.0.1# sembolünü kullanarak yorum yap
  3. mysql sunucunuzu bir kez yeniden başlatın.

Güncelleme

1. Adımda bind-address, my.cnfdosyayı bulamıyorsanız , dosyayı dosyada arayın /etc/mysql/mysql.conf.d/mysqld.cnf.

MySQL çoğaltmasının etkin olması durumunda güncelleme

MySQL sunucusunun bağlı IPolduğu MySQL sunucusunu 'my.cnf instead oflocalhost veya 127.0.0.1` içinde bağlamayı deneyin .


8
Teşekkür ederim!!! Bunu uzun zamandır anlamaya çalışıyordum! O satıra yorum yaptım, dosyayı kaydettim ve kaçtım service mysql restart. Ve şimdi işe yarıyor!
Ryan

Benim durumumda, bağlama adresi için 127.0.0.1 yerine sunucunun adresi vardı. Sizin için durum buysa, bunu da yorumlamanız gerekir.
Vlad Schnakovszki

4
No is bind-address = 127.0.0.1in/etc/mysql/my.cnf
RegarBoy

6
@developer, benimkini burada buldum: /etc/mysql/mysql.conf.d/mysqld.cnf
kez

Ben bind-address = <ana sunucu ip> değiştirdim, ancak mysql yeniden başlatılamıyor.
Avi Kehat

14

Bağlanmak localhostyerine 127.0.0.1veya cihazınıza bağlanmayı deneyin connection-config. Benim için Debian Squeeze Server üzerinde çalıştı


FYI, localhost belirtirseniz, Mysql'ye bir TCP soketi yerine unix soketi (/var/run/mysqld/mysqld.sock) üzerinden bağlanmasını söyler.
Duke

8

Bu, veritabanına bağlanmadan önce başlatmayı unuttuğunuzda gerçekleşir:

mysql.server start

sonra

mysql -u root -p -h 127.0.0.1

mac ve linux terminalinde. Windows CMD'de de aynı olduğuna inanıyorum ama emin değilim.
Henry

MySQL sunucusunu sudo service mysqld startMySQL Community Server ile AWS EC2 örneğimi kullanarak başlatmak zorunda kaldım .
harshainfo

6

Benim durumumda (uzaktan bağlantı) sunucudaki güvenlik duvarının kapatılmasına yardımcı oldu.

service iptables stop

@ram Muhtemelen başka bir güvenlik duvarı kullanıyorsunuz. Veya sorununuz bir güvenlik duvarı değildir. Linux dağıtımınızın belgelerine bakın.
Bunyk

1
@ram tryservice firewalld stop
Maxim Mazurok

1
MySQL genellikle 3306 numaralı bağlantı noktasında çalışır, bu yüzden bunu güvenlik duvarınıza ekleyin
kurdtpage

6

Bu sorun, MySQL sunucunuz yüklü ve çalışmıyor olduğu için oluşabilir. Bunu yapmak için komut istemini admin olarak başlatın ve command girin:

"C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin\mysqld" --install

"Hizmet başarıyla yüklendi" iletisi alırsanız, MySQL hizmetini başlatmanız gerekir. Bunu yapmak için: Servisler penceresine gidin (Görev Yöneticisi -> Servisler -> Servisleri Aç) MySQL'i arayın ve üstteki gezinme çubuğundan başlatın. Sonra mysql.exe açmaya çalışırsanız çalışacaktır.


2
Küçük bir hata cd "C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin" ve sonra mysqld --install. Ayrıca sunucu numarası indirmeye bağlıdır.
Dejazmach

Bunu yapmak sorunumu çözdü
Steffi Keran Rani J

6

bak my.cnforada içeriyorsa, dosyaya [client]bölümü ve portgerçek port (varsayılan 3306) dinlemek başkadır, müstehcen parametresi sunucuyu bağlamak gerekir -P 3306, örneğin

mysql -u kökü -h 127.0.0.1 -p -P 3306


nerede arayabilirim my.cnf. wamp sunucusunda, benim laptop orada değil
Deepak Keynes

Pencerelerde genellikle 'my.ini'
der

Benim için sorun liman oldu. Teşekkürler
Chandra Eskay

0

Mysql yapılandırma dosyasında (my.ini veya my.cnf) bind-address parametresini 127.0.0.1 olarak değiştirmeniz veya orada tanımlanan parametreyi kullanmanız gerekir.

Bu işe yaramazsa, mysql hizmetinin gerçekten çalışıp çalışmadığını kontrol etmelisiniz.


1
"Bind-address = 127.0.0.1" satırını my.cnf dosyasına ekledim. Ama işe yaramıyor.
Charlie Epps

2
Bu satır varsa, mysql SADECE listelenen adresi dinleyecektir. Uzaktan erişimi etkinleştirmek için bu satırı KALDIRMALISINIZ. Bunun sahip olduğu güvenlik etkisinin farkında olun.
webkraller

bind-address =127.0.0.1my.cnf içine eklemek DB ile uzaktan bağlantıyı devre dışı bırakır. Yani işe yarasa bile (ki bu işe yaramaz) - bu iyi bir çözüm değil.
Nir Alfasi

Başka birinin bağlanmasını istemiyorsanız bağlanma adresi 0.0.0.0 olmalıdır .
Lorne Marquis

0

Eğer Varsayılan olmayan bir bağlantı noktası üzerinde çalışan Örtmek, kullanmakta deneyebilirsiniz --port=<port num> sağlanan --skip-networkingISnot enabled.


0

Ben sadece bu sorun var .... Win7 ve wamp sunucusunda çalışan ... bunu okuduktan sonra

Antivirüs Güvenlik Duvarı'nın soruna neden olduğunu buldu.


0

Ben de aynı sorunla karşı karşıyaydım. Aşağıdakiler, sorunu düzeltmeme yardımcı oldu. Denetim masasına git.


0

Docker kullanıcıları için - Yerel sql'ı kullanarak bağlanmaya çalışırkenmysql -u root -h 127.0.0.1 -pve veritabanınız Docker kapsayıcısındaçalışırken, mysql hizmetinin çalışır durumda olduğundan emin olun (kullanarak doğrulayındocker ps ve ayrıca doğru bağlantı noktasında olduğunuzu da kontrol edin). aşağı bağlantı hatası alırsınız.

En iyi uygulama ip'leri /etc/hostsmakinenize yerleştirmektir:

127.0.0.1 db.local

ve çalıştırarak mysql -u root -h db.local -p


0

Iptables'ı kapatmayın ve 3306 numaralı bağlantı noktasını açın.

sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT

veya sudo ufw allow 3306 ufw kullanıyorsanız.

kontrol: netstat -lnp | grep mysqlböyle sth almalısınız:

cp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      2048/mysqld         
tcp6       0      0 :::33060                :::*                    LISTEN      2048/mysqld         
unix  2      [ ACC ]     STREAM     LISTENING     514961   2048/mysqld          /var/run/mysqld/mysqld.sock
unix  2      [ ACC ]     STREAM     LISTENING     514987   2048/mysqld          /var/run/mysqld/mysqlx.sock

null değerine sahipseniz, cnf dosyasında port = 3306'dan önce # silin.


0

Lütfen MySql sunucunuzun localhost üzerinde çalıştığından emin olun.

Linux'ta

MySql sunucusunun çalışıp çalışmadığını kontrol etmek için:

sudo service mysql status

MySql sunucusunu çalıştırmak için:

sudo service mysql start

Windows'ta

MySql sunucusunun çalışıp çalışmadığını kontrol etmek için:

C:\Windows\system32>net start

MySql listede yoksa, MySql'i başlatmanız / çalıştırmanız gerekir.

MySql sunucusunu çalıştırmak için:

C:\Windows\system32>net start mysql

Bu yardımcı olur umarım.



-2

Ben sadece benim mysql sunucusunu yeniden başlatın ve Windows net stop MySQL çözüldü sonra net başlangıç ​​MySQl ubuntu linux sudo hizmet başlangıç ​​mysql

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.