Skip to main content
Topic: SQL , SGBD, Access : manuel du gestionnaire de base de données (Read 3651 times) previous topic - next topic

SQL , SGBD, Access : manuel du gestionnaire de base de données

Je sais : tout le monde ne fait pas de l'élevage de base de donénes SQL , mais je pense que ce topic peut se révéler utile pour certains d'entre nous (Kian si tu nous regarde :mrgreen: )

Déjà quelques bons liens :

http://sgbd.developpez.com/ pour pouvoir se perfectionner
http://www.sqlfacile.com pour débuter
http://wwwlsi.supelec.fr/www/yb/poly_bd/sql/tdm_sql.html : un très bon cours pour permettre l'auto-apprentissage du SQL
http://www.kianouch.com/forum/index.php?action=pm;sa=send;u=7 pour l'assistance  :mdr2:
  • Une personne qui n'a jamais commis d'erreurs n'a jamais tenté d'innover. - Albert Einstein
  • La terre n'est pas un don de nos parents, ce sont nos enfants qui nous la prêtent...

Re: SQL , SGBD, Access : manuel du gestionnaire de base de données

Reply #1
Je deterre un topic. :D

Bon, voilà, j'ai quelques question pour les pros: J'ai installé PHP4.4 et MySQL5.1 sur mon mac pour faire des tests (Forum et CMS) en local.
Je souhaiterais savoir quel droits minimaux je dois donner au(s) compte(s) pour pouvoir installer et faire tourner par exemple SMF et SPIP? Le compte doit-il permettre de pouvoir créer une base, ou seulement des tables?

De plus, question subsidiaire, peut-on faire tourner (et est-ce "sain") par exemple SPIP et SMF sur une même base avec un même compte ou doit-on créer deux bases séparées?

Merci de faire une réponse pas trop jargoneuse, je débute en MySQL et en PHP. ;)

Re: SQL , SGBD, Access : manuel du gestionnaire de base de données

Reply #2
Bon essayons de faire clair. ;)

1/ Pour les droits utilisateurs, je dirais que normalement il vaut mieux ne pas de donner ce type de droits à un utilisateur utilisé pour se connecter à une base de données (sécurité oblige, on pourrait te supprimer une base ou des tables via cet utilisateur). Après lorsque tu lances le script permettant de créer ta base ou de faire des updates (style plugin), les scripts auront alors besoin de créer une base/des tables, donc avoir des droits spéciaux.
Pour résumer, je ne donnerais ces droits que lorsque tu crées ta base (création de base + création de tables), ou que tu fais des updates qui touchent à la structure de la base (seulement création/modification/suppression de tables). Sinon dans les opérations de tous les jours des droits de ce type ne sont pas utiles et même déconseillés (un utilisateur pouvant faire des select/update/delete est largement suffisant).

2/ Pour spip et smf, je te conseille fortement d'avoir 2 bases dédiées! Ca sera déjà plus lisible, et tu ne risques pas d'avoir des "collisions" de tables (si les 2 applications utilisent une table ayant le même nom).

Re: SQL , SGBD, Access : manuel du gestionnaire de base de données

Reply #3
Pour la deuxieme question, entierement d'accord avec Ubaj : 1 base par projet distinct :)
  • Une personne qui n'a jamais commis d'erreurs n'a jamais tenté d'innover. - Albert Einstein
  • La terre n'est pas un don de nos parents, ce sont nos enfants qui nous la prêtent...

Re: SQL , SGBD, Access : manuel du gestionnaire de base de données

Reply #4
Merci pour ces indications. :jap:

Je vais pouvoir me lancer dans les manips. ^^

Re: SQL , SGBD, Access : manuel du gestionnaire de base de données

Reply #5
J'ai changé d'hébergement (enfin si on peut appeller ça comme ça, cf news de mon blog sur les scripts du Meikai), et j'ai un problème niveau base de données SQL.

Sur celui-ci, phpmyadmin n'était pas installé d'office, donc je l'ai téléchargé, la dernière version stable, décompressé et uploader sur le ftp.

