relecture

This commit is contained in:
Benoît S. 2016-12-14 14:23:53 +01:00
parent 04bd48d6e5
commit 0be2245d4d

View file

@ -32,7 +32,7 @@ mysql>
~~~
Il est ensuite fortement conseillé de créer un administrateur pour la base de données
(par exemple "adminmysql", car "root" peut prêter à confusion) :
(par exemple « adminmysql », car « root » peut prêter à confusion) :
~~~
mysql> GRANT ALL PRIVILEGES ON *.* TO adminmysql@localhost IDENTIFIED BY 'XXX' WITH GRANT OPTION;
@ -341,7 +341,7 @@ le service MySQL arrêté :
# myisamchk -r -q /var/lib/mysql/BASE/TABLE.MYD
~~~
En cas d'echec (segfault par exemple), on peut tenter :
En cas d'échec (segfault par exemple), on peut tenter :
~~~
# myisamchk --safe-recover -v -f --key_buffer_size=512M --sort_buffer_size=512M --read_buffer_size=4M --write_buffer_size=4M /var/lib/mysql/BASE/TABLE.MYD
@ -429,7 +429,7 @@ mysqldump -t <base> <table> --where="my_id='66666666'"
Ce qui permet de réinjecter des données résultantes d'un `SELECT * FROM base.table WHERE my_id='66666666'`.
Il est évidement possible de faire toutes ces opération sur une instance en
Il est évidement possible de faire toutes ces opérations sur une instance en
précisant son port avec l'option `--port` (valable pour mysqldump et mysql).
Pour obtenir une liste des utilisateurs mysql, on peut utiliser cette fonction (glanée sur [serverfault](http://serverfault.com/questions/8860/how-can-i-export-the-privileges-from-mysql-and-then-import-to-a-new-server/)) :
@ -478,7 +478,7 @@ done
**Note 1** : Attention, l'utilisateur MySQL doit avoir le droit de lecture sur les fichiers .txt
Se positionner dans un répertoire où mysql a les droits (mysqltmp - /home/mysqltmp par ex).
**Note 2** : Si vous n'avez pas toutes vos tables en utf8 (par exemple du `CHARSET=LATIN1`), ce n'est pas bien… et vous devrez pour la peine adapter le script (en détectant le charset utilisé avec "file" si nécessaire)
**Note 2** : Si vous n'avez pas toutes vos tables en utf8 (par exemple du `CHARSET=LATIN1`), ce n'est pas bien… et vous devrez pour la peine adapter le script (en détectant le charset utilisé avec « file » si nécessaire)
Il est possible d'exporter le contenu d'une base au format CSV :
@ -592,7 +592,7 @@ Par défaut, MySQL stocke chaque requête en écriture dans des fichiers appelé
### Configuration
Par défaut les binlogs sont conservés sur 10 jours, avec des fichiers n'excédant pas 100 Mo :
Par défaut les binlogs sont conservés sur 10 jours, avec des fichiers n'excédant pas 100 Mo :
~~~{.ini}
#log_bin = /var/log/mysql/mysql-bin.log
@ -610,7 +610,7 @@ http://dev.mysql.com/doc/refman/5.5/en/binary-log-setting.html
On peut choisir 3 types de format pour les binlogs :
* **statement** : les requêtes INSERT / UPDATE sont conservées
* **row** : les modifications de chaque ligne sont conservées (via une sorte de code "binaire" propre à MySQL)
* **row** : les modifications de chaque ligne sont conservées (via une sorte de code « binaire » propre à MySQL)
* **mixed** : en mode statement… sauf dans certains cas où cela passe en mode row
Avantages et inconvénients :
@ -677,7 +677,7 @@ On pourra ainsi injecter le contenu d'un binlog dans une base… tout simplement
### Log des requêtes lentes
Pour débugger les applications lentes, c'est une fonctionnalité intéressante de trouver quel requête est longue.
Pour débugger les applications lentes, c'est une fonctionnalité intéressante de trouver quelle requête est longue.
Pour cela on peut spécifier quand une requête est considérée comme longue, le chemin où stocker les requêtes, et l'activation des logs.
~~~{.ini}
@ -712,7 +712,7 @@ Créez un utilisateur pour l'instance (il doit avoir un shell valide comme `/bin
useradd mysql-INSTANCE_NAME
~~~
Créez ensuite le "datadir" :
Créez ensuite le « datadir » :
~~~
# mysql_install_db --datadir=/home/mysql/INSTANCE_NAME
@ -768,9 +768,9 @@ Pour voir l'état des instances :
# mysqld_multi report
~~~
Et pour stopper une instance, on évite la commande "mysqld_multi stop 1" qui n'est que rarement fiable et peut laisser l'instance dans un état incorrect, difficile à récupérer.
Et pour stopper une instance, on évite la commande « mysqld_multi stop 1 » qui n'est que rarement fiable et peut laisser l'instance dans un état incorrect, difficile à récupérer.
On préfère passer la commande "shutdown" en interne :
On préfère passer la commande « shutdown » en interne :
~~~
# mysqladmin -P3307 shutdown
@ -781,7 +781,7 @@ On préfère passer la commande "shutdown" en interne :
### Nettoyage
Si le mysqld principal n'est pas utilisé, on désactivera le script d'init.d /etc/init.d/mysql (en ajoutant `exit 0`
au début du script ) et on pourra se créer un script `/etc/init.d/mysql-instance` du type :
au début du script) et on pourra se créer un script `/etc/init.d/mysql-instance` du type :
~~~{.bash}
#!/bin/sh