Kesalahan 2002 (hy000 tidak dapat terhubung ke server mysql pada 115)

Tutorial ini dimaksudkan untuk menjelaskan langkah-langkah yang diperlukan untuk memecahkan masalah “ERROR 2003 (HY000). Tidak dapat terhubung ke server MySQL pada '127. 0. 0. 1’ (111)” yang mungkin terjadi saat Anda mencoba mengakses server database MySQL

Sebelum melangkah lebih jauh, jika Anda adalah pengguna Linux yang baru mengenal MySQL/MariaDB, maka Anda dapat mempertimbangkan untuk mempelajari MySQL / MariaDB untuk Pemula – Bagian 1 dan 20 Perintah MySQL (Mysqladmin) untuk Administrasi Database di Linux juga

Di sisi lain, jika Anda sudah menjadi pengguna MySQL tingkat menengah/berpengalaman, Anda dapat menguasai 15 Tip Penyesuaian dan Pengoptimalan Kinerja MySQL/MariaDB yang Berguna ini

Catatan. Untuk tutorial ini, diasumsikan bahwa Anda telah menginstal server database mysql

Kembali ke titik fokus, apa saja kemungkinan penyebab kesalahan ini?

  1. Kegagalan jaringan terutama jika server database mysql berjalan di host jarak jauh
  2. Tidak ada server mysql yang berjalan di host yang disebutkan
  3. Firewall memblokir koneksi TCP-IP atau alasan terkait lainnya

Di bawah ini adalah langkah-langkah penting untuk menghadapinya

1. Jika server basis data berada di mesin jarak jauh, cobalah untuk menguji konektivitas server-klien menggunakan perintah ping, misalnya

$ ping server_ip_address
Mesin Host Ping

Setelah ada konektivitas, gunakan perintah $ ps -Af | grep mysqld 0 di bawah ini yang menunjukkan informasi tentang pemilihan proses aktif, bersama dengan perintah $ ps -Af | grep mysqld 1 dan grep, untuk memeriksa apakah daemon mysql berjalan di sistem Anda

$ ps -Af | grep mysqld _

dimana pilihan

  1. $ ps -Af | grep mysqld _2 – mengaktifkan pemilihan semua proses
  2. $ ps -Af | grep mysqld _3 – mengaktifkan daftar format lengkap
Periksa Proses MySQL

Jika tidak ada output dari perintah sebelumnya, mulai layanan mysql sebagai berikut

$ sudo systemctl start mysql.service $ sudo systemctl start mariadb.service OR # sudo /etc/init.d/mysqld start _

Setelah memulai layanan mysql, coba akses server database

$ mysql -u username -p -h host_address

2. Jika Anda masih mendapatkan kesalahan yang sama, tentukan port (defaultnya adalah 3306) tempat daemon mysql mendengarkan dengan menjalankan perintah netstat

$ netstat -lnp | grep mysql _

dimana pilihan

  1. $ ps -Af | grep mysqld _4 – menampilkan port mendengarkan
  2. $ ps -Af | grep mysqld _5 – memungkinkan tampilan alamat numerik
  3. $ ps -Af | grep mysqld _6 – menunjukkan PID dan nama program yang memiliki soket
Temukan Nomor Port MySQL

Oleh karena itu gunakan opsi $ ps -Af | grep mysqld _7 untuk menentukan port yang Anda lihat dari output di atas saat mengakses server database

$ mysql -u username -p -h host_address -P port

3. Jika semua perintah di atas berhasil dijalankan, tetapi Anda masih melihat kesalahan, buka file konfigurasi mysql

$ vi /etc/mysql/my.cnf OR $ vi /etc/mysql/mysql.conf.d/mysqld.cnf

Cari baris di bawah ini dan beri komentar menggunakan karakter $ ps -Af | grep mysqld 8

bind-address = 127.0.0.1

Simpan file dan keluar, setelah itu restart layanan mysql seperti itu

$ sudo systemctl start mysql.service $ sudo systemctl start mariadb.service OR # sudo /etc/init.d/mysqld start _

Namun, jika Anda menjalankan firewallD atau Iptables, coba tinjau layanan firewall dan buka port mysql, dengan asumsi firewall memblokir koneksi TCP-IP ke server mysql Anda

