Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Akses mysql yang berjalan di localhost dari minikube

Sebagai OS dan minikube vm-driver tidak disebutkan, saya menganggapnya --vm-driver=virtualbox karena itu mungkin kasus yang paling umum. Jika Anda menggunakan sesuatu yang berbeda, Anda perlu menyesuaikan solusi ini sesuai dengan konfigurasi Anda.

Penjelasan:

127.0.0.1 adalah localhost (lo0 ) alamat IP antarmuka. Node, Host, dan Pod memiliki antarmuka localhost sendiri dan tidak terhubung satu sama lain.

mysql-server Your Anda sedang berjalan di mesin Host dan tidak dapat diakses menggunakan localhost (atau rentang IP-nya) dari dalam pod cluster minikube atau dari dalam minikube vm.

Solusi:

  1. Anda harus memiliki jaringan antara minikube VM dan host. Jaringan NAT default di Virtualbox tidak bagus untuk itu, jadi lebih baik buat jaringan khusus host lain. Mari membuat jaringan khusus host tambahan di UI Virtualbox dengan nama vmnet2 dan rentang IP 192.168.77.1/24 . Anda tidak perlu mengaktifkan DHCP untuk jaringan itu.

  2. Anda harus mengkonfigurasi mysql untuk mendengarkan pada antarmuka vmnet2 atau ip 192.168.77.1 yang secara default digunakan untuk mesin host. Periksa apakah itu dapat diakses dari host:

mysql -h 192.168.77.1 -u root -p 
  1. Untuk melampirkan jaringan ini ke minikube VM --host-only-cidr key harus digunakan. Berbagai jenis vm-driver gunakan opsi cli yang berbeda untuk tujuan ini. Periksa minikube start --help keluaran. Jadi, untuk virtualbox akan terlihat seperti berikut:

    minikube start --cpus 2 \
                   --memory 2048 \
                   --disk-size 20g \
                   --vm-driver virtualbox \
                   --network-plugin flannel \
                   --kubernetes-version v1.12.2 \
                   --host-only-cidr 192.168.77.1/24
    

    Saya menulis opsi cli paling umum lainnya hanya untuk kenyamanan.

    MinikubeVM akan mendapatkan alamat IP berikut:192.168.77.100 (setidaknya pertama kali. )Anda dapat memeriksanya menggunakan minikube ssh lalu ifconfig perintah.

  2. Bagian terakhir - kita perlu membuat Service dan Endpoint untuknya di dalam minikube kelompok:

kubectl apply -f mysql-service.yaml

Berikut adalah isi dari mysql-service.yaml berkas:

---
apiVersion: v1
kind: Service
metadata:
   name: mysql-service
spec:
   type: ClusterIP
   ports:
   - protocol: TCP
     port: 3306
     targetPort: 3306
---
apiVersion: v1
kind: Endpoints
metadata:
  name: mysql-service
subsets:
  - addresses:
      - ip: 192.168.77.1
    ports:
      - port: 3306
  1. Sekarang kita dapat menggunakan mysql-service nama dan port 3306 di dalam setiap pod dari cluster ini sebagai titik tujuan.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Memperbarui semua baris mengatur bidang ke 0, tetapi mengatur bidang satu baris ke 1

  2. MySQL memeriksa apakah ada tabel tanpa melempar pengecualian

  3. Bagaimana cara mengubah sub string?

  4. Dapatkan catatan dengan <apa pun> tertinggi/terkecil . per grup

  5. Apakah pernyataan yang disiapkan di-cache di sisi server di beberapa halaman dimuat dengan PHP?