19 Ağustos 2009 Çarşamba

ubuntu postgres kurulumu ve konfigurasyonu

ubuntu terminalden postgres için gerekli kütüphaneleri kuruyoruz.

$ sudo apt-get install postgresql postgresql-client postgresql-contrib
$ sudo apt-get install pgadmin3

Kurulum işini yaptıktan sonra postgres(admin kullanıcısı) şifresini tekrardan üreteceğiz.

$ sudo su postgres -c psql template1
template1=# ALTER USER postgres WITH PASSWORD 'password';
template1=# \q



tırnak içinde password yazan yere postgres kullanıcısı için kullanacağınız şifreyi yazın , ben postgres olarak kullanıyorum genelde.ü

En son olarakta veritabanına kimlerin bağlanabileceğini(hangi iplerin) düzenliyoruz.

$ sudo gedit /etc/postgresql/8.2/main/pg_hba.conf

burada hiç bir değişiklik yapmazsanız sadece




Yukarda yaptığımız işlem veritabanında şifreyi değiştirdi. Şimdi aynı şeyi ubuntudaki postgres kullanıcısı içinde yapacağız.

$ sudo passwd -d postgres
$ sudo su postgres -c passwd

bu aşamada posgres kullanicisi için sizden tekrar şifre isteyecek , bir önceki adımda 'password' alanına yazdığınız şifre ile aynı olsun.


Şimdi sıra geldi veritabanına bağlanmak için gerekli düzenlemleri yapmakta .

$ sudo gedit /etc/postgresql/8.2/main/postgresql.conf

burada ;
#listen_addresses = 'localhost'
olan satırı
listen_addresses = '*'
olarak


#password_encryption = on
olan satırı
password_encryption = on
olarak değiştirip sayfayı kaydediyoruz.


En son olarakta veritabanına kimlerin bağlanabileceği bilgisini düzenleyeceğiz.
Hiç bir değişiklik yapmazsanız sadece localhostta veritabanına bağlanabilirsiniz.

başkalarınında kullanımına açmak istiyorsanız;

$ sudo gedit /etc/postgresql/8.2/main/pg_hba.conf


burda açılan sayfanının en altında ;

# Connections for all PCs on the subnet
#
# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
host all all [ip address] [subnet mask] md5

subnet mask örnek olarak genelde 255.255.255.0

ip adress kısmına size bağlanack ipleri yazabilirsiniz.

192.268.2.0 yada 192.268.2.x diye bir adres girerseniz 192.168.2 ile başlayan ipler veritabanınıza bağlanabilir.

java.net.UnknownHostException: www.jboss.com

java.net.UnknownHostException: www.jboss.com
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:849)
at java.net.InetAddress.getAddressFromNameService(InetAddress.java:1200)
at java.net.InetAddress.getAllByName0(InetAddress.java:1153)
at java.net.InetAddress.getAllByName(InetAddress.java:1083)
at java.net.InetAddress.getAllByName(InetAddress.java:1019)
at java.net.InetAddress.getByName(InetAddress.java:969)
at datassist.util.DnsResolver.getAddress(DnsResolver.java:18)
at datassist.util.DnsResolver.main(DnsResolver.java:11)

----------------------------------------------------------------------------


Bu hatayı almanızın nedeni 64 bit Ubuntu makinelerde 32 bit jdk kullanıyor olmaktan kaynaklanıyor.

illaki 64 bit makinada 32 bit eclipse ve 32 bit jdk kullanıcağım diyorsanız.
Çözüm için;

sudo apt-get install ia32-libs
kütüphanelerini yüklüyoruz.

Sonra eclipse 32 bit jdk ile calissin die eclipse i -vm /opt/{jdk_path}/jre/bin parametresi ile çalıştırıyoruz.

Fakat gerçek çözüm için

sudo apt-get install lib32nss-mdns
kütüphanesini yüklüyoruz.


Çalışıyormu diye test etmek için ;



import java.net.InetAddress;
import java.net.UnknownHostException;


public class DnsResolver {
public static void main(String[] args) {
try {
System.out.println(getAddress("www.google.com"));
} catch (UnknownHostException e) {
e.printStackTrace();
}
}

private static String getAddress(String address) throws UnknownHostException {
InetAddress addr = InetAddress.getByName(address);
return addr.getHostAddress();
}

}


bu program parçacığı çalışıyorsa sorun ortadan kalkmış demektir.