Itu saja. Apakah Anda tahu metode lain atau punya saran untuk mengatasi kesalahan koneksi MySQL di atas?

Saya mencoba menerapkan gambar mysql_ di Kubernetes lokal saya yang berjalan di kluster This is `mysql-depl.yaml` file: apiVersion: apps/v1 kind: Deployment metadata: name: mysql spec: selector: matchLabels: app: mysql strategy: type: Recreate template: metadata: labels: app: mysql spec: containers: - image: mysql name: mysql env: - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: mysql-secret key: MYSQL_KEY ports: - containerPort: 3306 name: mysql volumeMounts: - name: mysql-persistent-storage mountPath: /var/lib/mysql volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pv-claim --- apiVersion: v1 kind: Service metadata: name: mysql spec: ports: - port: 3306 selector: app: mysql clusterIP: None 0 sebagai berikut

Saya mencoba This is `mysql-depl.yaml` file: apiVersion: apps/v1 kind: Deployment metadata: name: mysql spec: selector: matchLabels: app: mysql strategy: type: Recreate template: metadata: labels: app: mysql spec: containers: - image: mysql name: mysql env: - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: mysql-secret key: MYSQL_KEY ports: - containerPort: 3306 name: mysql volumeMounts: - name: mysql-persistent-storage mountPath: /var/lib/mysql volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pv-claim --- apiVersion: v1 kind: Service metadata: name: mysql spec: ports: - port: 3306 selector: app: mysql clusterIP: None _1 dan membuat This is `mysql-depl.yaml` file: apiVersion: apps/v1 kind: Deployment metadata: name: mysql spec: selector: matchLabels: app: mysql strategy: type: Recreate template: metadata: labels: app: mysql spec: containers: - image: mysql name: mysql env: - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: mysql-secret key: MYSQL_KEY ports: - containerPort: 3306 name: mysql volumeMounts: - name: mysql-persistent-storage mountPath: /var/lib/mysql volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pv-claim --- apiVersion: v1 kind: Service metadata: name: mysql spec: ports: - port: 3306 selector: app: mysql clusterIP: None 2 sebagai berikut

This is `mysql-depl.yaml` file: apiVersion: apps/v1 kind: Deployment metadata: name: mysql spec: selector: matchLabels: app: mysql strategy: type: Recreate template: metadata: labels: app: mysql spec: containers: - image: mysql name: mysql env: - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: mysql-secret key: MYSQL_KEY ports: - containerPort: 3306 name: mysql volumeMounts: - name: mysql-persistent-storage mountPath: /var/lib/mysql volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pv-claim --- apiVersion: v1 kind: Service metadata: name: mysql spec: ports: - port: 3306 selector: app: mysql clusterIP: None _3

Ini adalah berkas This is `mysql-depl.yaml` file: apiVersion: apps/v1 kind: Deployment metadata: name: mysql spec: selector: matchLabels: app: mysql strategy: type: Recreate template: metadata: labels: app: mysql spec: containers: - image: mysql name: mysql env: - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: mysql-secret key: MYSQL_KEY ports: - containerPort: 3306 name: mysql volumeMounts: - name: mysql-persistent-storage mountPath: /var/lib/mysql volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pv-claim --- apiVersion: v1 kind: Service metadata: name: mysql spec: ports: - port: 3306 selector: app: mysql clusterIP: None _4

apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mysql-pv-claim spec: storageClassName: manual accessModes: - ReadWriteOnce resources: requests: storage: 20Gi --- apiVersion: v1 kind: PersistentVolume metadata: name: mysql-pv-volume labels: type: local spec: storageClassName: manual capacity: storage: 20Gi accessModes: - ReadWriteOnce hostPath: path: "/mnt/data"

Saya melakukan This is `mysql-depl.yaml` file: apiVersion: apps/v1 kind: Deployment metadata: name: mysql spec: selector: matchLabels: app: mysql strategy: type: Recreate template: metadata: labels: app: mysql spec: containers: - image: mysql name: mysql env: - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: mysql-secret key: MYSQL_KEY ports: - containerPort: 3306 name: mysql volumeMounts: - name: mysql-persistent-storage mountPath: /var/lib/mysql volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pv-claim --- apiVersion: v1 kind: Service metadata: name: mysql spec: ports: - port: 3306 selector: app: mysql clusterIP: None _5 dan berhasil dibuat

