Commandes utiles

Backup/restore de bdd
Backup

si on utilise le root...

mysqldump --user=root -p --databases base | gzip > base.sql.gz
Restore

si on utilise le root...

mysql -u root -p base < base.sql
Gestion base
voir les bases
show databases;
utiliser une base
use nomdelabase;
voir les tables
show tables;
voir les champs present dans la base
show column from nomdelatables;
Creation d'une base
create database nomdelabase;
Supprimer juste une ligne dans une table
delete from 'bdd'.'table' where 'condition';

si l'on desire supprimer plusieurs ligne

delete from 'bdd'.'table' where `column` IN (x,y);
vider une table

Pour vider le contenu d'une table sans supprimer la table

truncate table 'la_table'
Suppression d'un table
Drop table tableASupp
Modification du type d'une columns dans une table
    ALTER TABLE table_name    
    MODIFY COLUMN column_name1 data_type,  
    MODIFY COLUMN column_name2 data_type ... ; 
Suppression d'une base
DROP database Base_name
Gestion utilisateur
Voir les utilisateurs existant
SELECT User FROM mysql.user;
creation utilisateur
CREATE USER 'user'@localhost IDENTIFIED BY 'password';
Suppression d'un utilisateur
DROP USER ‘identifiant’@’serveur’;
Gestion droits utilisateur
Voir les droits d'un utilisateur
SHOW GRANTS FOR 'user'@localhost;
Ajouter des droits
GRANT ALL PRIVILEGES ON nomBdd.* TO 'user'@localhost;
FLUSH PRIVILEGES;

/!\ ATTENTION : Bien faire attention de selectionner les droits en fonction (USAGE, ALTER, CREATE, DELETE SELECT, INSERT, UPDATE, ALL PRIVILEGES,..)

Suppression de droits
REVOKE ALL PRIVILEGES ON nomBdd.* FROM 'user'@'192.%';
Modification du mot de passe utilisateur.

Il existe plusieur soulution en fonction de votre version mysql/mariadb

Pour MySQL 5.7.6 ou MariaDB 10.1.20 (ou supérieur)

ALTER USER 'user-name'@'localhost' IDENTIFIED BY 'NEW_USER_PASSWORD';
FLUSH PRIVILEGES;

Si le ALTER USER ne fonctionne pas, vouz pouvez modifier la table user directement:

UPDATE mysql.user SET authentication_string = PASSWORD('NEW_USER_PASSWORD')
WHERE User = 'user-name' AND Host = 'localhost';
FLUSH PRIVILEGES;

Pour MySQL 5.7.5 ou MariaDB 10.1.20 (ou inférieur):

SET PASSWORD FOR 'user-name'@'localhost' = PASSWORD('NEW_USER_PASSWORD');
FLUSH PRIVILEGES;
Trucs et astuces
Ne pas afficher derreur si la base nexiste pas

Par defaut, si le nom de base utilise nexiste pas, la requete retournera une erreur. Pour eviter dobtenir cette erreur si vous n'etes pas sur du nom, il est possible dutiliser loption IF EXISTS. La syntaxe sera alors la suivante:

DROP DATABASE IF EXISTS ma_base
Connection distante

Se connecter a un serveur distant (utile pour test) Remplacer les xxx par votre adresse de serveur

mysql -u User -p -h xxx.xxx.xxx.xxx
Last used of my database
SELECT TABLE_NAME, UPDATE_TIME
FROM   INFORMATION_SCHEMA.TABLES
WHERE  TABLE_SCHEMA = 'dbname'
AND    TABLE_NAME = 'tabname'
order by UPDATE_TIME;
ERREUR : Old insecure authentication

Dans le cas de ce message qui apparait

QLSTATE[HY000] [2000] mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password'). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file

il faut aller sur la base de donnée ou l'application essaie de ce connecter et lancer les commande suivante

SET @@session.old_passwords = 0;
Query OK, 0 rows affected (0.00 sec)

SET PASSWORD FOR 'existinguser'@'localhost' = PASSWORD('existingpass');
Query OK, 1 rows affected (0.00 sec);