pg_dump komutuna parolayı etkileşimsiz olarak iletmek için aşağıdaki yöntemleri kullanabilirsiniz:
.pgpass Dosyası:
1. Terminali açılın ve aşağıdaki komutu kullanarak .pgpass dosyasını oluşturun:
touch ~/.pgpass
2. Ardından .pgpass dosyasını bir metin düzenleyiciyle açın ve düzenleyin. Örneğin, Nano metin düzenleyicisini kullanarak aşağıdaki komutu kullanabilirsiniz:
nano ~/.pgpass
3. Dosyanın içine aşağıdaki satırı ekleyin:
hostname:port:database:username:password
Örneğin, eğer PostgreSQL sunucusu localhost'ta çalışıyorsa ve kullanıcı adınız "myuser" ise dosya içeriği aşağıdaki gibi olabilir:
localhost:5432:mydatabase:myuser:mypassword
4. Dosyayı kaydedin ve dosyayı sadece sizin okuyabileceğiniz şekilde izinlerini ayarlamak için aşağıdaki komutu kullanın:
chmod 600 ~/.pgpass
Bu komut, .pgpass dosyasının sadece sahibi tarafından okunabileceğini ve değiştirilebileceğini belirtir.
PGPASSWORD Ortam Değişkeni:
5. Artık .pgpass dosyası oluşturuldu ve parola etkileşimi olmadan pg_dump komutunu kullanabilirsiniz. Örneğin, aşağıdaki komutu kullanarak pg_dump ile yedekleme yapabilirsiniz:
pg_dump -h hostname -p port -U username -d database > backup.sql
Örneğe uyarlayacak olursak şu şekilde gözükecektir:
pg_dump -h localhost -p 5432 -U mydatabase -d myuser > backup.sql
Bu komutta, '-h' parametresiyle localhost'u, '-p' parametresiyle 5432 bağlantı noktasını, '-U' parametresiyle kullanıcı adını ve '-d' parametresiyle veritabanını belirttik. 'backup.sql' ise yedekleme dosyasının adıdır.
.pgpass dosyası oluşturarak ve doğru izinleri ayarlayarak PostgreSQL pg_dump komutunu etkileşimsiz bir şekilde kullanabilirsiniz.
Bu dosyada parolanızı saklayarak, her seferinde parolayı elle girmek zorunda kalmazsınız. Ancak, .pgpass dosyasının güvenliğine dikkat etmek ve sadece sahibinin okuyabileceği şekilde izinlerini ayarlamak önemlidir.
Bu yöntem, otomatik yedekleme veya senaryolarında parolanın sürekli girilmesini gerektirmeyen durumlarda oldukça kullanışlıdır.