Pratique de MySQL et PHP- P96 ppt

5 77 0
Pratique de MySQL et PHP- P96 ppt

Đang tải... (xem toàn văn)

Thông tin tài liệu

A.3 Fichiers de configuration 453 /etc/my.cnf Ce fichier donne les options globales pour tous les serveurs MySQL tournant sur la machine. On peut y indiquer des choix sur la taille des buffers utilisés, ou le paramétrage par défaut de tel ou tel client MySQL, mais surtout pas des mots de passe ! Ce fichier est accessible en lecture par tous les clients MySQL. DATADIR/my.cnf Quand il y a plusieurs serveurs, ce fichier, placé dans le répertoire racine des bases d’un serveur, permet d’indiquer les options pour ce serveur en particulier. .my.cnf Placé dans le répertoire $HOME d’un utilisateur, ce fichier donne les options et préférences de cet utilisateur. On peut y placer le compte de connexion à MySQL (login et mot de passe) en s’assurant que ce fichier n’est lisible que par l’utilisateur. Sous Windows, le fichier de configuration doit être placé dans C:\. Malheureuse- ment tout utilisateur ayant un compte sur la machine pourra lire son contenu. Évitez donc d’y placer des mots de passe. A.3.3 Configuration du serveur Le fichier /etc/my.cnf est particulièrement utile pour paramétrer le serveur. Entre autres options importantes, on peut : 1. choisir la langue pour les messages d’erreur ; 2. choisir la taille de la mémoire centrale allouée au serveur ; 3. fixer l’une des très nombreuses options de lancement du serveur mysqld. La commande suivante donne toutes les options possibles, mysqld help Voici un extrait de l’affichage obtenu avec cette commande. -b, basedir=path Path to installation directory. All paths are usually resolved relative to this -h, datadir=path Path to the database root -L, language= Client error messages in given language. May be given as a full path -l, log[=file] Log connections and queries to file log-update[=file] Log updates to file.# where # is a unique number if not given. pid-file=path Pid file used by safe_mysqld -P, port= Port number to use for connection -O, set-variable var=option Give a variable an value. help lists variables socket= Socket file to use for connection -u, user=user_name Run mysqld daemon as user La version longue des paramètres ci-dessus peut être utilisée dans le fichier /etc/my.cnf , à l’intérieur de la section commançant par mysqld. Voici l’exemple 454 Annexe A. Installation Apache/PHP/MySQL d’un paramétrage : [mysqld] port = 3306 socket = /tmp/mysql.sock user = mysql set-variable = key_buffer=64M language = french log log-update On a indiqué, entre autres : 1. que les messages doivent être en français (option language); 2. que toutes les connexions et requêtes à MySQL sont conservées dans un fichier log (dont le nom est, par défaut, mysqld.log et l’emplacement le répertoire racine des bases de données) ; 3. que toutes les mises à jour sont également conservées dans un fichier de log ; 4. que la mémoire cache pour les index est de 64 mégaoctets. A.3.4 Configuration d’un compte administrateur Voici comment configurer un compte administrateur qui veut se connecter, avec tout client de MySQL, à la base mysql sous le compte root. Prenons comme exemple le client mysql : voici un extrait des paramètres obtenus par mysql -help. -D, database= Database to use -e, execute= Execute command and quit. -f, force Continue even if we get an sql error. -H, html Produce HTML output -O, set-variable var=option Give a variable an value. help lists variables -p, password= Password to use when connecting to server If password is not given it’s asked from the tty. -u, user=# User for login if not current user -E, vertical Print the output of a query (rows) vertically Dans un environnement Unix, voici comment indiquer avec un fichier de confi- guration, que l’utilisateur mysql est l’administrateur de la base de données. On indique que son compte de connexion à MySQL est root, on donne le mot de passe (mettez le vôtre !), et la base par défaut, mysql. 1. Copiez my-example.cnf dans le répertoire $HOME de mysql, et renommez-le en .my.cnf . 2. Éditez .my.cnf . Le fichier contient plusieurs sections dédiées respectivement aux paramètres du serveur, du client, etc. Dans la section commençant par [client], ajoutez deux lignes comme indiqué ci-dessous : [client] user = root password = mdproot A.4 Sauvegardes 455 Dans la section [mysql], définissez la base par défaut : [mysql] database = mysql 3. Il ne reste plus qu’à protéger ce fichier des regards indiscrets % chmod go-rwx .my.cnf Une fois ce fichier créé, la commande mysql, exécutée sous le compte UNIX mysql, vous connecte directement à la base mysql sans avoir à entrer le compte utilisateur, le mot de passe, et sans avoir à utiliser la commande USE mysql.Le principe est généralisable à tous les utilisateurs, en leur permettant une connexion automatique à leur base de référence. Vous pouvez par exemple indiquer des options de connexion pour le compte utilisateur d’Apache. Le compte et le mot de passe sont valables pour tous les programmes clients de MySQL, ce qui permet, sous le compte mysql, d’arrêter le serveur sans saisir de mot de passe avec la commande. % mysqladmin shutdown A.4 SAUVEGARDES Il existe de nombreuses manières de perdre des données. Bien entendu, on pense toujours à un incident matériel comme la panne d’un disque, mais le problème vient beaucoup plus fréquemment d’une erreur humaine. Par exemple il est très facile d’introduire un point-virgule mal placé dans une requête, avec un résultat qui peut être désastreux : % mysql mysql> DELETE FROM Artiste; WHERE id = 67; Query OK, 0 rows affected (0.02 sec) ERROR 1064: You have an error in your SQL syntax near ’WHERE id = 0’ at line 1 mysql> select * from Artiste; Empty set (0.00 sec) On a donc bel et bien exécuté la requête DELETE FROM Artiste,sansleWHERE qui est placé après le point-virgule « ; ». Résultat : tout est détruit dans Artiste, sans possibilité de récupération autre qu’une sauvegarde (sauf si on utilise l’option transactionnelle de MySQL, InnoDB, non décrite ici). REMARQUE – Quand MySQL exécute DELETE FROM table, sans clause WHERE,ilne se donne même pas la peine de parcourir les lignes de la table : le fichier est détruit et recréé. D’où le message Query OK, 0 rows affected, bien que toutes les lignes a ient effectivement disparu. 456 Annexe A. Installation Apache/PHP/MySQL Les sauvegardes peuvent se faire se manière traditionnelle, en créant une archive zip ou tar (n’oubliez pas d’arrêter le serveur mysqld auparavant) contenant les fichiers de la base. L’inconvénient est qu’il n’est pas facile d’en extraire, si besoin est, une partie seulement des tables ou des lignes. L’utilitaire phpMyAdmin propose une fonction d’exportation de base de données simple à utiliser, et comprenant toutes les options nécessaires. MySQL seul fournit deux solutions complémentaires, un utilitaire, mysqldump, et la création de fichiers log qui enregistrent au fur et à mesure les modifications sur la base. L’utilitaire mysqldump produit un fichier contenant les ordres SQL de création des tables et/ou des lignes dont la sauvegarde a été demandée. La syntaxe générale est : % mysqldump [options ] base [tables] Pour sauvegarder la base FilmSQL dans un fichier filmSQL.sv, la commande est donc : % mysqldump -u root -p FilmSQL > filmSQL.sv Bien entendu on peut se connecter sous n’importe quel nom d’utilisateur ayant au moins un droit select sur la base. Comme tous les utilitaires de MySQL, mysqldump utilise les informations de connexion du fichier de configuration si elles existent. Pour sauvegarder une ou plusieurs tables, on donne leur nom. Par exemple on peut demander une sauvegarde de la table Film. % mysqldump -u root -p FilmSQL Film > filmSQL.sv Le fichier filmSQL.sv contient alors à la fois les commandes de création de la table et les commandes d’insertion des lignes. # # Table structure for table ’Film’ # CREATE TABLE Film ( titre varchar(50) DEFAULT ’’ NOT NULL, annee int DEFAULT ’0’ NOT NULL, id_realisateur int, genre varchar(20), PRIMARY KEY (titre) # # Dumping data for table ’Film’ # INSERT INTO Film VALUES (’Impitoyable’,1992,20,’Western’); INSERT INTO Film VALUES (’Van Gogh’,1990,29,’Drame’); INSERT INTO Film VALUES (’Kagemusha’,1980,68,’Drame’); INSERT INTO Film VALUES (’Les pleins pouvoirs’,1997,20,’Policier’); Un des grands avantages de cette méthode est que l’on peut utiliser le fichier comme un script SQL, soit pour recréer une base ou une table dans MySQL, soit A.5 phpMyAdmin 457 pour transférer une base vers un autre système relationnel. Comme le fichier est au format texte, on peut également facilement en extraire des parties pour récupérer partiellement des données ou des tables. Les principales options de mysqldump sont données dans la table 1.1. Comme pour tous les autres utilitaires, on obtient la liste des options disponibles en lançant : % mysqldump -help Tableau 1.1 — Options de mysqldump. Option Description -t Sauvegarde des lignes, mais pas des commandes de création de table. -T r´epertoire Écrit dans r´epertoire deux fichiers pour chaque table. Le fichier table.sql contient la commande de création, et le fichier table.txt les lignes. -c Produit des ordres INSERT complets, avec la liste des attributs. -l Verrouille les tables avant la sauvegarde pour éviter des mises à jour simulta- nées. -u, -p, -h Les options habituelles pour, respectivement, l’utilisateur, le mot de passe et le nom de l’hôte de mysqld. Les options par défaut peuvent changer avec les versions de MySQL. À titre d’illustration, voici la commande utilisée pour sauvegarder la base Films dans un fichier SvFilms : mysqldump -u adminFilms -pmdpAdmin -t Films Artiste Internaute\ Film Notation Role SequenceArtiste \ skip-opt -c skip-lock-tables \ default-character-set=latin1 > SvFilms Le fichier obtenu est compatible avec PostgreSQL et SQLite. L’utilitaire propose des exports aux formats acceptés par d’autres SGBD, dont ORACLE. A.5 phpMyAdmin Il existe de nombreux outils qui facilitent (au moins pour une prise de contact) la maintenance d’une installation MySQL. Le plus populaire est phpMyAdmin, une interface d’administration écrite en PHP. phpMyAdmin est une très bonne illustration de l’utilisation de PHP en associa- tion avec MySQL, et peut s’utiliser aussi bien sous Linux que sous Windows. Il se pré- sente sous la forme d’un ensemble de fichiers PHP. Le fichier Documentation.html propose une documentation assez brève. phpMyAdmin est configurable avec le fichier config.inc.php.Lapremièrechoseà faire est d’affecter l’URL de phpMyAdmin àl’élémentPmaAbsoluteUri du tableau $cfg. Par exemple : $cfg[’PmaAbsoluteUri’] = ’http://localhost/phpMyAdmin/’; . obtient la liste des options disponibles en lançant : % mysqldump -help Tableau 1.1 — Options de mysqldump. Option Description -t Sauvegarde des lignes, mais pas des commandes de création de table. -T. qui permet, sous le compte mysql, d’arrêter le serveur sans saisir de mot de passe avec la commande. % mysqladmin shutdown A.4 SAUVEGARDES Il existe de nombreuses manières de perdre des données sauvegarde de la table Film. % mysqldump -u root -p FilmSQL Film > filmSQL.sv Le fichier filmSQL.sv contient alors à la fois les commandes de création de la table et les commandes d’insertion des