J'ai ensuite pris le fichier de config, et l'ai complété (mal visiblement), mais comme il ne ressemble plus trop à l'ancien... J'arrive à me connecter à phpmyadmin avec les codes du fichier de config, mais il ne me trouve aucune base de données, je suppose donc que je l'ai indiqué au mauvais endroit...

Voilà à quoi ressemblait l'ancien fichier de config :

Code: [Select]
<?php
/* $Id: config.inc.php,v 1.28 2000/07/13 13:52:48 tobias Exp $ */

/*
*  phpMyAdmin Configuration File
*  All directives are explained in Documentation.html
*/

// The $cfgServers array starts with $cfgServers[1].  Do not use $cfgServers[0].
// You can disable a server config entry by setting host to ''.
$cfgServers[1]['host'] = 'sql2';           // MySQL hostname
$cfgServers[1]['port'] = '';                    // MySQL port - leave blank for default port
$cfgServers[1]['adv_auth'] = false;             // Use advanced authentication?
$cfgServers[1]['stduser'] = '';             // MySQL standard user (only needed with advanced auth)
$cfgServers[1]['stdpass'] = '';                 // MySQL standard password (only needed with advanced auth)
$cfgServers[1]['user'] = 'cpttsuba';                // MySQL user (only needed with basic auth)
$cfgServers[1]['password'] = 'MOTDEPASSE';                // MySQL password (only needed with basic auth)
$cfgServers[1]['only_db'] = 'cpttsuba';                 // If set to a db-name, only this db is accessible
$cfgServers[1]['verbose'] = '';                 // Verbose name for this host - leave blank to show the hostname

$cfgServers[2]['host'] = '';
$cfgServers[2]['port'] = '';
$cfgServers[2]['adv_auth'] = false;
$cfgServers[2]['stduser'] = '';
$cfgServers[2]['stdpass'] = '';
$cfgServers[2]['user'] = '';
$cfgServers[2]['password'] = '';
$cfgServers[2]['only_db'] = '';
$cfgServers[2]['verbose'] = '';

$cfgServers[3]['host'] = '';
$cfgServers[3]['port'] = '';
$cfgServers[3]['adv_auth'] = false;
$cfgServers[3]['stduser'] = '';
$cfgServers[3]['stdpass'] = '';
$cfgServers[3]['user'] = 'root';
$cfgServers[3]['password'] = '';
$cfgServers[3]['only_db'] = '';
$cfgServers[3]['verbose'] = '';


