La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Administration du SGBD Mysql sudo aptitude install mysql-server-5.1 Installation par système de paquets Puis une confirmation de ce mot de passe :

Présentations similaires


Présentation au sujet: "Administration du SGBD Mysql sudo aptitude install mysql-server-5.1 Installation par système de paquets Puis une confirmation de ce mot de passe :"— Transcription de la présentation:

1 Administration du SGBD Mysql sudo aptitude install mysql-server-5.1 Installation par système de paquets Puis une confirmation de ce mot de passe :

2 Administration du SGBD Mysql Installation avec les binaires wget fichier.tar.gz tar zxf fichier.tar.gz wget fichier.tar.gz tar zxf fichier.tar.gz Création de lutilisateur et du groupe mysql : groupadd mysql useradd -g mysql mysql groupadd mysql useradd -g mysql mysql Positionnement des droits : chown -R mysql. chgrp -R mysql. chown -R mysql. chgrp -R mysql. Exécution du script mysql_install_db :./scripts/mysql_install_db --user=mysql

3 Administration du SGBD Mysql Démarrage du serveur Toutes les méthodes décrites pour lancer le serveur MySQL nécessitent dêtre connecté en tant q ue root. Script mysql.server $ sudo /etc/init.d/mysql start Script mysqld_safe Le script mysql.server fait appel à mysqld_safe. mysqld_safe lance mysqld et crée automatiquement un journal derr eur. Il sagit de la méthode qui est recommandée dans la documentation officielle pour lancer le serveur Voir manuel pour les options de démarrage

4 Administration du SGBD Mysql Invocation directe de mysqld /chemin/vers/mysqld --defaults-file=/chemin/vers/my.cnf --user=mysql & Arrêt du serveur $ sudo /etc/init.d/mysql stop mysqladmin $ mysqladmin -uroot -p shutdown

5 Administration du SGBD Mysql Sécurisation de linstallation Quel que soit le mode dinstallation, le script mysql_secure_installation, livré avec toutes les distributions, peut vous aider en réalisant quelques vérification s basiques. Ce script : vérifie que lutilisateur root a un mot de passe ; propose de supprimer les utilisateurs anonymes ; supprime le compte root distant ; supprime la base test ; propose de recharger les privilèges. Ce script reste simple et limité mais permet de pointer les erreurs les plus grossières au niveau de la sécurité.

6 Administration du SGBD Mysql Installation de plusieurs instances À chaque nouvelle installation sur une machine hébergeant déjà une ou plusie urs instances, il vous faut absolument configurer un certain nombre de paramètres de manière à isoler complètement votre nouvelle instance. Ces paramètres sont les suivants : Port et socket pour les connexions des clients. Répertoire de données. Répertoire de journaux. Tablespace pour InnoDB (le tablespace se trouve par défaut dans le répertoire de données, le choix dun répertoire de données est donc normalement suffisant). server-id (ce paramètre peut échapper car il ne devient crucial quavec la réplication).

7 Administration du SGBD Mysql Installation sous Windows My.ini --- fichier de configuration Reglage dans my.ini [client] port = 3307 [mysqld] port = 3307 basedir = C:/mysql5141 server-id = 11 [client] port = 3307 [mysqld] port = 3307 basedir = C:/mysql5141 server-id = 11

8 Administration du SGBD Mysql Installation sous Windows Démarrage du serveur Installer Mysql en tant que service : C:\>chemin/vers/mysqld --install MySQL51 –defaults -file=chemin/vers/my.ini Pour supprimer un service : C:\>chemin/vers/mysqld --remove MySQL51 Lancer le serveur C:\>chemin/vers/mysqld --defaults-file=chemin/vers/my.ini net start XXX

9 Administration du SGBD Mysql Installation sous Windows Arrêt du serveur net stop XXX C:\>mysqladmin -uroot -p shutdown

10 Administration du SGBD Mysql Mise à jour de Mysql Arrêtez le serveur et remplacer les anciens binaires par les nouveaux Lancer ensuite mysql_upgrade

11 Administration du SGBD Mysql Architecture Mysql Mysqld

12 Administration du SGBD Mysql Mysql Architecture Mysql

13 Administration du SGBD Mysql Architecture Mysql

14 Administration du SGBD Mysql Architecture Mysql Lutilisation des disques: Les schémas Fichiers.frm Les journaux, les journaux binaires et journaux derreurs du serveur Les journaux du moteur du stockage (innodb), la réplication, les fichiers de configurations Les déclencheurs et les triggers Les schémas Fichiers.frm Les journaux, les journaux binaires et journaux derreurs du serveur Les journaux du moteur du stockage (innodb), la réplication, les fichiers de configurations Les déclencheurs et les triggers Stockage par défaut dans datadir

