PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Cara Menginstal PostgreSQL 12 di Ubuntu 20.04 DigitalOcean

Fitur PostgreSQL dan Kasus Penggunaan

PostgreSQL adalah Sistem Manajemen Basis Data Relasional (DBMS) sumber terbuka. Ini adalah sistem manajemen dan analisis basis data canggih yang terutama digunakan untuk platform eCommerce, transaksi pembayaran, dan berbagai solusi pergudangan data. Sudah ada selama lebih dari 30 tahun dan diperbarui secara berkala setiap tahun, mendukung berbagai fungsi SQL seperti pemicu, jenis dan fungsi yang ditentukan pengguna, sub-kueri, dll.

PostgreSQL adalah salah satu database open source tercanggih di dunia. Sangat cocok untuk beberapa kasus penggunaan produksi dan pengembangan. Ini memberikan banyak keuntungan seperti partisi yang ditingkatkan dan kinerja kueri (terutama pada kumpulan data besar), peningkatan B-tree untuk pemanfaatan ruang yang optimal, statistik nilai paling umum (MCV) multi-kolom, ekspresi tabel umum dengan inlining kueri dan kontrol checksum.

Beberapa kata tentang Ubuntu 20.04 di DigitalOcean

Ubuntu adalah sistem operasi desktop open-source yang populer. Ubuntu 20.04 menyertakan banyak fitur mutakhir, seperti alat untuk mengelola snapshot ZFS, peningkatan kernel utama, dan peningkatan keamanan. Platform cloud DigitalOcean menyediakan infrastruktur yang kuat dan ketersediaan global untuk mengembangkan, mengelola, dan menskalakan aplikasi di cloud. Dengan produk komputasi, penyimpanan, database, dan jaringannya, pengembang dapat membangun aplikasi web dan seluler, layanan streaming, game, solusi SaaS, dan banyak lagi. Menawarkan fitur seperti jaringan pribadi bersama, alat DevOps sekali klik, dan hard drive SSD, DigitalOcean adalah pilihan yang fleksibel, aman, dan sederhana untuk solusi mission-critical.

Tutorial ini memberikan petunjuk rinci tentang cara menginstal PostgreSQL di DigitalOcean Ubuntu 20.04. Tanpa basa-basi lagi, mari kita mulai!

Ingin mengatur PostgreSQL secara otomatis hanya dengan beberapa klik?

Pelajari lebih lanjut tentang bagaimana ScaleGrid dapat membantu Anda menerapkan PostgreSQL di DigitalOcean dalam hitungan menit, dan biarkan kami menyelesaikan seluruh proses penyiapan, konfigurasi, dan penginstalan! Lihat PostgreSQL kami di halaman DigitalOcean untuk melihat bagaimana ScaleGrid dapat membuat Anda lebih fokus pada pengembangan produk Anda, dan lebih sedikit pada pengelolaan database. Atau cukup ikuti panduan sederhana kami tentang cara memulai PostgreSQL di DigitalOcean dengan ScaleGrid dan coba sendiri dengan uji coba gratis kami selama 30 hari!

Prasyarat untuk Menginstal PostgreSQL

Sebelum kita masuk ke instalasi sebenarnya PostgreSQL 12 di DigitalOcean Ubuntu 20.04, Anda harus memastikan sistem Anda memenuhi prasyarat berikut.

  • Server harus memiliki setidaknya firewall UFW dasar untuk memastikan bahwa hanya koneksi ke layanan tertentu yang diizinkan.
  • Sistem harus diperbarui untuk instance server baru dan di-boot ulang. Untuk melakukannya, gunakan perintah berikut:
    • sudo apt update && sudo apt upgrade –y
    • sudo reboot

Menginstal PostgreSQL di Ubuntu 20.04 DigitalOcean

Anda dapat menginstal PostgreSQL 12 menggunakan repositori resmi/default Ubuntu 20.04 menggunakan sistem manajer paket apt. Sebelum melakukan ini, Anda seharusnya sudah me-refresh indeks paket lokal server Anda (lihat prasyarat di atas).

Repositori berisi paket yang berbeda (termasuk add-on pihak ketiga) seperti:

  • klien postgresql
  • postgresql
  • libpq-dev
  • postgresql-server-dev
  • paket pgadmin

