Ce mémo récapitule quelques commandes de base de MySQL :

Traitement des Champs
Les Selections : SELECT * FROM table WHERE id=0; ou SELECT * FROM table WHERE fichier liKE '%/ping';
Les Insersions : INSERT INTO table SET AddrIP='$AddrIP'; ou INSERT INTO table VALUES ('$AddrIP','2nd champ');
Les Suppressions : DELETE FROM table WHERE login='$nom';
Les Mises à Jour : UPDATE table SET user='licence' WHERE user='update';


Traitement des Bases
Création de Base : CREATE DATABASE menagerie CHARACTER SET utf8 COLLATE utf8_general_ci;
Suppression de Base : DROP DATABASE menagerie;

Selection de Base :
USE menagerie;

Sauvegarde et Restauration
Chargement d'une table à partir d'un fichier : LOAD DATA LOCAL INFILE "file.txt" INTO table table;
Sauvegarde d'une table dans un fichier : SELECT * INTO OUTFILE 'file.txt' FROM table;


Traitement des Tables
Création de Tables : CREATE TABLE admin (
idlogin INT NOT NULL AUTO_INCREMENT,
login varchar(20) NOT NULL default '',
password varchar(50) default NULL,
typeUser varchar(10) NOT NULL,
PRIMARY KEY (idlogin)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


Gestion des champs :
Pour ajouter une colonne typeUser : ALTER table admin ADD typeUser varchar(10) NOT NULL;
Pour renommer une colonne INTEGER de a vers b : ALTER table t1 CHANGE a b INTEGER;
Pour changer le type d'une colonne sans la renommer : ALTER table t1 MODIFY b BIGINT NOT NULL;
Pour supprimer une colonne b : ALTER table t1 DROP b;
Suppression de Table : DROP table table;
Création d'index : CREATE INDEX index_name ON tbl_name (index_col_name,...);


Affiche la liste des Tables : SHOW TABLES;
Description de Table : DESCRIBE table; ou show create table `NomTable`;

Utilisation mode texte
Annuler une commande sans quitter :
Ctrl+U : Efface la ligne (et seulement elle dans le cas d'une requête de plusieurs lignes
\c : Annule la requête complète, sans l'exécuter

Sécurisation de MySQL
Les utilisateurs sont dans la base mysql.
Deux tables sont importantes : user et db.
Pour créer les utilisateurs, deux choix :
Dans user, creer l'utilisateur avec des 'N' partout.
    Dans db, creer sur quelle table quel utilisateur peut faire quoi.
    Apres, Validez par 'FLUSH PRIVILEGES'
ou
CREATE USER nomUser@localhost IDENTIFIED BY 'Pa$$Word'; GRANT ALL ON mydb.* TO 'nomUser'@'localhost'; A la place de ALL, on peut mettre SELECT, UPDATE, INSERT, DELETE, INDEX, ALTER, CREATE, DROP en choisissant les paramètres séparés par des virgules
Pour permettre un accès réseau à un utilisateur existant, utiliser RENAME USER 'YOUR-USER'@'localhost' TO 'YOUR-USER'@'%';

Crypter le mot de passe root
USE mysql;
UPDATE user SET Password=password('nouveaumotdepasse') WHERE user='root';


Les Logs de MySQL
Mettre dans le fichier /etc/my.cnf, l'option
[mysqld]
log=/var/log/mysqld.log
Relancez le serveur.

Replicat de MySQL
Pour reinitialiser un replicat qui ne fonctionne plus :
SLAVE STOP;
RESET MASTER;
RESET SLAVE;
SLAVE START;