Introduction à MySQL sauvegarder les DATAS de vos bases de données

Cours introduction à MySQL sauvegarder les DATAS de vos bases de données, tutoriel & guide de travaux pratiques en pdf.

Sauvegarder les datas de vos bases de données

Il existe un utilitaire livré avec MySQL qui se nomme mysqldump. Il transcrit l’intégralité d’une ou plusieurs bases en commande SQL, ce qui permet de restaurer ou transférer des datas sur un autre serveur. (Y compris un serveur SQL autre que MySQL)
Utilisation de mysqldump en ligne de commande mysqldump –A
retourne toutes les commandes, pour les récupérer redirigez la sortie dans un fichier :
mysqldump –A > MonBackup.sql
Pour sauvegarder uniquement une base :
mysqldump –B maBase > MonBackup.sql
Vous pouvez également ne sauver que quelques tables
mysqldump –B maBase –tables table_1 table_2 > MonBackup.sql
Les options suivantes sont également très pratiques :
–add-drop-table Supprime les tables qui existent déjà, permet de restaurer sans être obligé de supprimer la base
–force Continue malgré des messages d’erreur du serveur
Il en existe beaucoup d’autres, pour obtenir la liste de ces options :
mysqldump –help
Un autre utilitaire mysqlhotcopy permet de copier, après avoir vidé les caches, toute la base de données passée en argument :
mysqlhotcopy mysql /chemin/de/la/sauvegarde

Réparer une base de données
Si votre serveur semble ne pas être en mesure de lire certaines tables ou a un comportement suspect, vous pouvez tester l’intégrité des datas avec la commande CHECK TABLES
mysql>CHECK TABLES employes;
Si MySQL vous retourne en effet des erreurs, vous pouvez effectuer la réparation avec REPAIR TABLES employes;
Dans la documentation de MySQL, ils prétendent que la réussite est de 99.9%. Dans le cas où l’erreur persisterait, vous pouvez vous tourner vers l’utilitaire en ligne de commande myisamchk /path/to/file
Traduire un code d’erreur
Autre utilitaire intéressant livré avec MySQL est perror. Il vous retourne le texte relatif à un numéro d’erreur : perror 13
Modifier le comportement du serveur
(Repris de la documentation officielle)
MySQL, depuis la version 3.22, lit les options de démarrage dans un fichier :
Sous Unix : /etc/my.cnf pour les options globales. DATADIR/my.cnf pour les options spécifiques au serveur et ~/.my.cnf pour celles spécifiques à l’utilisateur.
MySQL essaie de lire les fichiers d’options dans l’ordre dans lequel ils sont présentés ci-dessus. Si des options sont spécifiées plusieurs fois, la dernière occurrence utilisée prend la préséance sur les options précédentes. Les options de ligne de commande ont la priorité sur les options spécifiées dans les fichiers. Certaines options peuvent être
spécifiées en utilisant des variables d’environnement.
Les options spécifiées en ligne de commande ou en fichier ont la priorité sur les options qui le sont via une variable d’environnement.
Les programmes suivants utilisent les fichiers d’options : mysql, mysqladmin, mysqld, mysqld_safe, mysql.server, mysqldump, mysqlimport, mysqlshow, mysqlcheck, myisamchk et myisampack.
Toute option longue qui doit être spécifiée en ligne de commande lorsque MySQL fonctionne, peut aussi être configurée dans le fichier d’options (sans les doubles tirets).
Un fichier d’options contient des lignes ayant la forme suivante :
# Les lignes de commentaires commencent avec ‘# [group]
group est le nom du programme ou du groupe pour lequel vous souhaitez configurer des options. Après une ligne de groupe, toutes les options et set-variable s’appliqueront au groupe nommé, jusqu’à la fin du fichier d’option ou du démarrage d’un autre groupe.
option=value
Ceci est équivalent à –option=value sur la ligne de commande.
set-variable = variable=value
Ceci est équivalent à –set-variable variable=value sur la ligne de commande. Cette syntaxe doit être utilisée pour spécifier la valeur d’une variable mysqld. Notez que –set-variable est obsolète depuis MySQL 4.0, utilisez simplement — variable=value comme tel.
Le groupe client vous permet de spécifier des options qui ne s’appliquent qu’aux clients MySQL et non pas au serveur mysqld. C’est le groupe idéal pour spécifier des mots de passe de connexion au serveur (mais assurez-vous que vous êtes le seul à accéder à ce fichier !!).
Notez que pour les options et les valeurs, tous les caractères blancs de début et de fin seront automatiquement effacés. Vous pouvez utiliser les séquences d’échappement ‘\b’, ‘\t’, ‘\n’, ‘\r’, ‘\\’ et ‘\s’ dans votre chaîne à la place (‘\s’ == espace).
Voici un exemple typique de fichier d’options globales :
[client]
port=3306
socket=/tmp/mysql.sock
[mysqld]
port=3306
socket=/tmp/mysql.sock
set-variable = key_buffer_size=16M
set-variable = max_allowed_packet=1M
[mysqldump]
quick
Voici un exemple typique de fichier d’options utilisateur :
[client]
# Le mot de passe suivant va être utilisé avec le serveur password=mon_mot_de_passe
[mysql]
no-auto-rehash
set-variable = connect_timeout=2
safe-updates
prompt=(\u@\h) [\d] >\_s
[mysqlhotcopy]
interactive-timeout
Si vous avez une distribution source, vous trouverez des exemples de configuration dans les fichiers nommés ‘my-xxxx.cnf’ dans le dossier ‘support-files’. Si vous avez une distribution binaire, regardez dans le dossier ‘DIR/support-files’, où DIR est le chemin de l’installation MySQL (typiquement ‘/usr/local/mysql’). Actuellement, il y a des exemples de configuration pour des systèmes petits, moyens, grands et très grands. Vous pouvez copier l’un des fichiers ‘my-xxxx.cnf’ dans votre dossier utilisateur (renommez le fichier en ‘.my.cnf’) pour le tester.
Tous les clients MySQL qui supportent les fichiers d’options, acceptent les options suivantes :
–no-defaults
Ne lire aucun fichier d’options.
–print-defaults
Affiche le nom du programme et toutes les options qui s’y trouvent. –defaults-file=full-path-to-default-file
Utilise uniquement le fichier de configuration donné.
–defaults-extra-file=full-path-to-default-file
Lit ce fichier de configuration après le fichier de configuration global, mais avant le fichier de configuration utilisateur.
Notez que les options ci-dessus doivent être en ligne de commande pour être utilisées. En scripts shell, vous pouvez utiliser la commande ‘my_print_defaults’ pour analyser les fichiers de configuration :
shell> my_print_defaults client mysql
–port=3306
–socket=/tmp/mysql.sock
–no-auto-rehash
La ligne ci-dessus affiche toutes les options pour les groupes ’client’ et ’mysql’.

Mettre les messages d’erreur en français
Dans le groupe mysqld ajoutez :
language = french;
Ou si le fichier de description de langue se trouve à un endroit particulier :
language = /usr/share/mysql/french/
Quelques options relatives à la sécurité
–local-infile[=(0|1)]
Si cette option vaut 0, les utilisateurs ne peuvent pas lire un file avec LOAD DATA LOCAL INFILE.
–safe-show-database
Avec cette option, la commande SHOW DATABASES ne retourne que les bases pour lesquelles l’utilisateur courant a des droits. Depuis la version 4.0.2, cette option est abandonnée et ne sert plus à rien (elle est activée par défaut), car désormais, il y a le droit de SHOW DATABASES.
–safe-user-create
Si cette option est activée, tout utilisateur ne peut créer d’autres utilisateurs avec les droits de GRANT, s’il ne dispose pas des droits d’insertion dans la table mysql.user. Si vous voulez donner un accès à un utilisateur pour qu’il puisse créer des utilisateurs avec les droits dont il dispose, vous pouvez lui donner les droits suivants :
mysql> GRANT INSERT(user) ON mysql.user TO ‘user’@’hostname’;
Cela va s’assurer que l’utilisateur ne peut pars modifier une colonne directement, mais qu’il peut exécuter la commande GRANT sur d’autres utilisateurs. –skip-grant-tables
Cette option force le serveur à ne pas utiliser les tables de droits. Cette option donne donc tous les droits à tout le monde sur le serveur ! –skip-name-resolve
Les noms d’hôtes ne sont pas résolus. Toutes les valeurs de la colonne Host dans les tables de droits doivent être des adresses IP, ou bien localhost. –skip-networking
Ne pas accepter les connexions TCP/IP venant du réseau. Toutes les connexions au serveur mysqld doivent être faites avec les sockets Unix. Cette option n’existe pas pour les versions antérieures à la 3.23.27, avec les MIT-pthread, car les sockets Unix n’étaient pas supportés par les MIT-pthreads à cette époque.

Scripts serveurs et des utilitaires
Tous les programmes MySQL prennent des options différentes. Toutefois, tous les programmes MySQL disposent de l’option –help qui vous aidera à connaître la liste complète des différentes options. Essayez par exemple mysql –help.
Vous pouvez modifier toutes les valeurs par défaut des programmes en les plaçant dans le fichier de configuration /etc/my.cnf.
Voici la liste des programmes côté serveur de MySQL :
myisamchk
Un utilitaire pour décrire, vérifier, optimiser et réparer les tables MySQL.
Mysqld
Le démon SQL.
mysql_install_db
Crée les tables de droits MySQL, avec les droits par défaut. Il est généralement exécuté une fois, lors de la première installation de MySQL.
safe_mysqld
Est la méthode recommandée pour démarrer un démon mysqld sous Unix. safe_mysqld ajoute des fonctionnalités de sécurité, telles que le redémarrage automatique lorsqu’une erreur survient et l’enregistrement d’informations d’exécution dans un fichier de log. Normalement, vous ne devriez jamais éditer le script safe_mysqld, mais plutôt utiliser les options de safe_mysqld dans la section [safe_mysqld] du fichier ‘my.cnf’.

Gestion des droits
Après l’installation de MySQL, un utilisateur root a été créé. Il a le droit de se connecter en local sur n’importe quelle base de données et possède les droits sur toutes les tables. Le problème est qu’il n’a pas besoin de mot de passe. Attention ne le confondez pas avec l’utilisateur system root, qui lui, du moins je l’espère pour votre système, possède un mot de passe extrêmement solide.
Commençons donc pas le plus urgent : donner un mot de passe à l’utilisateur root :
mysql>use mysql
mysql>UPDATE user SET password = password(« mot_de_passé_quilestbien ») WHERE
user= »root »;
mysql>FLUSH PRIVILEGES
Ouf, une bonne chose de faite. Vous remarquerez que nous avons utilisé une base de données appelée mysql et que nous avons modifié le contenu d’un enregistrement à l’aide de la fonction PASSWORD(). De cette manière, les mots de passe seront cryptés à l’aide de l’algorithme MD5.
MySQL authentifie une connexion en prenant deux éléments, le login et l’hôte depuis lequel la connexion est demandée. Pour MySQL le login seul n’est pas déterminant, vous pouvez en effet avoir un user philippe depuis 212.147.125.80 et un autre depuis localhost.

AU SUJET DE CE SUPPORT
PRESENTATION GENERALE
DECOUVERTE DU LANGAGE SQL
Utilisation de base du client MySQL
CREATION D’UNE BASE DE DONNEES
CREATION DE LA TABLE
INSERTION DE DATA
Importation depuis un fichier texte
SELECTIONNER DES ENREGISTREMENTS
Passons à la pratique I
LA COMMANDE WHERE
LES REGROUPEMENTS ET LES FONCTIONS
REQUETE UTILISANT PLUS D’UNE TABLE
METTRE A JOUR LE CONTENU D’UNE TABLE
EFFACER DES ENREGISTREMENTS
ADMINISTRATION
SAUVEGARDER LES DATAS DE VOS BASES DE DONNEES
REPARER UNE BASE DE DONNEE
TRADUIRE UN CODE D’ERREUR
MODIFIER LE COMPORTEMENT DU SERVEUR
Mettre les messages d’erreur en français
Quelques options relatives à la sécurité
SCRIPTS SERVEURS ET DES UTILITAIRES
GESTION DES DROITS
ATTRIBUER ET MODIFIER LES DROITS
Quelques exemples d’attributions de droits
OPTIMISATION DES REQUETES
OPTIMISATION DES SELECTS
Les index
OPTIMISATION DE LA CLAUSE WHERE
OPTIMISATION DES INSERTS
AUTRES POSSIBILITES D’OPTIMISATION
OPTIMISER DES LA CONCEPTION
MAINTENANCE ET EXPLOITATION DE LA BASE
PHPMYADMIN : INTERFACE WEB DE GESTION DE MYSQL
ANNEXES
CORRECTION DES EXERCICES PRATIQUES
LES COMMANDES EN DETAIL
La commande CREATE TABLE
Valeurs possibles
La commande LOAD DATA
UTILISATION DES TABLE INNODB
REPLCATION DE BASES
Configuration du maître
Configuration de l’esclave
Introduction à MySQL
REFERENCE DU LANGUAGE MYSQL
STRUCTURE DU LANGAGE
LES CHAINES
LES NOMBRES
Valeurs hexadécimales
Valeurs NULL
Variables utilisateur
Variables système
SYNTAXE DES COMMENTAIRES
LES MOTS RESERVES
FONCTIONS A UTILISER DANS LES CLAUSES SELECT ET WHERE
OPERATEURS DE COMPARAISON ET FONCTIONS

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *