Konfigurasi awal diperlukan setelah instalasi PostgreSQL pada CentOS dan sebelum memulai.
Tanggal Publikasi:17 Desember 2020.
INFOMARTION > Konfigurasi awal diperlukan setelah instalasi PostgreSQL pada CentOS dan sebelum memulai.
Ikhtisar.
Ini adalah prosedur konfigurasi awal yang diperlukan untuk menginstal dan memulai PostgreSQL pada CentOS. Informasi ini didasarkan pada asumsi bahwa CentOS7 digunakan. Bagian mengenai keamanan juga disertakan.
PostgreSQL direkomendasikan karena gratis dan sangat fungsional. Saya pernah mendengar bahwa fungsi-fungsi PostgreSQL dulunya lambat, tetapi fungsi-fungsi terbaru telah meningkat dan lebih cepat.
Versinya adalah sebagai berikut.
Versi CentOS | 7.6 (1810) |
---|---|
Versi PostgreSQL | 9.2.24 |
Daftar Isi
1. pasang
Bagian ini menjelaskan prosedur untuk menginstal PostgreSQL.
1-1. Menginstal PostgreSQL
Lakukan instalasi PostgreSQL dengan menggunakan perintah yum. Lakukan pekerjaan sebagai pengguna root.
[username@hostname ~]$ su -
[root@hostname ~]# yum -y install postgresql-server
2. Rincian penyiapan
Bagian ini menjelaskan konfigurasi hingga memulai PostgreSQL.
2-1. Buat pengguna PostgreSQL khusus.
Saya ingin membuat user khusus untuk memanipulasi PostgreSQL (menggunakan perintah psql), tetapi user tersebut sudah dibuat. Saya ingat saat membuat pengguna ketika saya membuatnya di masa lalu, jadi mungkin spesifikasinya sudah berubah.
Coba beralih ke pengguna dengan perintah berikut.
[root@hostname ~]# su - postgres
Karena beberapa orang mungkin menggunakan versi PostgreSQL yang lebih lama, harus disebutkan bahwa prosedur untuk mengatur variabel lingkungan dengan mengubah ".bashrc" berikut ini tidak lagi diperlukan.
export PGHOME=/var/lib/pgsql
export PGDATA=/var/lib/pgsql/data
export PGHOST=localhost
PGDATA default untuk pengguna postgres sekarang tampaknya menjadi '/var/lib/pgsql/data'. Hal ini dijelaskan sebagai merujuk ke "/usr/lib/systemd/system/postgresql.service".
2-2. Persiapan data PostgreSQL
Membuat data PostgreSQL. Pengkodean adalah UNICODE. Direktori "/var/lib/pgsql/data" telah dibuat secara default, tetapi mereka yang belum juga diminta untuk membuat folder.
-bash-4.2$ initdb --encoding=UNICODE
Karena "PGDATA=/var/lib/pgsql/data" diatur dalam "/usr/lib/systemd/system/postgresql.service", "initdb --encoding=UNICODE" akan membangun DB di bawah "/var/lib/pgsql/ data/", DB dibangun di bawah "/var/lib/pgsql/data/".
2-3. Memodifikasi berkas konfigurasi
Izinkan alamat IP untuk mengakses PostgreSQL. Atur sistem agar terotentikasi kata sandi untuk akses non-lokal.
[root@hostname ~]# vi /var/lib/pgsql/data/postgresql.conf
Modifikasi 'postgresql.conf' sebagai berikut.
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
#listen_addresses = 'localhost' # what IP address(es) to listen on;
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
Untuk menambahkan ini karena ini adalah bagian penting dari keamanan, jika Anda memasukkan pengaturan ini, Anda akan dapat mengakses situs dari IP mana pun. Jika IP yang akan diakses adalah tetap, harap sebutkan IP tetap.
Pengaturan ini diperlukan ketika masuk dari server selain server tempat PostgreSQL diinstal, misalnya pgadmin. Pengaturan ini tidak diperlukan jika Anda log masuk ke server dan menjalankan perintah psql. (karena koneksi berasal dari dirinya sendiri (localhost))
Ini adalah pengaturan keamanan yang penting, jadi minimalkan jumlah pengguna yang bisa mengaksesnya sebanyak mungkin.
Kemudian modifikasi 'pg_hba.conf'.
[root@hostname ~]# vi /var/lib/pgsql/data/pg_hba.conf
Tambahkan informasi berikut ini ke akhir dokumen.
#Otentikasi kata sandi dari luar.
host all all 0.0.0.0/0 md5
Dengan menyertakan pengaturan ini, kata sandi diperlukan ketika menghubungkan dari luar. Area-area ini bisa menjadi lubang keamanan yang serius jika tidak diatur atau diatur dengan tidak benar, jadi harap atur dengan hati-hati.
2-4. pemeriksaan bootstrap
Sekarang setelah prakonfigurasi selesai, periksa apakah PostgreSQL dimulai. Karena DB dibangun sebagai pengguna postgres, beralihlah ke pengguna postgres sebelum memulai.
[root@hostname ~]# su - postgres
-bash-4.2$ pg_ctl start
Setelah PostgreSQL berhasil dimulai, periksa apakah perintah psql berfungsi tanpa masalah. Jalankan perintah psql sebagai pengguna postgres.
-bash-4.2$ psql -l
Database List
Name | Owner | Encoding | Collation Order | Ctype(conversion operator) | Access rights
-----------+----------+------------------+--------------------+----------------------------+-----------------------
postgres | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 |
template0 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(3 lines)
Tidak apa-apa jika hasil di atas dikembalikan.
2-5. Pengaturan start-up otomatis
Meskipun tidak wajib, sulit untuk memulai PostgreSQL setiap kali server direstart, sehingga dikonfigurasikan agar PostgreSQL dimulai secara otomatis ketika server dimulai. Ini juga mendaftar ke perintah systemctl. Harap dicatat bahwa prosedur ini untuk CentOS7, jadi jika Anda menggunakan apa pun selain CentOS7, Anda perlu menggunakan perintah Service untuk menangani hal ini.
Periksa apakah '/usr/lib/systemd/system/postgresql.service' ada. Jika tidak, buatlah 'postgresql.service' menggunakan prosedur berikut ini. Jalankan sebagai pengguna root.
[root@hostname ~]# touch /etc/systemd/system/postgresql.service
[root@hostname ~]# vi /etc/systemd/system/postgresql.service
Informasi berikut ini disediakan.
[Unit]
#Deskripsi.
Description=PostgreSQL
#Kontrol pra- dan pasca-eksekusi.
#Before=xxx.service
After=network.target
[Service]
#Penunjukan pengguna dan grup
User=postgres
Group=postgres
#Setelah diaktifkan, atur status ke Activated (Diaktifkan).
Type=oneshot
RemainAfterExit=yes
#Mulai, berhenti dan muat ulang.
Environment=PGDATA=/var/lib/pgsql/data
ExecStart=/usr/bin/pg_ctl start -D /var/lib/pgsql/data
ExecStop=/usr/bin/pg_ctl stop
ExecReload=/usr/bin/pg_ctl reload
[Install]
#Pengaturan setara Runlevel 3.
WantedBy=multi-user.target
Berikutnya, daftarkan dengan perintah systemctl.
[root@hostname ~]# systemctl enable postgresql
[root@hostname ~]# systemctl is-enabled postgresql
enabled
[root@hostname ~]# systemctl list-unit-files --type=service | grep postgresql
postgresql.service enabled
[root@hostname ~]# systemctl daemon-reload
2-6. Menambahkan pengguna administratif ke PostgreSQL
Buat pengguna yang akan digunakan dalam aplikasi PostgreSQL, terpisah dari pengguna yang mengoperasikan PostgreSQL dari Linux. Ini adalah pengguna saat beroperasi dengan pgadmin, dll. Saya ingin mengubah kata sandi pengguna postgres yang ada secara default dan menggunakannya.
Jalankan perintah berikut sebagai pengguna postgres.
-bash-4.2$ psql
postgres=# alter role postgres with password 'Kata sandi (komputer)';
postgres=# \q
※Masukkan kata sandi yang ingin Anda tetapkan dalam bidang 'Password'.
2-7. Pengeboran firewall
Izinkan akses ke port PostgreSQL karena firewall (iptables untuk CentOS6 dan yang lebih lama) hanya mengizinkan akses ssh secara default pada CentOS7. Tambahkan juga opsi 'permanent' untuk membuat konfigurasi menjadi permanen.
[root@hostname ~]# firewall-cmd --permanent --zone=public --add-port=5432/tcp
[root@hostname ~]# firewall-cmd --reload
[root@hostname ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client http https ssh
ports: 8080/tcp 5432/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Jika tertulis 'ports: 5432/tcp', itu OK.
Akses melalui pgadmin. Anda seharusnya dapat masuk sebagai pengguna postgres dengan kata sandi yang baru saja Anda tetapkan.
3. ringkasan
Kami telah menjelaskan konfigurasi awal yang diperlukan ketika PostgreSQL diinstal. Pembangunan awal PostgreSQL dapat menjadi sebuah perjuangan, jadi silakan merujuk ke bagian ini.
Terima kasih telah menonton sampai akhir.