La base de données

Préparation de la base de données

Problème avec postgreSQL

Si sous postgreSQL vous n'arrivez pas à vous connecter via phppgadmin ou adminer mais que vous y arrivez avec le terminal, Utilisez la commande suivante:


sudo dnf install -y policycoreutils
sudo setsebool -P httpd_can_network_connect_db 1


Ceci que SELinux autorise une web-app à se connecter à votre base de données.

Retour à mysql/mariadb

Maintenant que la base de données et phpMyAdmin ou adminer sont installés, nous allons nous connecter à la base. Pour la première connection nous devons le faire via le terminal car l'utilisateur root n'a pas de mot de passe par défault. Nous allons donc lui en attribuer un sinon nous ne pourront pas nous connecter via nos web-app c'est normale, c'est une "sécurité". Démarrons la base de données:


sudo mysql -u root -p


Que vous soyez avec mysql ou mariadb, la commande ne change pas car ces deux bases de données sont de la même famille. Créons un mot de passe pour l'utilisateur root comme ceci:


SET PASSWORD FOR root@localhost=PASSWORD('motdepasse');


Puis, actualisez avec la commande SQL suivante:


FLUSH PRIVILEGES;


Bien à partir de là, ous pouvons nous connecter via les web-app SQL. Néanmoins il est fortement de le faire avec l'utilisateur root. Donc nous allons créer un utilisateur avec la commandes SQL suivante:


CREATE USER 'nom'@'localhost' IDENTIFIED BY 'motdepasse';


Maintenant, il faut créer une base de données. Appelons-la db:


CREATE DATABASE db;


Maintenant, permettons à notre utilisateur d'aller chercher et afficher, d'inserer, modifier, supprimer des données, et de modifier les champs de toutes les tables dans la base db et appliquer les privilèges:


GRANT SELECT, INSERT, UPDATE, DELETE, ALTER ON db.* TO 'nom'@'localhost';
FLUSH PRIVILEGES;


Pour supprimer des privilèges, remplacez GRANT par REVOKE. Pour accorder les droits d'ajout et de suppression de privilèges à un utilisateur sur toutes les tables la base db, on fait la commande suivante:


GRANT OPTION ON db.* TO 'nom'@'localhost';
FLUSH PRIVILEGES;


Pour accorder et supprimer un ou plusieurs privileges sur toutes les bases et tables ont fait ceci:


.. ON *.* ...;


N'hésitez pas à regarder la documentation mysq sur le net pour connaitre les nombreux privilèges qui existent.