MYSQL

Notes MYSQL

 

Telechargement : ici

Installation windows :
dezippe le fichiers serveur ou on veut ( dans mon exemple c:\mysql)
dans le dossier mysql on crée in fichier my.ini
dans ce fichier on note :
[mysqld]
basedir= c:/mysql
datadir= c:/mysql/data

basedir est le dossier ou se situe les fichiers de mysql
datadir est le dossier ou seront placées les bases sql ( cela peu etre un autre endroit, le dossier sera créer a l initialisation.

un fois le fichier créé, on passe en mode commande ou dans powershell :
on se place dans le dossier c:\mysql\bin :
.\mysqld.exe –defaults-file=c:\mysql\my.ini –initialize
c’est avec cette commande que el dossier data est rée, si pas d’erreur, Mysql est maintenant fonctionnel

une fois ok on demarre le serveur:
.\mysqld.exe –console

on se connecte:
le passe temporaire root est placé dans le fichier erreur dans le dossier data crée
.\mysql.exe -u root -p

on rentre le mot de passe te c est ok
ne reste plus qu a changer le mot de passe :
alter user ‘root’@’localhost’ ientified by ‘ nouveaumotpasse’ ;

ne pas oublier les points virgule a la fin de chaque commande sql
il faut se déconnecter et se reconnecter

allumer sql
.\mysqld.exe –console

eteindre mysql
.\mysqladmin.exe -u root -p shutdown


quelques commandes :

se connecter sur une base distante ( on précise le port seulement si diffèrent) :
-u pour préciser un user
-h pour préciser une adresse ip
-P pour préciser le port ( en majuscule)
-p pour la demande de mot de passe

mysql -u nico -p -h 192.168.1.100 -P 33066
on peut directement inclure le mot de passe dans la commande( pas conseillé mais faisable) en collant(pas d’espace) le mot de passe a l’option -p
mysql -u nico -ppassword -h 192.168.1.100 -P 33066

ne pas oublier les points virgule a la fin de chaque commande sql


 

Utilisateurs

pour afficher les utilisateurs enregistrés dans la base mysql ou mariadb :
en root Evidemment :
mysql> select user, host from mysql.user ;
apres installation de phpmyadmin, si on veut lui donner tous les droits :
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘phpmyadmin’@‘localhost’ WITH GRANT OPTION;

créér un utilisateur :
CREATE USER ‘adminbase’@’localhost’ IDENTIFIED BY ‘motdepasse’ ;
modifier le mot de passe :
SET PASSWORD FOR ‘adminbase’@’localhost’ = ‘newpasse’ ;
ou
ALTER USER ‘adminbase’@’localhost’  IDENTIFIED BY ‘newpasse’ ;
renommer l’utilisateur :
RENAME USER ‘adminbase’@’localhost’   TO ‘newadminbase’@’localhost’   ;
Donner les droits de l’utilisateur sur une base de données :
GRANT ALL PRIVILEGES ON mabase.* TO ‘newadminbase’@’localhost’ ;
supprimer l’utilisateur :
DROP ‘adminbase’@’localhost’ ;


 

les bases

Afficher les bases
SHOW databases;

Créer une base de données:
create database manouvellebase ;

entrer dans une base :
USE mabase;

Afficher les tables de la base :
show tables ;

renomer une table :
RENAME TABLE ancien_nom_table TO nouveau_nom_table ;

afficher les paramètres d’une table:
DESCRIBE matable ;

lire les données d’une table:
select * from matable ;

 

créer une table (exemple table simple avec 3 champs) :
CREATE TABLE amis
(
id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
pseudo VARCHAR(100),
telephone VARCHAR(300)
)
;

insertion de données dans une table :
INSERT INTO amis VALUES (1,’nico’,’05.53.57.07.35′);

copier une table avec ses données :
CREATE TABLE nouvelle_table AS SELECT * FROM table_existante;

Créer une sauvegarde de base avec la date:
mysqldump -u root -ppassword mabase > /backupsql/backup_mabasec_$(date +%Y-%m-%d–%H-%M-%S).sql


chiffrement des données :
explications ici : 


 

commandes des base sur une base de données :

afficher toutes les colonnes d’une table :
SELECT * FROM matable ;

afficher certeines colonnes d’une tables :
SELECTcolonne1, colonne3, colonne5 FROM matable ;

afficher un alias du titre de la colonne( le nom du champs)
SELECT nomcli as NomClient, vilcli VilleClient FROM tableclient ;

eviter les doublons sur l’affichage d’une table :
SELECT DISTINCT(villeclient) FROM tableclient ;

trier l’affichage d’une table :
SELECT nomclient, chiffrea FROM tableclient ORDER BY chiffrea ;
sans precision le tri est en ordre croissant, il faut preciser DESC pour avoir un affichage decroissant :
SELECT nomclient, chiffrea FROM tableclient ORDER BY chiffrea DESC ;

Limiter l’affichage des données d’une table :
SELECT * FROM tableclient LIMIT 10 ;
affiche les 10 derniers enregistrements de la table

SELECT * FROM tableclient LIMIT 3,5 ;
afficher les 5 derniers enregistrements a partir du 3em enregistrement ( 3,5) .

utiliser une close WHERE
SELECT * FROM tableclient WHERE villeclient = ‘bergerac’ ;
bergerac est entre apostrophe car c’est une valeur.
rajouter un tri :
SELECT nomclient, chiffrea FROM tableclilent WHERE villeclient=’bergerac’ ORDER BY nomclient ;
rajouter une condition :
SELECT * FROM tableclient WHERE villeclinet=’bergerac’ AND chiffrea >=  150000 ;

la clause LIKE
SELECT nomclient, villeclient FROM tableclient  WHERE nomclient LIKE ‘%a%’ ;
% désigne un ou plusieurs caractères
_ désigne un seul caractère .


 

Les Jointures

SELECT nomclient, villeclient FROM tableclient, tablecommande WHERE tableclient.IDclient = tablecommande.IDclient

IDlclient est appelé une clé étrangère, elle doit être identique pour chaque clients dans les 2 tables


Sauvegarde

il est possible en mode commande de passer une commande mysqldump directement sans rentrer en mode sql :
il remplacer root par l’utilisateur que vous utilisez habituellement pour gérer la base de données, evidement il faudra rentré le mot de passe apres la commande :

Par raison de securité des données , meme si cette sauvegarde peut etre utile de, personnellement je préfère y rajouter la sauvegarde de chaque base séparément
sudo mysqldump -u root-p – -all-databases > sauvegarde.sql

On peut  sauvegarder qu’une seule base  :
mysqldump -u root -p mabase > sauvegarde.sql

petit rappel :
pour visualiser les bases existantes : 
mysql -u root -p -e « show databases ; »
l’option -e permet de passer une commande sql en argument.

Restauration
petit conseil avant resauration, sauf si la base est vide , faite une sauvegarde complète au cas ou.

Restaurer une Base (elle devra être créé auparavant):
> mysql -u root -p mabase < monfichier.sql
cette restauration récré toutes les tables et y insert toutes les données qu il y avait au moment de la sauvegarde.

si besoin de données tous les droits a un utilisateur :
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘phpmyadmin’@‘localhost’ WITH GRANT OPTION;


SCP

avec ssh on peu facilement copier des fichiers dun pc a un serveur ou inverse :

copie d’un fichier local sur un serveur :
scp /home/nico/backup/backup.sql  root@192.168.1.155:/home/user/recup/
bien entendu cette commande demandera le mot de passe de l’utilisateur nommé

Pour copier dans le sens inverse, on verse la commande :
scp root@192.168.1.155:/backup/backup.sql  /home/nico/recup-serveur/