BDD

Bases De Données

Installation de LAPP

Pour commencer, une petite mise à jour et l'installation des paquets PostgreSQL !


apt-get update
apt-get install postgresql postgresql-contrib postgresql-doc-9.1
								

Une fois le tout installé, vous pouvez changer le mot de passe de l'utilisateur système de PostgreSQL via la commande :

passwd postgres

Et changer le mot de passe de l'utilisateur administrateur de la base via :


su - postgres
psql -d template1 -c "ALTER USER postgres WITH PASSWORD 'votremotdepasse'"

Ou : 

psql
postgres=# \password postgres
								

Pour créer une base, faites :


su - postgres
createdb [nom_de_la_base]
								

Pour se connecter à la base.


psql mytestdb

\h For Help !
\q For Quit !
								

Pour créer un utilisateur :


psql -d template1 -c "create user test with password 'motdepasse'"
								

Pour permettre la gestion de la base à distance :


su - postgres
psql template1 < /usr/share/postgresql/9.1/extension/adminpack--1.0.sql
exit
OU :
postgres=# CREATE EXTENSION adminpack;
CREATE EXTENSION
								

Maintenant que nous avons toutes ces petites commandes... Nous allons avoir besoin d'activer les connections TCP/IP, pour cela :


nano /etc/postgresql/9.1/main/postgresql.conf
listen_addresses = 'localhost'
password_encryption = on

service postgresql restart
								

Maintenant, installez apache2 avec ses modules php5 et suivez la première procédure base de données avec MySQL (seulement le passage d'installation de apache2 et du test avec la page info.php ;)

Et pour finir, nous n'allons pas installer PhPMYadmin mais PhPPGadmin ! Be ui, on utilise PostgreSQL et non pas MySQL ! Pour cela :


apt-get install phppgadmin
								

Ensuite, allez dans "nano /etc/apache2/conf.d/phppgadmin" et décommentez la ligne "allow from all". Puis, redémarrez le service Apache2. Une fois que c'est fait, allez dans le fichier : "nano /usr/share/phppgadmin/conf/config.inc.php" et ajoutez-y la ligne :


$conf['extra_login_security'] = false;
								

Redémarrez maintenant les services postgresql et apache2 puis allez sur le lien suivant : http://ipdevotreserveur/phppgadmin


Installation de mon Titi RSS o.o

Pour l'installation de Tiny Tiny RSS, nous allons avoir besoin de GIT. Pour l'obtenir, rien de plus simple :

apt-get install git-core

Une fois installé, faites la commande :

git clone https://tt-rss.org/git/tt-rss.git tt-rss

Pour compléter l'installation de Titi RSS, vous n'avez plus qu'à aller sur http://votre_ip/tt-rss/install


Réplication "Streaming" PostgreSQL

Pour cela, on va avoir besoin de 2 serveurs Debian avec PostgreSQL dessus ! Et bien évidemment, deux serveurs avec deux adresses IP différentes sur le même réseau ;) On va tout d'abord aller sur le serveur maître, dans le fichier /etc/postgresql/9.1/main/postgresql.conf pour y modifier les lignes suivantes comme cela :


listen_addresses = '*'
wal_level = hot_standby
max_wal_senders = 3
								

Puis, on va créer un utilisateur spécial pour la réplication et l'autoriser à se connecter à la base, le tout avant de stopper le service postgresql.


psql -h localhost -U postgres -W -c "CREATE USER Replicateur WITH REPLICATION PASSWORD 'motdepasse';"

nano -w /etc/postgresql/9.1/main/pg_hba.conf
host replication Replicateur @ip_esclave/24 md5
service postgresql stop
								

Ensuite, nous allons pouvoir aller sur l'esclave et modifier (à lui aussi) son fichier de configuration : nano -w /etc/postgresql/9.1/main/postgresql.conf


listen_addresses = '*'
hot_standby = on
								

Maintenant, on va supprimer tous les fichiers de l'esclave et récupérer ceux du maître à la place !


/etc/init.d/postgresql stop
cd /var/lib/postgresql/9.1/main/
rm -rf *

nano -w /var/lib/postgresql/9.1/main/recovery.conf
primary_conninfo = 'host=192.168.0.1 port=5432 user=utilrepl password=motdepasse'
standby_mode = on
								
Faites attention à ne pas faire le rm -rf * n'importe où ;)

Maintenant on copie tout du maître vers l'esclave :


rsync -av /var/lib/postgresql/9.1/main/* @ip_esclave:/var/lib/postgresql/9.1/main/
								

On a plus qu'à redémarrer les deux services postgresql et vérifier l'état de la réplication :)


service postgresql start (sur chaque machine)

psql -h localhost -U postgres -W -c "select * from pg_stat_replication;"
								

Récupération d'un mot de passe oublié :o

Oula... Le mot de passe admin de postgres est oublié :'( comment le retrouver ? Tout d'abord, arrêtez le service.


service postgresql stop
								

Puis, allez dans nano /usr/lib/pgsql/data/pg_hba.conf et cherchez "local all all" et modifiez pour avoir : "local all postgres trust". Une fois que c'est fait, redémarrez le service et connectez vous à la base PostgreSQL avec l'utilisateur postgres.


service postgresql start
su - postgres

$ psql -d template1 -U postgres
alter user postgres with password 'votrenouveaumotdepasse';

Ou : 

psql -U postgres template1 -c "alter user postgres with password 'votrenouveaumotdepasse';"
								

Une fois une de ces deux méthodes accomplie, restituez le fichier à l'état initial :


nano /usr/lib/pgsql/data/pg_hba.conf

Cherchez : local all all trust
et modifiez pour avoir : local all postgres ident
								

Il ne nous reste plus qu'à redémarrer le service et on est sauvé \o/

service postgresql start