Ghid Configurare și Migrare PostgreSQL pe VPS
Acest ghid descrie cum creezi o bază de date de test pe local cu pgAdmin, cum configurezi baza de date pe VPS-ul Ubuntu (63.250.40.142) și cum transferi datele sau te conectezi direct la server de pe Mac.
1. Crearea Bazei de Date de Test pe Local (în pgAdmin)
- Deschide pgAdmin 4 pe Mac și conectează-te la serverul local.
- În panoul din stânga (Browser), dă click dreapta pe Databases → Create → Database...
- Introdu numele bazei de date:
testdbși apasă Save. - Deschide instrumentul Query: click dreapta pe
testdb→ Query Tool. - Rulează următorul script SQL pentru a crea o tabelă de test și a introduce câteva date:
-- Creează tabela 'users'
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Introdu date de test
INSERT INTO users (name, email) VALUES
('Alin', 'alin@bytebook.xyz'),
('Mihai', 'mihai@bytebook.xyz');
-- Verifică datele
SELECT * FROM users;
2. Crearea Bazei de Date de Test pe VPS (Ubuntu)
Deoarece PostgreSQL este deja instalat pe VPS, trebuie să creezi utilizatorul și baza de date pe server.
A. Conectare SSH și deschidere consola PostgreSQL
ssh root@63.250.40.142
sudo -i -u postgres
psql
B. Configurare Utilizator și Bază de Date în psql
-- Creează utilizatorul 'appuser' cu parolă securizată
CREATE USER appuser WITH PASSWORD 'ParolaTaSecurizata123!';
-- Creează baza de date 'testdb' deținută de 'appuser'
CREATE DATABASE testdb OWNER appuser;
-- Oferă toate drepturile
GRANT ALL PRIVILEGES ON DATABASE testdb TO appuser;
-- Ieși din psql
\q
Ieși din utilizatorul postgres înapoi la root:
exit
3. Permiterea Conexiunilor de la distanță (Remote Connections)
Implicit, PostgreSQL ascultă doar pe localhost. Ca să poți conecta pgAdmin de pe Mac direct la baza de date de pe VPS, trebuie să ajustezi 2 fișiere de configurare:
A. Modifică postgresql.conf (Adresă Ascultare)
nano /etc/postgresql/*/main/postgresql.conf
Caută linia listen_addresses și modific-o astfel:
listen_addresses = '*'
B. Modifică pg_hba.conf (Permisiuni Acces IP)
nano /etc/postgresql/*/main/pg_hba.conf
Adaugă următoarea linie la finalul fișierului:
host all all 0.0.0.0/0 scram-sha-256
C. Repornește PostgreSQL și deschide portul 5432
systemctl restart postgresql
ufw allow 5432/tcp
4. Conectarea pgAdmin de pe Mac direct la VPS
Te poți conecta la baza de date de pe server direct din interfața grafică pgAdmin de pe Mac:
- Deschide pgAdmin pe Mac.
- Dă click dreapta pe Servers → Register → Server...
- În tab-ul General: Name =
VPS Bytebook - În tab-ul Connection:
- Host name/address:
63.250.40.142 - Port:
5432 - Maintenance database:
testdb - Username:
appuser - Password:
ParolaTaSecurizata123! - Bifează Save password?
- Host name/address:
- Apasă pe Save.
5. Migrarea Datelor de pe Local pe VPS (Export/Import)
Metoda A: Folosind pgAdmin (Grafic)
- În pgAdmin local, click dreapta pe
testdb→ Backup... - Cale fișier: alege o locație pe Mac (ex:
testdb_backup.sql), Format: Plain → Backup. - În conexiunea VPS Bytebook, click dreapta pe
testdb→ Restore... și selectează fișierul.
Metoda B: Folosind Terminalul (Linia de comandă)
1. Export pe Mac:
pg_dump -U postgres -h localhost testdb > ~/Desktop/testdb_dump.sql
2. Import direct pe VPS de pe Mac:
psql -h 63.250.40.142 -U appuser -d testdb -f ~/Desktop/testdb_dump.sql
6. Testarea Conexiunii din Aplicațiile Tale
Java (Spring Boot - application.properties)
spring.datasource.url=jdbc:postgresql://localhost:5432/testdb
spring.datasource.username=appuser
spring.datasource.password=ParolaTaSecurizata123!
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.hibernate.ddl-auto=update
Python (FastAPI / SQLAlchemy)
DATABASE_URL = "postgresql://appuser:ParolaTaSecurizata123!@localhost:5432/testdb"
Node.js (Express / pg package)
const { Pool } = require('pg');
const pool = new Pool({
user: 'appuser',
host: 'localhost',
database: 'testdb',
password: 'ParolaTaSecurizata123!',
port: 5432,
});