This is `mysql-depl.yaml` file: apiVersion: apps/v1 kind: Deployment metadata: name: mysql spec: selector: matchLabels: app: mysql strategy: type: Recreate template: metadata: labels: app: mysql spec: containers: - image: mysql name: mysql env: - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: mysql-secret key: MYSQL_KEY ports: - containerPort: 3306 name: mysql volumeMounts: - name: mysql-persistent-storage mountPath: /var/lib/mysql volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pv-claim --- apiVersion: v1 kind: Service metadata: name: mysql spec: ports: - port: 3306 selector: app: mysql clusterIP: None

Saya melakukan This is `mysql-depl.yaml` file: apiVersion: apps/v1 kind: Deployment metadata: name: mysql spec: selector: matchLabels: app: mysql strategy: type: Recreate template: metadata: labels: app: mysql spec: containers: - image: mysql name: mysql env: - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: mysql-secret key: MYSQL_KEY ports: - containerPort: 3306 name: mysql volumeMounts: - name: mysql-persistent-storage mountPath: /var/lib/mysql volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pv-claim --- apiVersion: v1 kind: Service metadata: name: mysql spec: ports: - port: 3306 selector: app: mysql clusterIP: None _6 dan berhasil dibuat

Tetapi ketika saya ingin menjalankan mysql di dalam pod terkait menggunakan This is `mysql-depl.yaml` file: apiVersion: apps/v1 kind: Deployment metadata: name: mysql spec: selector: matchLabels: app: mysql strategy: type: Recreate template: metadata: labels: app: mysql spec: containers: - image: mysql name: mysql env: - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: mysql-secret key: MYSQL_KEY ports: - containerPort: 3306 name: mysql volumeMounts: - name: mysql-persistent-storage mountPath: /var/lib/mysql volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pv-claim --- apiVersion: v1 kind: Service metadata: name: mysql spec: ports: - port: 3306 selector: app: mysql clusterIP: None 8 lalu This is `mysql-depl.yaml` file: apiVersion: apps/v1 kind: Deployment metadata: name: mysql spec: selector: matchLabels: app: mysql strategy: type: Recreate template: metadata: labels: app: mysql spec: containers: - image: mysql name: mysql env: - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: mysql-secret key: MYSQL_KEY ports: - containerPort: 3306 name: mysql volumeMounts: - name: mysql-persistent-storage mountPath: /var/lib/mysql volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pv-claim --- apiVersion: v1 kind: Service metadata: name: mysql spec: ports: - port: 3306 selector: app: mysql clusterIP: None 9 perintah, ia meminta kata sandi dan setelah memasukkan kata sandi (ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 0) saya mengerti

Bagaimana cara memperbaiki kesalahan 2002 HY000?

Singkatnya, kami menyelesaikan 'kesalahan MySQL 2002 (hy000)' dengan mudah dengan cara sederhana seperti memulai ulang server MySQL, memperbaiki ruang disk, memperbarui alamat pengikatan, etc.

Apa kesalahan koneksi 2002 di MySQL?

Kesalahan (2002) Tidak dapat tersambung. biasanya berarti tidak ada server MySQL yang berjalan di sistem atau Anda menggunakan nama file soket Unix atau nomor port TCP/IP yang salah saat mencoba menyambung ke server.

Bagaimana cara memeriksa apakah MySQL dapat dijangkau di port 3306?

Cara yang benar adalah menggunakan. sudo lsof -i. 3306 .

Bagaimana cara memperbaiki koneksi MySQL ditolak?

Periksa apakah nama pengguna DB, kata sandi DB, host database, dan port database sudah benar . (jika Anda tidak yakin, hubungi administrator basis data Anda atau periksa akun hosting web Anda untuk kredensial terkini). Jika file konfigurasi mereferensikan host = "localhost" , Anda dapat mencoba mengubahnya menjadi 127. 0.

Postingan terbaru

LIHAT SEMUA