Kemudian instal paket PostgreSQL 12 lengkap beserta modul postgresql-contrib yang menyediakan utilitas dan fungsionalitas tambahan. Ini dapat diinstal dengan menjalankan perintah berikut:

sudo apt install postgresql postgresql-contrib –y

Kemudian mulai layanan PostgreSQL pada sistem reboot dengan menjalankan perintah berikut:

sudo systemctl start postgresql

Untuk memulai layanan PostgreSQL secara otomatis saat startup sistem, jalankan:

sudo systemctl enable postgresql

Verifikasi bahwa layanan PostgreSQL berjalan seperti yang diharapkan dengan menjalankan systemctl status postgresql:

sudo systemctl status postgresql

Ini akan mengembalikan status layanan PostgreSQL dan harus menunjukkan aktif, mirip dengan tangkapan layar di bawah.

Menyesuaikan Inisialisasi PostgreSQL

Setelah instalasi, cluster database dapat dibuat dengan bantuan perintah initdb. Perintah initdb harus dijalankan dari dalam pengguna database, dan bukan dari pengguna root. Pengguna root dapat membuat direktori kosong yang dapat dikunyah (mengubah perintah pemilik) oleh pengguna postgres. Direktori ini akan berisi data sebagai template, yang akan disalin ke semua database secara default. Dari pengguna postgres, perintah berikut dapat dipanggil dengan opsi dan nama direktori yang sesuai.

initdb [option...] [ --pgdata | -D ] directory

Perintah initdb dapat dijalankan sebagai pengguna yang diautentikasi dengan flag yang berbeda untuk membuat template db di direktori tertentu.

Di bawah ini adalah daftar bendera tertentu seperti yang terlihat pada tangkapan layar di atas:

  • --encoding UTF8 (bisa apa saja berdasarkan Lokal).
    • Bendera penyandian menyetel penyandian template basis data. Semua database yang dibuat menggunakan template itu juga akan menggunakan metode penyandian yang sama kecuali ditentukan secara terpisah. Ada banyak metode penyandian yang tersedia untuk berbagai bahasa.
  • --pgdata test (bendera ini membuat direktori bernama “test” untuk menyimpan data database).
    • Menentukan direktori tempat cluster database menyimpan datanya.
  • -A peer (ini menentukan metode otentikasi yang digunakan dalam file pg_hba.conf).
    • Menentukan metode otentikasi default untuk pengguna lokal yang digunakan di pg_hba.conf (host dan jalur lokal). initdb akan mengisi entri pg_hba.conf menggunakan metode otentikasi yang ditentukan untuk koneksi non-replikasi serta replikasi.
  • -k (menggunakan data-checksum untuk memeriksa kesalahan I/O)
    • Menentukan checksum data pada semua halaman data untuk mendeteksi kerusakan sistem I/O. Namun, ini memperlambat kecepatan pemrosesan basis data).

Mengamankan Basis Data PostgreSQL Anda

Selama instalasi, pengguna baru bernama postgres dibuat secara otomatis secara default. Pengguna ini memiliki hak istimewa sistem penuh, jadi penting untuk mengamankan akun pengguna dengan kata sandi yang kuat.

sudo passwd postgres

Sekarang beralih ke akun pengguna postgres. Pengguna harus memiliki hak sudo.

sudo su – postgres

Versi PostgreSQL dapat dikonfirmasi dengan menjalankan

psql -c "SELECT version();"

Untuk mengubah kata sandi postgres perintah penggunaan pengguna:

psql -c "ALTER USER postgres WITH PASSWORD 'MyNewPassword'";

Catatan:Kata sandi ini hanya berlaku jika postgres pengguna terhubung ke PostgreSQL melalui jaringan.

Untuk mengakses database Postgres, Anda dapat masuk ke database PostgreSQL dengan:

psql postgres

Secara default, PostgreSQL tidak memerlukan otentikasi kata sandi dari pengguna sistem lokal untuk mengakses database. Ini disebut "otentikasi rekan". Namun, otentikasi kata sandi dapat diaktifkan dari dalam pg_hba.conf berkas.

Untuk mengedit pg_hba.conf ini file, gunakan \q perintah untuk keluar dari shell postgres dan masuk ke shell Linux. Dari dalam shell Linux, edit pg_hba.conf mengajukan. Pastikan Anda membuat cadangan sebelum mengedit file.

sudo cp /etc/postgresql/12/main/pg_hba.conf /etc/postgresql/12/main/pg_hba.conf.bak

Kemudian edit file tersebut menggunakan editor nano,

nano /etc/postgresql/12/main/pg_hba.conf

Temukan baris lokal di bawah “Hanya koneksi soket domain Unix” dan ubah METHOD atribut dari peer ke md5 .

Muat ulang layanan PostgreSQL untuk menerapkan pengaturan baru.

sudo systemctl reload postgresql

Harap dicatat di sini bahwa ada dua pengguna dengan nama postgres; satu adalah pengguna Linux untuk menghubungkan dan mengakses Basis Data, dan yang lainnya adalah pengguna basis data yang digunakan untuk melakukan peran administratif di dalam basis data.

Mengonfigurasi Basis Data PostgreSQL Anda

PostgreSQL dapat dikonfigurasi secara manual untuk mendengarkan alamat dan port dengan mengubah parameter yang diperlukan dalam file postgresql.conf.

Secara default, port PostgreSQL 5432 digunakan dan mendengarkan di localhost. Ini dapat diubah dengan mengedit file konfigurasi.

sudo nano /etc/postgresql/12/main/postgresql.conf

Layanan akan dimulai ulang setelah melakukan perubahan apa pun.

sudo systemctl restart postgresql

Membuat Peran Baru di PostgreSQL 12

Otentikasi dan otorisasi di PostgreSQL 12 terjadi melalui konsep "peran". Di sini, peran adalah istilah fleksibel yang mengacu pada pengguna dan grup.

Masuk ke pengguna postgres dengan menggunakan perintah berikut:

sudo su postgres

Peran baru dapat dibuat secara interaktif dari baris perintah dengan perintah createrole –interactive. Di sini, penggunaan tanda –interactive akan membuat permintaan untuk nama peran baru, dan apakah peran ini harus diberi izin pengguna super.

Pengguna baru dapat dibuat dengan peran baru di luar shell postgresql pengguna sebagai:

createuser –interactive

Output dari perintah pengguna baru akan terlihat seperti ini.

Membuat dan Menghapus Database di Server PostgreSQL Anda

Di PostgreSQL 12, ketika peran baru dibuat, database baru dengan nama yang sama harus ada saat peran mencoba terhubung dengan database secara default. Jadi seperti pada bagian sebelumnya, dimana user liam dibuat, database dengan nama tersebut dapat dibuat dengan menggunakan perintah berikut:

createdb liam

Dalam PostgreSQL 12, ada beberapa jalur untuk membuat database sesuai kebutuhan:

  • Saat login dari akun postgres:postgres@server:~$ createdb liam
  • Gunakan sudo , sudo –u postgres created liam

Untuk menghapus database, kita dapat menggunakan

dropdb liam

Membuka Prompt Postgres dengan Peran Baru

Pengguna Linux dengan nama yang sama dengan database dan peran Postgres dapat dibuat untuk masuk dengan otentikasi berbasis identitas.

Pengguna Linux dapat dibuat (jika belum ada) dari baris perintah dengan mengetik:

sudo adduser noah

Setelah pengguna dibuat, dapat login dengan menggunakan perintah berikut;

sudo -u noah psql

Database saat ini dan informasi pengguna dapat diakses dengan menggunakan;

\conninfo

Pengelolaan PostgreSQL

Membuat dan Menghapus Tabel

Perintah SQL CREATE TABLE dapat digunakan untuk membuat tabel apapun dalam database. Daftar kolom dan tipe data untuk setiap kolom harus ditentukan dalam perintah.

CREATE TABLE customers (customer_id int, first_name varchar(80), last_name varchar(80));

Perintah ini akan membuat tabel bernama "pelanggan". Kolom pertama akan menampung ID Pelanggan dari tipe integer. Kolom kedua dan ketiga bertipe karakter dan akan berisi nama depan dan belakang pelanggan dengan panjang maksimal 80 karakter.

Tabel baru ini dapat dilihat dengan mengetikkan \d .

Tabel dapat dihapus dengan mengetik:

DROP TABLE customers;

Memasukkan, Memilih, dan Menghapus Data dalam Tabel

Data ditambahkan ke dalam tabel PostgreSQL dalam bentuk baris. Setiap baris mewakili kumpulan data yang terpisah. Data dapat dimasukkan ke dalam baris dengan menggunakan perintah INSERT INTO. Nama perintah diikuti dengan “nama tabel” (dalam contoh berikut, pelanggan), kata kunci VALUES, daftar nilai yang dipisahkan dengan koma.

INSERT INTO customers VALUES (1, 'Owen', 'Buyer');

INSERT INTO customers VALUES (2, 'Luke', 'Seller');

Isi tabel dapat dilihat dengan menggunakan perintah SELECT.

SELECT * FROM customers;

Sebuah baris dapat dihapus dengan menggunakan DELETE memerintah. WHERE kata kunci digunakan untuk memilih baris secara kondisional.

DELETE FROM customers WHERE last_name = 'Seller';

Untuk menghapus semua baris, ketik:

SELECT * FROM customers;

Menambahkan dan Menghapus Kolom dari Tabel

PostgreSQL 12 menyediakan kemampuan untuk menambah atau menghapus kolom dari tabel yang ada dengan mudah.

ALTER TABLE perintah digunakan bersama dengan ADD kata kunci untuk menambahkan kolom ke tabel yang ada. Bidang ini dikosongkan untuk baris yang ada dalam tabel.

ALTER TABLE customers ADD branch_id int;

Perintah yang sama digunakan dengan DROP kata kunci untuk menghapus kolom tertentu dari tabel.

ALTER TABLE customers DROP first_name;

Memperbarui Data dalam Tabel

Selain menambah dan menghapus record di dalam tabel, kita juga bisa memodifikasinya. Ini dapat dilakukan dengan menggunakan UPDATE memerintah. Kita perlu menentukan kolom yang perlu diedit dengan nilai baru.

UPDATE customers SET last_name= 'Buyer' WHERE customer_id = '1';

Pertimbangan untuk Lingkungan Produksi

PostgreSQL 12 dapat digunakan dengan aman di lingkungan produksi. Basis data ini sangat stabil sehingga tidak ada masalah dalam mengimplementasikannya dalam skala besar. Untuk informasi lebih lanjut, silakan lihat artikel kami sebelumnya di sini.

Kesimpulan

Tutorial ini menunjukkan kepada Anda cara mengatur PostgreSQL 12 di server Ubuntu 20.04 yang berjalan di DigitalOcean. PostgreSQL 12 adalah aplikasi kompleks dengan banyak fitur baru dan canggih, seperti peningkatan manajemen ruang indeks B-tree standar, dan dukungan untuk pembangunan kembali indeks bersamaan dan mencakup pembuatan indeks. Versi 12 juga mendukung inline WITH query dan collations yang disediakan ICU, meningkatkan partisi, dan menyediakan antarmuka penyimpanan tabel yang dapat dicolokkan untuk membuat dan menggunakan metode berbeda untuk penyimpanan tabel.

Sekarang setelah Anda mengetahui dasar-dasar menyiapkan dan menggunakan server PostgreSQL, mengapa tidak mencoba alternatif terkelola? Dengan layanan terkelola seperti ScaleGrid, Anda dapat menyelesaikan seluruh proses penyiapan, penginstalan, dan konfigurasi dengan mengklik tombol. Mulai uji coba gratis 30 hari Anda hari ini dan buktikan sendiri! Tidak diperlukan kartu kredit dan Anda dapat mengatur database pertama Anda dalam hitungan menit.

Kami telah membahas dasar-dasar instalasi di sini, dan juga memberikan beberapa instruksi untuk administrasi database umum. Kami harap panduan ini bermanfaat bagi Anda.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kesalahan saat mengatur n_distinct menggunakan variabel plpgsql

  2. Bagaimana cara mengubah kolom PG menjadi NULLABLE TRUE?

  3. Apakah mungkin untuk mendefinisikan variabel global di postgresql

  4. instal permata pg tidak dapat mengikat ke libpq

  5. Bagaimana cara menginstal postgres dengan NSIS dengan semua parameter?