1. Trang chủ
  2. » Công Nghệ Thông Tin

Pratique de MySQL et PHP- P96 ppt

5 78 0
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 154,22 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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.. A.3.4 C

Trang 1

/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.cnfest 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

Trang 2

454 Annexe A Installation Apache/PHP/MySQL

d’un paramétrage :

[mysqld]

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.loget 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 Copiezmy-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]

Trang 3

Dans la section [mysql], définissez la base par défaut :

[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, sans le WHERE

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écuteDELETE FROM table, sans clauseWHERE, il ne

se donne même pas la peine de parcourir les lignes de la table : le fichier est détruit et recréé D’ó le messageQuery OK, 0 rows affected, bien que toutes les lignes aient effectivement disparu.

Trang 4

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 fichierfilmSQL.svcontient 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

Trang 5

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 fichiertable.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

fichierSvFilms:

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 La première chose à

faire est d’affecter l’URL de phpMyAdmin à l’élément PmaAbsoluteUri du tableau

$cfg Par exemple :

$cfg[’PmaAbsoluteUri’] = ’http://localhost/phpMyAdmin/’;

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

TỪ KHÓA LIÊN QUAN