Configuration MYSQL en ligne de commande
vendredi 13 décembre 2013Voici une grande partie de socmmandes utiles pour configurer et utiliser un serveur de base de données MYSQL en ligne de commande.
Pour se connecter à la base de donnée:
prompt> mysql --user=user --password=password
Si pas de password défini par défaut après installation:
prompt> mysql --user=root
Pour définir un password au user root
prompt> mysqladmin -u root password password
Création du user:
mysql> CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
Attention:Si l’utilisateur doit avoir accès depuis l’extérieur, il faut changer le host localhost en % (any)
Maintenant il faut définir les droits sur la base de donnée à l’utilisateur:
mysql> GRANT SELECT, INSERT,UPDATE, DELETE ON database.* TO user@'localhost';
Important: de définir les bons privilèges à la base de donnée.
Il est parfois nécessaire de n’accorder des droits à l’utilisateur que sur certaine(s) table(s):
mysql> GRANT SELECT, INSERT,UPDATE, DELETE ON database.table TO user@'localhost';
Importer une base de donnée:
prompt> mysql --user=user --password=password database < /path/file.sql
Backuper la base de donnée:
mysqldump -u root -p database > /path/file.sqlCommandes utiles:
Voir les privilèges:
mysql> show GRANTS;
Voir les users: (être en root)
mysql> select * from mysql.user;
sélectionner la base de donnée
mysql> USE database_name;
Voir les bases de données
mysql> SHOW DATABASES;
Supprimer une database
mysql> DROP DATABASE database_name;
Créer une database
mysql> CREATE DATABASE database_name;
Voir les tables
mysql> SHOW TABLES;
Supprimer une table
mysql> DROP TABLE table_name;
Vider le contenu d’une table
mysql> TRUNCATE TABLE table_name;
Voir la taille de chaque tables d’une base de donnée db
SELECT TABLE_NAME, CONCAT(ROUND(((DATA_LENGTH + INDEX_LENGTH - DATA_FREE) / 1024 / 1024), 2), 'Mo') AS TailleMo FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'db'
Export csv du résultat d’une query
select * from table_name where condition INTO OUTFILE '/path/file.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '"' LINES TERMINATED BY '\n';
Si vous obtenez une erreur, il y a un article qui peut vous aider à configurer mysql pour l’exécution de cette query.
Pour connaître le poids de toute vos tables par ordre décroissant du poids:
SELECT table_schema as `Database`, table_name AS `Table`, round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB` FROM information_schema.TABLES ORDER BY (data_length + index_length) DESC;
Pour connaître le poids de vos database:
SELECT table_schema "DB Name", Round(Sum(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB" FROM information_schema.tables GROUP BY table_schema;