(Le mot de passe était le bon ici, je l'ai juste remplacé pour le copier-coller ^^

Et voilà à quoi ressemble le nouveau :

Code: [Select]
/* 
* First server
*/
$i++;
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
/* Select mysqli if your server has it */
$cfg['Servers'][$i]['extension'] = 'mysql';
/* User for advanced features */
$cfg['Servers'][$i]['controluser'] = 'pmausr';
$cfg['Servers'][$i]['controlpass'] = 'pmapass';
/* Advanced phpMyAdmin features */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['history'] = 'pma_history';

/*
* End of servers configuration
*/


J'ai donc supposé que :

Code: [Select]
$cfg['Servers'][$i]['host'] = 'localhost';
=> Serveur SQL

Code: [Select]
$cfg['Servers'][$i]['controluser'] = 'pmausr';
=> Nom d'utilisateur

Code: [Select]
$cfg['Servers'][$i]['controlpass'] = 'pmapass';
=> Mot de passe

Code: [Select]
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
=> Nom de la base de données (?)

Et donc, je lance ensuite la page de PhpMyAdmin, il me demande login/pass, je rentre ceux du fichier config, il me loggue sur la page d'accueil, avec le message, aucune base de données trouvé.

Ou alors, c'est car elle est vide ?

Mais c'est bizarre, car pour la remplir, faut bien qu'il me l'affiche -.-

Et OVH m'a envoyé :
Quote
Votre base MySQL a été installée sur notre serveur.


Et après vérification, elle apparait bien dans leur manager, donc moi, plus rien comprendre là  :wacko:

Posted on: Thursday 01 February, 10:18:29
J'oubliais, OVH me dit aussi :

Code: [Select]
Version supérieur a 2.2.3 : 

$cfg['PmaAbsoluteUri'] = 'http://www.hiei-tf.fr/repertoire de phpMyAdmin/';

$i++;
$cfg['Servers'][$i]['host']                   = 'mysql5-2';
$cfg['Servers'][$i]['port']                   = '';
$cfg['Servers'][$i]['socket']                 = '';
$cfg['Servers'][$i]['connect_type']           = 'tcp';
$cfg['Servers'][$i]['controluser']            = '';
$cfg['Servers'][$i]['controlpass']            = '';
$cfg['Servers'][$i]['auth_type']              = 'config';
$cfg['Servers'][$i]['user']                   = 'UTILISATEUR';
$cfg['Servers'][$i]['password']               = 'MOTDEPASSE';
$cfg['Servers'][$i]['only_db']                = 'BDD';
$cfg['Servers'][$i]['verbose']                = '';
$cfg['Servers'][$i]['pmadb']                  = '';
$cfg['Servers'][$i]['bookmarktable']          = '';
$cfg['Servers'][$i]['relation']               = '';
$cfg['Servers'][$i]['table_info']             = '';
$cfg['Servers'][$i]['table_coords']           = '';
$cfg['Servers'][$i]['column_comments']        ='';
$cfg['Servers'][$i]['pdf_pages']              = '';
$cfg['Servers'][$i]['AllowDeny']['order']     = '';
$cfg['Servers'][$i]['AllowDeny']['rules']     = array();


Mais je n'ai ni la première ligne, celle de l'url, ni une entrée 'only_db' dans mon config, donc je ne pige pas là, à moins que je doive les rajouter à la main ? (Ce qui confirmerait que le pmadb n'est pas le bon pour la base de données).

Voilou.

(Je suis en 2.9.2, version stable : phpMyAdmin-2.9.2-all-languages-utf-8-only)


Posted on: Thursday 01 February, 10:22:22
Le forum a l'air de déconner sinon, deux-trois fois que je me tappe ce message :

Quote
Please try again. If you come back to this error screen, report the error to an administrator.


Ou bien "message déjà envoyé alors que ce n'est pas le cas".

Re: SQL , SGBD, Access : manuel du gestionnaire de base de données

Reply #6
Tu as un serveur dedié ? La BDD est sur ton serveur ?
This is ma jolie signature

Re: SQL , SGBD, Access : manuel du gestionnaire de base de données

Reply #7
OVH.

J'avais OVH avant, et là c'est toujours OVH.

J'ai le nom du serveur sql, l'identifiant, le mot de passe, et le nom de base de données.

Re: SQL , SGBD, Access : manuel du gestionnaire de base de données

Reply #8
C'est plus une domaine ou une IP qu'un nom qu'il te fait, non ?
This is ma jolie signature

Re: SQL , SGBD, Access : manuel du gestionnaire de base de données

Reply #9
bah, un host quoi, "mysql5-2".

En fait, mon problème n'est pas là, sur l'ancien c'était déjà installé (phpmyadmin) et le fichier config est différent.

Là, dans le tuto, ils disent de remplir des lignes qui n'existent pas dans le fichier config de phpmyadmin, donc je ne pige rien, à moins de les créer à la main ?

Cf mes copiers collers du fichier config de phpmyadmin (l'ancien), le nouveau, et celui de l'exemple d'OVH.

Et c'est toujours le même type d'hébergement, un 60GP (mutualisé).

Quote
Bonjour,
Votre base MySQL a été installée sur notre serveur.

Voici les données techniques:
-----------------------------

MySQL:
Serveur        : mysql5-2
Utilisateur    : BLABLABLA
Nom de la base : BLABLABLA
Mot de passe   : XXXXXXXX

Re: SQL , SGBD, Access : manuel du gestionnaire de base de données

Reply #10
C'est réglé visiblement, oubliez ^^

J'ai pris les lignes de l'exemple, je les ais copier-coller (même si à la base, elles n'étaient pas dans le config), donc je suppose que c'était ce qu'il fallait faire, car phpmyadmin me trouve maintenant une base avec 0 tables.

Re: SQL , SGBD, Access : manuel du gestionnaire de base de données

Reply #11
J'ai un autre problème  :sweatdrop:

Je n'arrive pas à réinstaller mes compteurs de visite, je suppose que l'installation n'aime pas Mysql5 ou autre ? Car elle foire alors qu'elle fonctionnait avant.

J'ai réinstallé mes forums, voir si la base fonctionnait, et c'est le cas, donc est-ce que quelqu'un ici saurait me "reformuler" ça en commandes SQL à tapper à la main dans PHPMyAdmin pour recréer les tables ?

Je rajoute le fichier d'install à part, en fichier joint.

Edit : Fichier rajouté (j'ai rajouté .txt à la fin, car le forum ne veut pas de .php en fichier joint)

Edit 2 :    
Code: [Select]
$sql="CREATE TABLE compteur_visite (
compteur double DEFAULT '0' NOT NULL,
date date DEFAULT '0000-00-00' NOT NULL,
time int(9) NOT NULL default '0',
duree int(9) NOT NULL default '0',
ip varchar(50) NOT NULL,
PRIMARY KEY (ip),
KEY compteur (compteur, date),
KEY ip (ip)
)
";
$res=mysql_query($sql, $db);
$sql="INSERT INTO compteur_visite VALUES ('$compteur', '$date', '$time', '$duree', 'compteur')";
$res=mysql_query($sql, $db);
if ($res==1)


Je suppose que tout est là dedans, mais comme je ne connais pas la syntaxe de ce genre de trucs et autres...

Re: SQL , SGBD, Access : manuel du gestionnaire de base de données

Reply #12
Tu as vérifié sous phpMyAdmin si la table compteur_visite existe?

Si non tu peux exécuter le script suivant pour la créer :
Code: [Select]
CREATE TABLE compteur_visite (
compteur double DEFAULT '0' NOT NULL,
date date DEFAULT '0000-00-00' NOT NULL,
time int(9) NOT NULL default '0',
duree int(9) NOT NULL default '0',
ip varchar(50) NOT NULL,
PRIMARY KEY (ip),
KEY compteur (compteur, date),
KEY ip (ip)
)


Sinon ta page php t'affiche un message d'erreur quand tu l'exécutes (peut être simplement dû à la tentative de création d'une table qui existe déjà)?

Re: SQL , SGBD, Access : manuel du gestionnaire de base de données

Reply #13
C'est justement ce que je voulais, le code pour la créer à la main, car le script d'install ne passe pas, et comme c'est pour changer d'hébergement, la base n'existe pas encore sur le nouveau.

Pour l'install, il plante sans erreur distincte (installation raté, un truc du genre), alors que sur l'ancien il passe bien, je suppose que c'est la différence entre MYSQL 4 & 5 ou un truc du genre.

Je vais tester ça, et je reviens plus tard pour confirmer ou pas si ça roule :)

Merci !

Re: SQL , SGBD, Access : manuel du gestionnaire de base de données

Reply #14
Code: [Select]
CREATE TABLE compteur_visite (
compteur double DEFAULT \'0\' NOT NULL,
date date DEFAULT \'0000-00-00\' NOT NULL,
time int(9) NOT NULL default \'0\',
duree int(9) NOT NULL default \'0\',
ip varchar(50) NOT NULL,
PRIMARY KEY (ip),
KEY compteur (compteur, date),
KEY ip (ip)
)

MySQL a répondu:


You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'0\' NOT NULL,
date date DEFAULT \'0000-00-00\' NOT NULL,
time int(9) NOT N' at line 2


:wacko: