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 :
|
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> GRANT ALL PRIVILEGES ON *.* TO adminmysql@localhost IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
|
||||||
mysql> DELETE FROM mysql.user where User='root';
|
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_ :
|
Créer une nouvelle base de données nommée _foo_ :
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> CREATE DATABASE foo;
|
mysql> CREATE DATABASE foo;
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Voir les bases de données créées :
|
Voir les bases de données créées :
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> SHOW DATABASES;
|
mysql> SHOW DATABASES;
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Utiliser la base de données _foo_ :
|
Utiliser la base de données _foo_ :
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> USE foo
|
mysql> USE foo
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Voir les tables créées :
|
Voir les tables créées :
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> SHOW TABLES;
|
mysql> SHOW TABLES;
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Créer une table nommée _bar_ avec différents champs :
|
Créer une table nommée _bar_ avec différents champs :
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> CREATE TABLE bar (id INT not null AUTO_INCREMENT, prenom VARCHAR
|
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 ,
|
(50) not null , nom VARCHAR (50) not null , ne_le DATE not null ,
|
||||||
ville VARCHAR (90), enfants INT, PRIMARY KEY (id));
|
ville VARCHAR (90), enfants INT, PRIMARY KEY (id));
|
||||||
|
@ -239,68 +239,68 @@ ville VARCHAR (90), enfants INT, PRIMARY KEY (id));
|
||||||
|
|
||||||
Décrire une table :
|
Décrire une table :
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> DESC bar;
|
mysql> DESC bar;
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Ajouter un champ à une table :
|
Ajouter un champ à une table :
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> ALTER TABLE bar ADD another VARCHAR(100) DEFAULT NULL;
|
mysql> ALTER TABLE bar ADD another VARCHAR(100) DEFAULT NULL;
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Ajouter un champ à une table en précisant sa place :
|
Ajouter un champ à une table en précisant sa place :
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> ALTER TABLE bar ADD another VARCHAR(100) DEFAULT NULL AFTER prenom;
|
mysql> ALTER TABLE bar ADD another VARCHAR(100) DEFAULT NULL AFTER prenom;
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Supprimer un champ à une table :
|
Supprimer un champ à une table :
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> ALTER TABLE bar DROP another;
|
mysql> ALTER TABLE bar DROP another;
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Renommer un champ :
|
Renommer un champ :
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> ALTER TABLE bar CHANGE COLUMN another anotherone TEXT;
|
mysql> ALTER TABLE bar CHANGE COLUMN another anotherone TEXT;
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Changer le type d'un champ :
|
Changer le type d'un champ :
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> ALTER TABLE bar CHANGE another another enum('foo',bar');
|
mysql> ALTER TABLE bar CHANGE another another enum('foo',bar');
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Insertion de données dans une table :
|
Insertion de données dans une table :
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> INSERT INTO bar VALUES (1,'jp','papin','2005-06-12','Marseille',2);
|
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');
|
INSERT INTO test (id,prenom,nom,ne_le) VALUES (2,'c','waddle','2004-06-17');
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Sélectionner tous les champs d'une table :
|
Sélectionner tous les champs d'une table :
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> SELECT * FROM bar;
|
mysql> SELECT * FROM bar;
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Effacer des données d'une table :
|
Effacer des données d'une table :
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> DELETE FROM bar WHERE nom='waddle';
|
mysql> DELETE FROM bar WHERE nom='waddle';
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Effacer TOUTES les données d'une table :
|
Effacer TOUTES les données d'une table :
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> DELETE FROM bar;
|
mysql> DELETE FROM bar;
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Supprimer une table :
|
Supprimer une table :
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> DROP TABLE bar;
|
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` :
|
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.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> 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;
|
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 :
|
On pourra ainsi régler finement les droits d'un utilisateur en connaissant la signification de chaque colonne :
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> desc user;
|
mysql> desc user;
|
||||||
+------------------------+-----------------------------------+------+-----+---------+-------+
|
+------------------------+-----------------------------------+------+-----+---------+-------+
|
||||||
| Field | Type | Null | Key | Default | Extra |
|
| 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` :
|
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> UPDATE user SET Show_view_priv='Y' WHERE User='debian-sys-maint';
|
||||||
mysql> FLUSH PRIVILEGES;
|
mysql> FLUSH PRIVILEGES;
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
…que l'on peut aussi faire via :
|
…que l'on peut aussi faire via :
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> GRANT SHOW VIEW on *.* to `debian-sys-maint`@localhost;
|
mysql> GRANT SHOW VIEW on *.* to `debian-sys-maint`@localhost;
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Pour créer un utilisateur sans droit particulier, par exemple pour du monitoring :
|
Pour créer un utilisateur sans droit particulier, par exemple pour du monitoring :
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> create user nagios@localhost identified by 'PASSWORD';
|
mysql> create user nagios@localhost identified by 'PASSWORD';
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
On peut aussi gérer des droits sur les tables :
|
On peut aussi gérer des droits sur les tables :
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> GRANT Select,Insert,Update ON foo.bar TO 'jdoe'@localhost;
|
mysql> GRANT Select,Insert,Update ON foo.bar TO 'jdoe'@localhost;
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Pour révoquer des droits sur une table, on utilisera `REVOKE` :
|
Pour révoquer des droits sur une table, on utilisera `REVOKE` :
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> REVOKE ALL PRIVILEGES ON foo.bar FROM 'jdoe'@localhost;
|
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) !
|
/!\\ 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 :
|
On le positionnera ainsi :
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> GRANT FILE ON *.* TO 'jdoe'@localhost;
|
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 :
|
Pour réparer une seule table :
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> CHECK TABLE foo.bar;
|
mysql> CHECK TABLE foo.bar;
|
||||||
mysql> REPAIR TABLE foo.bar;
|
mysql> REPAIR TABLE foo.bar;
|
||||||
mysql> OPTIMIZE TABLE foo.bar;
|
mysql> OPTIMIZE TABLE foo.bar;
|
||||||
|
@ -478,32 +478,32 @@ En cas d'échec (*segfault* par exemple), on peut tenter :
|
||||||
|
|
||||||
### routines MySQL
|
### routines MySQL
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> select * from INFORMATION_SCHEMA.routines;
|
mysql> select * from INFORMATION_SCHEMA.routines;
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
### Changement mot de passe utilisateur
|
### Changement mot de passe utilisateur
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> SET PASSWORD FOR 'jdoe'@'localhost' = PASSWORD('PASSWORD');
|
mysql> SET PASSWORD FOR 'jdoe'@'localhost' = PASSWORD('PASSWORD');
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Par rapport à un autre utilisateur :
|
Par rapport à un autre utilisateur :
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> use mysql;
|
mysql> use mysql;
|
||||||
mysql> UPDATE mysql.user SET Password='PASSWORD' WHERE User='jdoe' and Host='localhost';
|
mysql> UPDATE mysql.user SET Password='PASSWORD' WHERE User='jdoe' and Host='localhost';
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
### Changer variables global d'environnement
|
### Changer variables global d'environnement
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> SET GLOBAL max_connect_errors=50;
|
mysql> SET GLOBAL max_connect_errors=50;
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
ou
|
ou
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> SET @@max_connect_errors=50;
|
mysql> SET @@max_connect_errors=50;
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
|
@ -521,10 +521,10 @@ slow_query_log_file = /var/log/mysql/slow.log
|
||||||
|
|
||||||
Ou à chaud :
|
Ou à chaud :
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
SET GLOBAL slow_query_log=ON;
|
mysql> SET GLOBAL slow_query_log=ON;
|
||||||
SET GLOBAL long_query_time=5;
|
mysql> SET GLOBAL long_query_time=5;
|
||||||
SET GLOBAL slow_query_log_file= "/var/log/mysql/slow.log";
|
mysql> SET GLOBAL slow_query_log_file= "/var/log/mysql/slow.log";
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
### Log des dead lock
|
### Log des dead lock
|
||||||
|
@ -538,8 +538,8 @@ innodb_print_all_deadlocks = on
|
||||||
|
|
||||||
À chaud :
|
À chaud :
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
SET GLOBAL innodb_print_all_deadlocks=on;
|
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` :
|
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
|
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` :
|
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> SHOW PROCESSLIST;
|
||||||
mysql> KILL <id_requête>;
|
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 :
|
Pour surveiller le moteur InnoDB, on utilisera la commande suivante :
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> SHOW ENGINE INNODB STATUS;
|
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` :
|
Pour supprimer les binlogs antérieurs à `mysql-bin.00NNNN` :
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> PURGE BINARY LOGS TO 'mysql-bin.00NNNN';
|
mysql> PURGE BINARY LOGS TO 'mysql-bin.00NNNN';
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
ou par rapport à une date :
|
ou par rapport à une date :
|
||||||
|
|
||||||
~~~
|
~~~{.sql}
|
||||||
mysql> PURGE BINARY LOGS BEFORE "2011-12-07 00:00:00";
|
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) :
|
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;
|
mysql> SET sql_log_bin = 0;
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue