forme
This commit is contained in:
parent
708a329545
commit
a126acbe06
|
@ -50,7 +50,7 @@ mysql>
|
|||
|
||||
Il faut ensuite mettre un mot de passe pour le superutilisateur de MySQL, on conseille d'utiliser l'identifiant *adminmysql* car *root* peut prêter à confusion :
|
||||
|
||||
~~~
|
||||
~~~{ .sql }
|
||||
mysql> GRANT ALL PRIVILEGES ON *.* TO adminmysql@localhost IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
|
||||
mysql> DELETE FROM mysql.user where User='root';
|
||||
~~~
|
||||
|
@ -207,31 +207,31 @@ Le répertoire `/var/log/mysql/` contient les *binlogs* (trace de toutes les req
|
|||
|
||||
Créer une nouvelle base de données nommée _foo_ :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> CREATE DATABASE foo;
|
||||
~~~
|
||||
|
||||
Voir les bases de données créées :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> SHOW DATABASES;
|
||||
~~~
|
||||
|
||||
Utiliser la base de données _foo_ :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> USE foo
|
||||
~~~
|
||||
|
||||
Voir les tables créées :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> SHOW TABLES;
|
||||
~~~
|
||||
|
||||
Créer une table nommée _bar_ avec différents champs :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> CREATE TABLE bar (id INT not null AUTO_INCREMENT, prenom VARCHAR
|
||||
(50) not null , nom VARCHAR (50) not null , ne_le DATE not null ,
|
||||
ville VARCHAR (90), enfants INT, PRIMARY KEY (id));
|
||||
|
@ -239,68 +239,68 @@ ville VARCHAR (90), enfants INT, PRIMARY KEY (id));
|
|||
|
||||
Décrire une table :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> DESC bar;
|
||||
~~~
|
||||
|
||||
Ajouter un champ à une table :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> ALTER TABLE bar ADD another VARCHAR(100) DEFAULT NULL;
|
||||
~~~
|
||||
|
||||
Ajouter un champ à une table en précisant sa place :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> ALTER TABLE bar ADD another VARCHAR(100) DEFAULT NULL AFTER prenom;
|
||||
~~~
|
||||
|
||||
Supprimer un champ à une table :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> ALTER TABLE bar DROP another;
|
||||
~~~
|
||||
|
||||
Renommer un champ :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> ALTER TABLE bar CHANGE COLUMN another anotherone TEXT;
|
||||
~~~
|
||||
|
||||
Changer le type d'un champ :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> ALTER TABLE bar CHANGE another another enum('foo',bar');
|
||||
~~~
|
||||
|
||||
Insertion de données dans une table :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> INSERT INTO bar VALUES (1,'jp','papin','2005-06-12','Marseille',2);
|
||||
INSERT INTO test (id,prenom,nom,ne_le) VALUES (2,'c','waddle','2004-06-17');
|
||||
~~~
|
||||
|
||||
Sélectionner tous les champs d'une table :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> SELECT * FROM bar;
|
||||
~~~
|
||||
|
||||
Effacer des données d'une table :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> DELETE FROM bar WHERE nom='waddle';
|
||||
~~~
|
||||
|
||||
Effacer TOUTES les données d'une table :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> DELETE FROM bar;
|
||||
~~~
|
||||
|
||||
Supprimer une table :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> DROP TABLE bar;
|
||||
~~~
|
||||
|
||||
|
@ -330,7 +330,7 @@ mysql> GRANT ALL PRIVILEGES ON foo.* TO 'jdoe'@localhost IDENTIFIED BY 'PASSWORD
|
|||
|
||||
Cette opération revient à insérer des lignes suivante dans les tables `mysql.user` et `mysql.db` :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> INSERT INTO mysql.user VALUES ('localhost','jdoe',password('PASSWORD'),'N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','','','','',0,0,0,0,'',NULL);
|
||||
mysql> INSERT INTO mysql.db VALUES ('localhost','foo','jdoe','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
|
||||
mysql> FLUSH PRIVILEGES;
|
||||
|
@ -344,7 +344,7 @@ Pour migrer de Debian 6 à 7 :
|
|||
|
||||
On pourra ainsi régler finement les droits d'un utilisateur en connaissant la signification de chaque colonne :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> desc user;
|
||||
+------------------------+-----------------------------------+------+-----+---------+-------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
|
@ -397,39 +397,39 @@ mysql> desc user;
|
|||
|
||||
Par exemple, pour permettre à un utilisateur (ici *debian-sys-maint*) de faire des `SHOW VIEW` :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> UPDATE user SET Show_view_priv='Y' WHERE User='debian-sys-maint';
|
||||
mysql> FLUSH PRIVILEGES;
|
||||
~~~
|
||||
|
||||
…que l'on peut aussi faire via :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> GRANT SHOW VIEW on *.* to `debian-sys-maint`@localhost;
|
||||
~~~
|
||||
|
||||
Pour créer un utilisateur sans droit particulier, par exemple pour du monitoring :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> create user nagios@localhost identified by 'PASSWORD';
|
||||
~~~
|
||||
|
||||
On peut aussi gérer des droits sur les tables :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> GRANT Select,Insert,Update ON foo.bar TO 'jdoe'@localhost;
|
||||
~~~
|
||||
|
||||
Pour révoquer des droits sur une table, on utilisera `REVOKE` :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> REVOKE ALL PRIVILEGES ON foo.bar FROM 'jdoe'@localhost;
|
||||
~~~
|
||||
|
||||
/!\\ Un droit est particulier : pour utiliser LOAD DATA INFILE ou SELECT INTO OUTFILE, il faut avoir le droit `FILE` … mais il est global (et dangereux) !
|
||||
On le positionnera ainsi :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> GRANT FILE ON *.* TO 'jdoe'@localhost;
|
||||
~~~
|
||||
|
||||
|
@ -457,7 +457,7 @@ On pourra également ajouter l'option `--optimize` pour ajouter une optimisation
|
|||
|
||||
Pour réparer une seule table :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> CHECK TABLE foo.bar;
|
||||
mysql> REPAIR TABLE foo.bar;
|
||||
mysql> OPTIMIZE TABLE foo.bar;
|
||||
|
@ -478,32 +478,32 @@ En cas d'échec (*segfault* par exemple), on peut tenter :
|
|||
|
||||
### routines MySQL
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> select * from INFORMATION_SCHEMA.routines;
|
||||
~~~
|
||||
|
||||
### Changement mot de passe utilisateur
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> SET PASSWORD FOR 'jdoe'@'localhost' = PASSWORD('PASSWORD');
|
||||
~~~
|
||||
|
||||
Par rapport à un autre utilisateur :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> use mysql;
|
||||
mysql> UPDATE mysql.user SET Password='PASSWORD' WHERE User='jdoe' and Host='localhost';
|
||||
~~~
|
||||
|
||||
### Changer variables global d'environnement
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> SET GLOBAL max_connect_errors=50;
|
||||
~~~
|
||||
|
||||
ou
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> SET @@max_connect_errors=50;
|
||||
~~~
|
||||
|
||||
|
@ -521,10 +521,10 @@ slow_query_log_file = /var/log/mysql/slow.log
|
|||
|
||||
Ou à chaud :
|
||||
|
||||
~~~
|
||||
SET GLOBAL slow_query_log=ON;
|
||||
SET GLOBAL long_query_time=5;
|
||||
SET GLOBAL slow_query_log_file= "/var/log/mysql/slow.log";
|
||||
~~~{.sql}
|
||||
mysql> SET GLOBAL slow_query_log=ON;
|
||||
mysql> SET GLOBAL long_query_time=5;
|
||||
mysql> SET GLOBAL slow_query_log_file= "/var/log/mysql/slow.log";
|
||||
~~~
|
||||
|
||||
### Log des dead lock
|
||||
|
@ -538,8 +538,8 @@ innodb_print_all_deadlocks = on
|
|||
|
||||
À chaud :
|
||||
|
||||
~~~
|
||||
SET GLOBAL innodb_print_all_deadlocks=on;
|
||||
~~~{.sql}
|
||||
mysql> SET GLOBAL innodb_print_all_deadlocks=on;
|
||||
~~~
|
||||
|
||||
|
||||
|
@ -668,7 +668,7 @@ $ mysqldump --hex-blob -T /tmp --fields-enclosed-by=\" --fields-terminated-by=,
|
|||
|
||||
On peut également restaurer un dump _foo.sql_ (ou tout script au format SQL) de façon interactive via la commande `source` :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> source foo.sql
|
||||
~~~
|
||||
|
||||
|
@ -707,7 +707,7 @@ Reste plus qu'à lancer la commande `mytop -s1` (pour un rafraichissement toutes
|
|||
|
||||
L'outil *mytop* se sert principalement de la requête `SHOW PROCESSLIST` que l'on pourra bien sûr lancer manuellement. Tout comme `KILL` :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> SHOW PROCESSLIST;
|
||||
mysql> KILL <id_requête>;
|
||||
~~~
|
||||
|
@ -726,7 +726,7 @@ Puis exécuter le résultat avec la commande *mysql*, exemple :
|
|||
|
||||
Pour surveiller le moteur InnoDB, on utilisera la commande suivante :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> SHOW ENGINE INNODB STATUS;
|
||||
~~~
|
||||
|
||||
|
@ -843,13 +843,13 @@ Le mode **mixed** est un bon compromis pour de la réplication : il permet de vo
|
|||
|
||||
Pour supprimer les binlogs antérieurs à `mysql-bin.00NNNN` :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> PURGE BINARY LOGS TO 'mysql-bin.00NNNN';
|
||||
~~~
|
||||
|
||||
ou par rapport à une date :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> PURGE BINARY LOGS BEFORE "2011-12-07 00:00:00";
|
||||
~~~
|
||||
|
||||
|
@ -894,7 +894,7 @@ On pourra ainsi injecter le contenu d'un binlog dans une base… tout simplement
|
|||
|
||||
On peut effectuer des requêtes SQL qui ne seront pas écrites dans le binlog. Pour cela on positionne la variable _sql_log_bin_ à 0 et les requêtes interactives suivantes ne seront pas prises en compte dans le binlog (bien sûr, si l'on quitte le CLI MySQL, cela ne sera plus valable) :
|
||||
|
||||
~~~
|
||||
~~~{.sql}
|
||||
mysql> SET sql_log_bin = 0;
|
||||
~~~
|
||||
|
||||
|
|
Loading…
Reference in a new issue