Ngày đăng: 06/07/2014, 00:20

Mục lục

  • Table des Matières

  • Avant-propos

  • Première partie – Programmation web avec MySQL/PHP

    • Chapitre 1 – Introduction à MySQL et PHP

      • 1.1 Introduction au Web et à la programmation web

        • 1.1.1 Serveurs web

        • 1.1.2 Documents web : le langage XHTML

        • 1.1.3 Programmation web

        • 1.1.4 Sessions

        • 1.2 Programmation web avec MySQL et PHP

          • 1.2.1 MySQL

          • 1.2.2 PHP

          • 1.3 Une première base MySQL

            • 1.3.1 Création d'une table

            • 1.3.2 L'utilitaire mysql

            • 1.3.3 L'interface PhpMyAdmin

            • 1.4 Accès à MySQL avec PHP

              • 1.4.1 L'interface MySQL/PHP

              • 1.4.2 Formulaires d'interrogation

              • 1.4.3 Formulaires de mises à jour

              • Chapitre 2 – Techniques de base

                • 2.1 Programmation avec fonctions

                  • 2.1.1 Création de fonctions

                  • 2.1.2 Utilisation des fonctions

                  • 2.1.3 À propos de require et include

                  • 2.1.4 Passage par valeur et passage par référence

                  • 2.2 Traitement des données transmises par HTTP

                    • 2.2.1 Échappement et codage des données HTTP

                    • 2.2.2 Contrôle des données HTTP

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan