ERROR 2003 (HY000): Tidak dapat terhubung ke server MySQL di '127.0.0.1' (111)

135

Saya menggunakan perintah berikut:

mysql -u root -h 127.0.0.1 -p

dan pesan kesalahannya adalah:

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

Siapa yang dapat membantu saya memperbaikinya?

Charlie Epps
sumber
3
Apakah daemon mysql berjalan? Apakah Anda punya firewall? Bisakah Anda telnet ke mysql port default adalah 306 jadi - telnet localhost 3306
mmmmmm
daemon mysql sedang berjalan. Saya yakin.
Charlie Epps
1
Apakah hanya saya atau jika Anda terhubung ke server mysql lokal Anda tidak perlu menentukan host misalnya mysql -u root -p harus bekerja?
RMcLeod
hanya untuk memastikan, Anda mencoba untuk terhubung ke server db secara lokal?
John Kane
Saya baru menginstal mysql di ubuntu-12.04.2. Versi ini adalah 14.14 Distrib 5.5.32, untuk debian-linux-gnu (x86_64) menggunakan readline 6.2, konfigurasi defaultnya tidak mengandung 'skip-networking'. Jadi Anda tidak akan menemukan kesalahan dengan versi ini.

Jawaban:

220

Jika Anda menggunakan ubuntu, Anda harus menggunakan langkah-langkah berikut untuk menghindari kesalahan ini (jika tidak ada replikasi diaktifkan):

  1. jalankan perintah vim /etc/mysql/my.cnf
  2. komentar bind-address = 127.0.0.1menggunakan simbol #
  3. restart server mysql Anda sekali.

Memperbarui

Di Langkah 1, jika Anda tidak dapat menemukannya bind-addressdi my.cnffile, cari di /etc/mysql/mysql.conf.d/mysqld.cnffile.

Pembaruan dalam kasus replikasi MySQL diaktifkan

Cobalah untuk menghubungkan server MySQL di IPmana server MySQL terikat di 'my.cnf instead oflocalhost atau 127.0.0.1`.

Justin Vincent
sumber
8
Terima kasih!!! Saya telah mencoba mencari tahu ini sejak lama! Saya mengomentari baris itu, menyimpan file, dan kemudian berlari service mysql restart. Dan sekarang berhasil!
Ryan
Dalam kasus saya, saya memiliki alamat server alih-alih 127.0.0.1 untuk bind-address. Jika ini masalahnya, Anda perlu berkomentar juga.
Vlad Schnakovszki
4
Tidak ada bind-address = 127.0.0.1di/etc/mysql/my.cnf
RegarBoy
6
@developer, saya menemukan milik saya di sini: /etc/mysql/mysql.conf.d/mysqld.cnf
sekali
Saya mengubah bind-address = <server utama ip>, tetapi tidak dapat memulai kembali mysql.
Avi Kehat
14

Coba localhostalih-alih 127.0.0.1menghubungkan atau di connection-config. Bekerja untuk saya di Server Debian Squeeze

grex_e
sumber
FYI jika Anda menentukan localhost, yang memberitahu Mysql untuk terhubung melalui soket unix (/var/run/mysqld/mysqld.sock di ubuntu) daripada melalui soket TCP.
Duke
8

Ini terjadi ketika Anda lupa untuk memulai basis data sebelum menghubungkannya:

mysql.server start

kemudian

mysql -u root -p -h 127.0.0.1
Henry
sumber
di terminal di mac dan linux. Saya percaya itu sama di windows CMD tapi saya tidak yakin.
Henry
Saya harus memulai menggunakan server MySQL sudo service mysqld startdalam contoh AWS EC2 saya dengan MySQL Community Server.
harshainfo
6

Dalam kasus saya (koneksi jarak jauh) membantu mematikan firewall di server.

service iptables stop
Bunyk
sumber
@ram Mungkin Anda menggunakan firewall lain. Atau masalah Anda bukanlah firewall sama sekali. Periksa dokumentasi untuk distro linux Anda.
Bunyk
1
@ram tryservice firewalld stop
Maxim Mazurok
1
MySQL biasanya berjalan pada port 3306, jadi tambahkan itu ke firewall Anda
kurdtpage
6

Masalah ini dapat terjadi karena server MySQL Anda tidak diinstal dan dijalankan. Untuk melakukan itu mulailah command prompt sebagai admin dan masukkan perintah:

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

Jika Anda mendapatkan pesan "layanan berhasil diinstal" maka Anda harus memulai layanan MySQL. Untuk melakukannya: masuk ke jendela Layanan (Pengelola Tugas -> Layanan -> Layanan Terbuka) Cari MySQL dan Mulai dari bilah navigasi atas. Kemudian jika mencoba membuka mysql.exe, itu akan berfungsi.

S.Roshanth
sumber
2
Sedikit kesalahan, cd "C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin" lalu mysqld --install. Selain itu nomor server tergantung pada unduhan.
Dejazmach
Melakukan ini memperbaiki masalah saya
Steffi Keran Rani J
6

lihat my.cnffile, jika ada [client]bagian, dan portselain port real listen (default 3306), Anda harus menghubungkan server dengan parameter eksplisit -P 3306, mis.

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

Yu Jiaao
sumber
dimana saya bisa mencari my.cnf. itu tidak ada di server wamp, di laptop saya
Deepak Keynes
Di windows, biasanya disebut 'my.ini'
Yu Jiaao
Bagi saya port adalah masalahnya. Terima kasih
Chandra Eskay
0

Anda perlu mengubah parameter bind-address menjadi 127.0.0.1 dalam file konfigurasi mysql (my.ini atau my.cnf) atau menggunakan yang didefinisikan di sana.

Jika itu tidak berhasil, Anda harus memeriksa bahwa layanan mysql benar-benar berjalan.

nkr1pt
sumber
1
Saya telah menambahkan baris "bind-address = 127.0.0.1" ke file my.cnf. Tapi itu tidak berhasil.
Charlie Epps
2
Jika baris ini ada, mysql akan mendengarkan HANYA ke alamat yang tercantum. Untuk mengaktifkan akses jarak jauh, Anda harus HAPUS baris ini. Waspadai implikasi keamanan yang dimilikinya.
webkraller
menambahkan bind-address =127.0.0.1di my.cnf menonaktifkan koneksi jarak jauh ke DB. Jadi, bahkan jika itu akan berhasil (yang bukan) - itu bukan solusi yang baik.
Nir Alfasi
Bind-address harus 0.0.0.0 kecuali Anda tidak ingin orang lain terhubung.
Marquis of Lorne
0

Memetikan Anda berjalan pada port non-default, Anda mencoba menggunakan --port=<port num> disediakan --skip-networkingyaitunot enabled.

KDAS
sumber
0

Saya hanya punya masalah ini .... berjalan di Win7 dan server wamp ... setelah membaca ini

Menemukan bahwa Antivirus Firewall telah menyebabkan masalah.

Adhie_x
sumber
0

Saya juga menghadapi masalah yang sama. Berikut ini membantu saya memperbaiki masalah pergi ke control panel-> Administrative tools -> layanan di dalamnya Anda pasti akan melihat layanan MySQL: klik kanan dan katakan mulai (mulai paksa).

Perkasa
sumber
0

Untuk pengguna Docker - Ketika mencoba menghubungkan sql lokal menggunakanmysql -u root -h 127.0.0.1 -pdan database Anda berjalan padawadah Docker , pastikan layanan mysql sudah berjalan dan berjalan (verifikasi menggunakandocker psdan juga periksa bahwa Anda berada di port yang tepat juga), jika wadah tersebut adalah bawah Anda akan mendapatkan kesalahan koneksi.

Praktik terbaik adalah mengatur ip di /etc/hostsmesin Anda:

127.0.0.1 db.local

dan menjalankannya mysql -u root -h db.local -p

avivamg
sumber
0

Coba jangan matikan iptables dan buka port 3306.

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

atau sudo ufw allow 3306jika Anda menggunakan ufw.

periksa: netstat -lnp | grep mysqlAnda harus mendapatkan sth seperti itu:

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

jika Anda memiliki null maka hapus # sebelum port = 3306 dalam file cnf.

Karol Preiskorn
sumber
0

Pastikan server MySql Anda berjalan di localhost.

Di Linux

Untuk memeriksa apakah server MySql sedang berjalan:

sudo service mysql status

Untuk menjalankan server MySql:

sudo service mysql start

Di Windows

Untuk memeriksa apakah server MySql sedang berjalan:

C:\Windows\system32>net start

Jika MySql tidak ada dalam daftar, Anda harus memulai / menjalankan MySql.

Untuk menjalankan server MySql:

C:\Windows\system32>net start mysql

Semoga ini membantu.

Safiqur Rhaman
sumber
-1

Saya mengubah direktori instalasi saat menginstal ulang, dan itu berhasil.

Gursimran Pannu
sumber
-2

saya baru saja me-restart server mysql saya dan masalah diselesaikan di windows net stop MySQL kemudian net start MySQl ubuntu linux sudo service start mysql

jasim
sumber