Menghubungkan menggunakan klien psql

Anda dapat menggunakan klien command line PostgreSQL untuk terhubung ke Cloud SQL. Halaman ini menjelaskan cara menghubungkan psql klien ke instance Cloud SQL Anda, baik yang berjalan secara lokal di mesin klien Anda, di VM Compute Engine, atau di Cloud Shell.

Sebelum memulai

Sebelum Anda dapat menggunakan klien psql untuk terhubung ke instance Cloud SQL, lakukan hal berikut:

Menggunakan klien PostgreSQL di mesin lokal atau VM Compute Engine

Penggunaan klien psql untuk terhubung ke instance Cloud SQL melibatkan tiga tugas tingkat tinggi:

  1. Instal klien.
  2. Konfigurasi akses ke instance Cloud SQL Anda.
  3. Hubungkan ke instance Cloud SQL Anda..

Menginstal klien

Untuk menginstal klien psql, lakukan hal berikut:

Debian/Ubuntu

Instal klien psql dari pengelola paket:

sudo apt-get update
sudo apt-get install postgresql-client

CentOS/RHEL

Instal klien psql dari pengelola paket:

sudo yum install postgresql

openSUSE

Instal klien psql dari pengelola paket:

sudo zypper install postgresql

Platform lainnya

  1. Download PostgreSQL Core Distribution untuk platform dari halaman Download PostgreSQL.
    Core Distribution sudah termasuk klien psql.
  2. Instal database PostgreSQL, dengan mengikuti petunjuk di halaman download.

Konfigurasi akses ke instance Cloud SQL

Untuk mengonfigurasi akses ke instance Anda, lakukan hal berikut:

  1. Dari mesin klien atau instance VM Compute Engine, gunakan Apa IP saya untuk melihat alamat IP mesin klien.
  2. Salin alamat IP tersebut.
  3. Di konsol Google Cloud, buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  4. Untuk membuka halaman Ringkasan instance, klik nama instance.
  5. Pilih Koneksi dari menu navigasi SQL.
  6. Pilih tab Networking.
  7. Di bagian Jaringan yang diizinkan, klik Tambahkan jaringan, lalu masukkan alamat IP komputer tempat klien diinstal.
  8. Klik Done. Lalu klik Save di bagian bawah halaman untuk menyimpan perubahan.
  9. Hubungkan ke instance Anda, baik menggunakan SSL/TLS atau tanpa enkripsi (tanpa menggunakan SSL/TLS).

Menghubungkan ke instance Cloud SQL tanpa enkripsi

Agar Anda dapat terhubung tanpa enkripsi, instance harus memiliki mode SSL yang ditetapkan ke ALLOW_UNENCRYPTED_AND_ENCRYPTED. Di Konsol Google Cloud, konfigurasi yang setara adalah Izinkan traffic jaringan yang tidak dienkripsi.

Untuk mengetahui informasi selengkapnya tentang konfigurasi SSL/TLS pada instance Anda, lihat Mengonfigurasi sertifikat SSL/TLS.

Untuk terhubung ke instance, lakukan langkah berikut:

  1. Pastikan Anda telah menginstal klien dan mengonfigurasi akses ke instance Anda.
  2. Mulai klien psql:
    psql "sslmode=disable dbname=postgres user=postgres hostaddr=INSTANCE_IP_ADDRESS"
    
  3. Masukkan sandi.
  4. Prompt psql akan muncul.

Menghubungkan ke instance Cloud SQL menggunakan SSL/TLS

Agar terhubung ke instance Anda menggunakan SSL/TLS dan autentikasi bawaan:

  1. Mulai klien psql:
    psql "sslmode=require \
          hostaddr=INSTANCE_IP_ADDRESS \
          user=postgres dbname=DB_NAME"
       

    Contoh:

    psql "sslmode=require \
          hostaddr=203.12.34.56 \
          user=postgres dbname=postgres"
       

    Anda mungkin juga perlu membuat File Layanan Koneksi untuk mengelola parameter koneksi, terutama jika Anda terhubung ke lebih dari satu instance. Untuk mengetahui informasi selengkapnya, lihat dokumentasi PostgreSQL.

  2. Masukkan sandi. Sandi bersifat wajib untuk Cloud SQL meskipun PostgreSQL mendukung konektivitas tanpa sandi saat menggunakan SSL/TLS.
  3. Anda dapat mengonfirmasi bahwa koneksi dienkripsi dengan mencari cipher di informasi koneksi:
    SSL connection (cipher: ECDHE-RSA-AES128-GCM-SHA256, bits: 128)
    

Menghubungkan ke instance Cloud SQL menggunakan verifikasi sertifikat klien dan SSL/TLS

Jika ssl_mode pada instance Cloud SQL Anda dikonfigurasikan ke TRUSTED_CLIENT_CERTIFICATE_REQUIRED, Anda juga harus memberikan identitas klien terverifikasi saat login.

Untuk terhubung menggunakan sertifikat SSL/TLS dengan verifikasi klien, Anda memerlukan hal berikut:

  • Sertifikat kunci publik klien dalam file client-cert.pem.
  • Kunci pribadi klien dalam file client-key.pem.

Selain itu, agar klien dapat memverifikasi identitas server untuk autentikasi bersama, tentukan sertifikat server server-ca.pem.

Misalnya, untuk memulai klien psql:
   psql "sslmode=verify-ca sslrootcert=server-ca.pem \
      sslcert=client-cert.pem sslkey=client-key.pem \
      hostaddr=INSTANCE_IP_ADDRESS \
      user=postgres dbname=DB_NAME"
   

Jika Anda tidak memiliki sertifikat klien dan kunci pribadi yang sesuai, buat sertifikat klien baru.

Menggunakan klien di Cloud Shell

Untuk terhubung ke instance Cloud SQL (hanya IP publik):

  1. Buka konsol Google Cloud.

    Buka konsol Google Cloud

  2. Klik ikon Cloud Shell di sebelah kanan pada toolbar.

    Cloud Shell memerlukan waktu beberapa saat untuk diinisialisasi.

  3. Pada layar perintah Cloud Shell, gunakan klien bawaan untuk terhubung ke instance Cloud SQL Anda:
    gcloud sql connect INSTANCE_ID \
    --user=postgres
    
  4. Masukkan sandi.

Perintah gcloud sql connect tidak mendukung koneksi ke instance Cloud SQL menggunakan IP pribadi atau SSL/TLS. Agar terhubung dengan enkripsi, instal dan gunakan proxy di Cloud Shell:

  1. Instal proxy (Linux 64-bit) di direktori /home/USER.
  2. Mulai proxy, menggunakan autentikasi gcloud CLI:

    ./cloud-sql-proxy INSTANCE_CONNECTION_NAME &

  3. Hubungkan ke database menggunakan koneksi TCP:

    psql -U USERNAME --host=127.0.0.1

Langkah selanjutnya

Cobalah sendiri

JIka Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi perfoma Cloud SQL dalam skenario di dunia nyata. Pelanggan baru mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.

Coba Cloud SQL gratis