15 Administration du SGBD Mysql Architecture Mysql Stockage par défaut dans datadir Répartir la charge entre plusieurs disques : Exemple darchitecture multidisques: Disque pour le système Disque pour les binaires Disque pour les fichiers temporaires tempdir Disque pour les journaux Exemple darchitecture multidisques: Disque pour le système Disque pour les binaires Disque pour les fichiers temporaires tempdir Disque pour les journaux

16 Administration du SGBD Mysql Architecture Mysql

17 Administration du SGBD Mysql Architecture Mysql Le moteur de stockage Utiliser plusieurs moteurs de stockage

18 Administration du SGBD Mysql Architecture Mysql La journalisation 4 types de journaux : le journal binaire (binary log) le journal des requêtes lentes (slow query log) le journal général (general query log) le journal des erreurs (error log) le journal binaire (binary log) : Insert, update, delete etc… Cest le journal central de Mysql, sert aussi pour la réplication voir section 7 de larchitecture)

19 Administration du SGBD Mysql Configuration du serveur Lors de la compilation Fichier my.cnf / my.ini En tant que paramètre de mysqld au lancement Dynamiquement pendant lexécution du serveur commande SET Lors de la compilation Fichier my.cnf / my.ini En tant que paramètre de mysqld au lancement Dynamiquement pendant lexécution du serveur commande SET Voir section 2 du chapitre configuration du serveur

20 Administration du SGBD Mysql La sécurité Sécuriser linstallation Contrôler les droits shell> groupadd mysql shell> useradd -g mysql mysql shell> groupadd mysql shell> useradd -g mysql mysql shell> cd /usr/local/mysql/ shell> chown R root. shell> chown -R mysql data shell> chgrp R mysql. shell> cd /usr/local/mysql/ shell> chown R root. shell> chown -R mysql data shell> chgrp R mysql. Mysqld ne doit pas tourner sous root

21 Administration du SGBD Mysql La sécurité shell> mysql -u root # connexion au serveur avec lutilisateur root sans mot de passe mysql> SET PASSWORD FOR = password(m0T2p4ss3); /* la commande set password permet de mettre un mot de passe à un compte utilisateur */ shell> mysql -u root # connexion au serveur avec lutilisateur root sans mot de passe mysql> SET PASSWORD FOR = password(m0T2p4ss3); /* la commande set password permet de mettre un mot de passe à un compte utilisateur */ Donner un mot de passe à root Renommer le compte administrateur RENAME USER TO Supprimer les comptes anonymes Supprimer le schémas test

22 Administration du SGBD Mysql La sécurité Gestion des utilisateurs Base système Mysql : User Db tables_priv columns_priv procs-priv Base système Mysql : User Db tables_priv columns_priv procs-priv Commandes de gestion des droits : CREATE USER GRANT REVOKE Drop user Show grants CREATE USER GRANT REVOKE Drop user Show grants

23 Administration du SGBD Mysql La sécurité mysql> SHOW PRIVILEGES;

24 Administration du SGBD Mysql mysql> GRANT all ON test.* TO momo IDENTIFIED BY titi ; mysql> GRANT select,insert ON mysql.* TO identified by "titi" [with GRANT OPTION]; mysql> GRANT all ON test.* TO momo IDENTIFIED BY titi ; mysql> GRANT select,insert ON mysql.* TO identified by "titi" [with GRANT OPTION]; La sécurité Privilèges globaux, ne s'appliquent pas à UNE base particulière : Reload : permission de relancer le serveur mysql et d'ecrire les tables sur disques. Shutdown : droit d'arrêter le serveur mysqld » Process : droit de contrôler les processus utilisateurs. File : droit d'écrire ou lire dans des fichiers ascii avec les commandes « load data » et « into outfile » Privilèges globaux, ne s'appliquent pas à UNE base particulière : Reload : permission de relancer le serveur mysql et d'ecrire les tables sur disques. Shutdown : droit d'arrêter le serveur mysqld » Process : droit de contrôler les processus utilisateurs. File : droit d'écrire ou lire dans des fichiers ascii avec les commandes « load data » et « into outfile »

25 Administration du SGBD Mysql mysql> SHOW GRANTS FOR root; mysql> SHOW GRANTS FOR ; mysql> SHOW GRANTS FOR root; mysql> SHOW GRANTS FOR ; La sécurité Visualiser les droits Oter des permissions: REVOKE mysql> REVOKE ALL on *.* FROM momo ; mysql> REVOKE ALTER,DELETE,DROP on mysql.* FROM momo mysql> REVOKE GRANT OPTION on mysql.* FROM mysql> REVOKE SELECT on mysql.* FROM mysql> REVOKE ALL on *.* FROM momo ; mysql> REVOKE ALTER,DELETE,DROP on mysql.* FROM momo mysql> REVOKE GRANT OPTION on mysql.* FROM mysql> REVOKE SELECT on mysql.* FROM

26 Administration du SGBD Mysql La sécurité à partir de la version (nécessité d'enlever tous les privilèges avant de détruire l'utilisateur) mysql> SHOW GRANTS FOR mysql> REVOKE ALL PRIVILEGES FROM mysql> DROP USER toto; mysql> SHOW GRANTS FOR mysql> REVOKE ALL PRIVILEGES FROM mysql> DROP USER toto; mysql> FLUSH PRIVILEGES;

27 Administration du SGBD Mysql Création d'une base avec mysqladmin $ mysqladmin -u root -p create NOMDEBASE $ mysqladmin -p drop NOMDEBASE Destruction d'une base avec mysqladmin

28 Administration du SGBD Mysql Se créer une base vierge /opt/mysql/bin/mysqladmin -u root -p create ma_base Créer les tables en batch avec le script /opt/mysql/bin/mysql -u root -p < Mon_script_de_base Se créer une base vierge /opt/mysql/bin/mysqladmin -u root -p create ma_base Créer les tables en batch avec le script /opt/mysql/bin/mysql -u root -p < Mon_script_de_base

29 Administration du SGBD Mysql Créer plusieurs utilisateurs et affecter des droits différents à ces utilisateurs par GRANT et REVOKE Un utilisateur qui aura tous les droits sur la Base Un utilisateur qui n'aura que le droit de sélectionner Un utilisateur qui aura le droit d'écrire dans les tables et les modifier et récupérer les sélections dans un fichier Créer plusieurs utilisateurs et affecter des droits différents à ces utilisateurs par GRANT et REVOKE Un utilisateur qui aura tous les droits sur la Base Un utilisateur qui n'aura que le droit de sélectionner Un utilisateur qui aura le droit d'écrire dans les tables et les modifier et récupérer les sélections dans un fichier GRANT all ON test.* TO IDENTIFIED BY titi ;

30 Administration du SGBD Mysql Instructions de maintenance des Tables BACKUP TABLE RESTORE TABLE REPAIR TABLE CHECK TABLE ANALYZE TABLE OPTIMIZE TABLE BACKUP TABLE RESTORE TABLE REPAIR TABLE CHECK TABLE ANALYZE TABLE OPTIMIZE TABLE

31 Une table au format MyISAM (séquentiel indexé) se décompose en 3 fichiers : Administration du SGBD Mysql

32 Les bases sont des répertoires, et les tables des fichiers... les opérations de sauvegarde et de backup sont donc simples! Avec un serveur en activité, pour assurer des copies sécurisées: mysql>LOCK TABLES; mysql>FLUSH TABLES ( assure que tous les index et données sont bien écrits avant de commencer la copie.) Hors du contrôle du serveur, et serveur arrêté, on peut faire régulièrement (cron) une simple copie des bases: $ rsync -av /var/lib/mysql/unebase /opt/SAUVEBASE/ Les bases sont des répertoires, et les tables des fichiers... les opérations de sauvegarde et de backup sont donc simples! Avec un serveur en activité, pour assurer des copies sécurisées: mysql>LOCK TABLES; mysql>FLUSH TABLES ( assure que tous les index et données sont bien écrits avant de commencer la copie.) Hors du contrôle du serveur, et serveur arrêté, on peut faire régulièrement (cron) une simple copie des bases: $ rsync -av /var/lib/mysql/unebase /opt/SAUVEBASE/ Sauvegarde Administration du SGBD Mysql

33 Sauvegarde L'utilitaire mysqldump permet de faire des sauvegardes complètes en ascii Backup : $ mysqldump --opt database [table] > backup-file.sql $ /opt/mysql/bin/mysqldump -u root -ptoto ma_base Restauration: $ mysql database < backup-file.sql L'utilitaire mysqldump permet de faire des sauvegardes complètes en ascii Backup : $ mysqldump --opt database [table] > backup-file.sql $ /opt/mysql/bin/mysqldump -u root -ptoto ma_base Restauration: $ mysql database < backup-file.sql Exemple 1 Administration du SGBD Mysql

34 Sauvegarde Exemple 2 Sauvegarde d'une base complète avec toutes les tables dans datadir (/var/lib/mysql/) : $ /usr/bin/mysqlhotcopy --debug -u root –password='titi' ma_base ficheir_de_sauvegarde Sauvegarde de la table CLIENTS de la base ma_base dans un répertoire extérieur à / var/lib/mysql : $ /usr/bin/mysqlhotcopy --debug --addtodest -u root -- password='aaa' ma_base./CLIENTS/ "/home/momo" Sauvegarde d'une base complète avec toutes les tables dans datadir (/var/lib/mysql/) : $ /usr/bin/mysqlhotcopy --debug -u root –password='titi' ma_base ficheir_de_sauvegarde Sauvegarde de la table CLIENTS de la base ma_base dans un répertoire extérieur à / var/lib/mysql : $ /usr/bin/mysqlhotcopy --debug --addtodest -u root -- password='aaa' ma_base./CLIENTS/ "/home/momo" Administration du SGBD Mysql

35 Vérifier les tables… réparer Pour vérifier et réparer des tables MyISAM – CHECK TABLE – REPAIR TABLE Pour optimiser des tables MyISAM : – OPTIMIZE TABLE – ANALYZE TABLE L'utilitaire « myisamchk » hors du contrôle du serveur Pour vérifier et réparer des tables MyISAM – CHECK TABLE – REPAIR TABLE Pour optimiser des tables MyISAM : – OPTIMIZE TABLE – ANALYZE TABLE L'utilitaire « myisamchk » hors du contrôle du serveur Administration du SGBD Mysql

36 analyse des tables Faire une sauvegarde avec mysqldump Faire une sauvegarde avec mysqlhotcopy Faire une sauvegarde avec backup Utiliser les commandes Check Repair Analyse Optimize mysqlchk analyse des tables Faire une sauvegarde avec mysqldump Faire une sauvegarde avec mysqlhotcopy Faire une sauvegarde avec backup Utiliser les commandes Check Repair Analyse Optimize mysqlchk Résumé Administration du SGBD Mysql

37 La sécurité Perte de mot de passe Arrêter le serveur Redémarrer :* hell> mysqld --skip-grant-tables --skip-networking --console -- socket=/tmp/maintenance.sock & Voir procédure complète dans section 3 gestion de la sécurité Création des utilisateurs CREATE USER IDENTIFIED BY mot_de_passe Donner des droits GRANT type_de_droits ON portée_des_droits T O compte_utilisateur. Section 3 sécurité

38 Administration du SGBD Mysql La sécurité Utiliser : SSL Section 7 Utiliser : SSL Section 7 Renforcer la sécurité Section 8 Renforcer la sécurité Section 8 Utiliser le chiffrement des données Section 9 Utiliser le chiffrement des données Section 9

39 Administration du SGBD Mysql

40 Exemples de scripts pour windows OFF for /f "tokens=1-4 delims=/ " %a in ('date/t') do ( set dw=%a set mm=%b set dd=%c set yy=%d ) SET bkupdir=C:\path\to\where\you\want\backups SET mysqldir=D:\path\to\mysql SET dbname=this_is_the_name_of_my_database SET Beginning backup of %dbname%... %mysqldir%\bin\mysqldump -B %dbname% -u %dbuser% | gzip > Done! New File: dbBkup_%dbname%_%yy%mm%dd%.sql Exemples de scripts pour windows OFF for /f "tokens=1-4 delims=/ " %a in ('date/t') do ( set dw=%a set mm=%b set dd=%c set yy=%d ) SET bkupdir=C:\path\to\where\you\want\backups SET mysqldir=D:\path\to\mysql SET dbname=this_is_the_name_of_my_database SET Beginning backup of %dbname%... %mysqldir%\bin\mysqldump -B %dbname% -u %dbuser% | gzip > Done! New File: dbBkup_%dbname%_%yy%mm%dd%.sql Administration du SGBD Mysql

41 Remote Host backup with linked PATH to mysqldump: 0 1 * * * mysqldump -h mysql.host.com -uusername -ppassword --opt database > /path/to/directory/filename.sql Remote Host backup: 0 1 * * * /usr/local/mysql/bin/mysqldump -h mysql.host.com -uusername -ppassword --opt database > /path/to/directory/filename.sql Local Host mysql backup: 0 1 * * * /usr/local/mysql/bin/mysqldump -uroot -ppassword --opt database > /path/to/directory/filename.sql Exemples de planification avec crontab dans linux Administration du SGBD Mysql

42 Exemple de sauvegarde dans un fichier.xml shell> mysqldump --xml -u root pubs > c:\pubs.xml Exemple de sauvegarde dans un fichier.xml shell> mysqldump --xml -u root pubs > c:\pubs.xml Administration du SGBD Mysql

43 >Mysql –u root –p –html execute=select * from auteurs; \ –default-character-set=latin1 pubs >auteurs.html >Mysql –u root –p –html execute=select * from auteurs; \ –default-character-set=latin1 pubs >auteurs.html Résultat

44 Administration du SGBD Mysql


Télécharger ppt "Administration du SGBD Mysql sudo aptitude install mysql-server-5.1 Installation par système de paquets Puis une confirmation de ce mot de passe :"

Présentations similaires


Annonces Google