Commandes de base en ligne de commande

publicité
Serveur de base de données
Installation :
Etant familliarisé avec le serveur MySQL(serveur de base de données), nous installerons celui-ci.
Coté Serveur :
Installer le paquet mysql-server avec la commande aptitude install mysql-server.
Une fois installé MySQL devrait se lancer, sinon lancez le avec la commande /etc/init.d/mysql
start .
Configuration
La configuration de base est stockée dans /etc/mysql/my.cnf
language = /usr/share/mysql/french
Choisir la langue par défaut pour les messages du serveur (français)
key_buffer = 32M
Taille du cache des index
query_cache_limit = 2M
Taille limite du cache par requête
query_cache_size = 32M
Taille totale du cache des requêtes
#log_bin = /var/log/mysql/mysql-bin.log
#expire_logs_days = 10
Désactiver le log binaire en commentant ces deux lignes grâce à # (le log binaire n'est utile
que dans le cas de réplications avec serveurs maître-esclave)
log_slow_queries = /var/log/mysql/mysql-slow.log
Mettre en log les requêtes lentes (utile pour les repérer et les optimiser)
long_query_time = 2
Durée (en secondes) à partir de laquelle une requête est considérée comme lente
[mysqld]
default-character-set = utf8
Jeu de caractères par défaut pour le serveur
default-collation = utf8_general_ci
Collation du jeu de caractères
[client]
default-character-set = utf8
Jeu de caractères par défaut pour le client
N'oubliez pas de recharger le serveur suite à ces modifications :
/etc/init.d/mysql reload
Sécurisation de la base de donnée :
Il est facile de mettre en place quelques règles simples pour sécuriser le serveur, grâce au script :
mysql_secure_installation
Et en répondant à quelques questions :
Set root password ? Y
Permet de modifier le mot de passe root (de mysql)
Remove anonymous users ? Y
Retire les accès anonymes
Disallow root login remotely ? Y
Retire l'accès root distant (recommandé)
Remove test database and access to it ? Y
Retire la base test et ses accès
Reload privilege tables now ? Y
Recharge les privilèges suite aux modifications
Connexion :
Vous pourrez vous connecter en ligne de commande grâce au client :
mysql –u login –p motdepasse
Ou bien en utilisant un client graphique, voire aussi phpMyAdmin
Commandes shell utiles
mysqldump –u login –p motdepasse nom_base >fichier.sql
Exporte la base nom_base vers fichier.sql
mysqldump –u login –p motdepasse --all-databases >fichier.sql
Exporte toutes les bases vers fichier.sql
mysql –u login –p motdepasse <fichier.sql
Importe les instructions du fichier SQL
mysqladmin
Toute une collection d'outils pour administrer le serveur.
Commandes de base en ligne de commande MySQL (client)
Terminez toutes vos commandes avec le caractère point-virgule ;
SHOW DATABASES ;
Liste les bases de données
SHOW STATUS ;
Affiche le statut du serveur
USE nom_base ;
Sélectionne la base par défaut
SHOW TABLES ;
Affiche les tables de la base courante
DESCRIBLE table ;
Affiche la structure de la table
SELECT * FROM table ;
Affiche le contenu de la table
CREATE DATABASE base ;
Crée une nouvelle base de données
Create user « nom_utilisateur » identified by « ‘mot_de_passe’ »
Crée un nouveau utilisateur
Select host, user, password from mysql.user ;
Voir la liste des utilisateur
GRANT ALL PRIVILEGES ON `test`
Accorder des droit a un utilisateur
Coté Client :
Installer le paquet mysql-client avec la commande aptitude install mysqlclient.
Pour utiliser le client MySQL tapez la commande mysql suivi du login et du password voire
l'adresse ip si l'accès se fait à distance (ex: mysql -h 192.168.10.2 -u user -p
password).
Configuration :
Pour accéder à une base de données et y avoir des privilèges, il faut créer un utilisateur et lui donner les
privilèges sur une base ou table souhaitée.
Coté Serveur :
Créer une base de données avec la commande 'CREATE DATABASE nom_base ;'.
Créer l'utilisateur avec la commande CREATE USER
'utilisateur'@'IP_adresse' IDENTIFIED BY 'mot_de_passe' ;
Donner les privilèges sur la base 'BAMK' à l'utilisateur 'utilisateur' avec la
commande GRANT ALL ON BAMK.* TO
'utilisateur'@'IP_adresse' ;
Modification du port d'écoute(bind-address) avec un éditeur de texte 'pico
/etc/mysql/my.cnf', le but est de rediriger le port d'écoute vers tout.
La ligne du bind-address doit-être : bind-address = 0.0.0.0
Crontab :
Pour sauvegarder périodiquement une base de donnée mysql :
Ensuite pour éxécuter périodiquement se s ript automatiquement en mode
commande tappez crontab –e
Rajoutez cette ligne a la fin du fichier, cette ligne signifie que l’on veut exécuter
le script sauvegarde.sh tout les samedi a 21h
m : minutes (de 0 à 59)
h : heures (de 0 à 23)
dom : jour du mois (de 1 à 31)
mon : mois (1 à 12 ou jan, feb, mar, ...)
dow : jour de la semaine (0 ou 7=dimanche, 1=lundi, 2=mardi, ...)
Tous (en fonction de la colonne où elle est placée, tous les jours, tous les
mois, toutes les heures, ....)
/ : Répetition
- : Intervalle
, : Plusieurs valeurs
Quelques exemples :
*/1 * * * * commande : Toutes les minutes de toutes les heures de tous les
jours de tous les mois
0 10 * * 1-5 commande : Du lundi au samedi (1-6) à 10h00
0 21 4,14,24 * * commande : Les 4, 14 et 24 de chaque mois à 21h00
19 8-16/1 * 1,2 1-6 commande : Toutes les heures de 8h à 16h, à la 19ème
minute, en Janvier et Février tous les jours sauf le dimanche
Téléchargement