19/06 (matin)
1 09:00 <sengaloun.sengsavang> Bonjour les techs
2 09:01 <sengaloun.sengsavang> jsuis en avance, car j'ai raté la dernière atelier
3 09:44 <seila.nuon> bonjour tout le monde
4 09:44 <progfou> bonjour Seila
5 09:44 <progfou> on commence dans 15 min
6 09:45 <seila.nuon> ok
7 * <progfou> vous laisse pendant 15 min le temps de finir de préparer l'atelier...
8 09:50 <chanesakhone.chitsaya> Bonjour à tous
9 09:51 <bosco.boukone> salut à tous
10 09:53 <chanesakhone.chitsaya> J'ai du pb avec la machine que j'ai installé la machine virtuel, elle est enpanne, donc je dois faire avec la machine réelle
11 09:56 <nguyen.le.duc.huy> Bonjour à tous,
12 09:57 <truong.tung.lam> bonjour les techs,
13 09:57 <nguyen.le.duc.huy> anh JC oi, mon debian ne finit pas encore aptitude update
14 09:58 <progfou> Huy, ça fait plus de 2 semaines que j'ai mis les pré-requis...
15 09:58 <progfou> il ne faut pas se préparer la veille, sinon il y a toujours le risque de ne pas être prêt
16 09:58 <progfou> et là je ne pourrai pas t'aider
17 09:59 <sengaloun.sengsavang> rebonjour!
18 10:00 <nguyen.le.duc.huy> J'ai laissé fonctionner mon ordis toute la nuit pour update, mais il n'arrive pas à finir!
19 10:02 <progfou> ok, je ne suis pas tout à fait prêt, mais c'est l'heure donc on commence !
20 10:02 <progfou> bienvenue à tout le monde pour le second atelier sur MySQL
21 10:02 <sengaloun.sengsavang> Débian en graphique est magnifique je pourrait config mon Gaim et vous communiqué en graphique sous ma virtuelle machine
22 10:03 <truong.tung.lam> JC: tu es revenu deja?
23 10:03 <progfou> d'abord un tour de table : chacun doit me confirmer (ou infirmer) qu'il a bien installé Debian "Etch" 4.0 et les paquets locales et mysql-server
24 10:03 <truong.tung.lam> fait
25 10:03 <doan.manh.ha> fait
26 10:03 <sengaloun.sengsavang> ioi fait
27 10:04 <nguyen.le.duc.huy> Etch oui, locales et mysql-server, mysql-client pas encore!
28 10:05 <progfou> Huy, arranges-toi pour le faire maintenant, éventuellement installes une Ubuntu Hardy à la place de Debian => ça fonctionnera garanti 100% puisque tu as un miroir Ubuntu sur ton serveur
29 10:05 <chanesakhone.chitsaya> c fait, mais avec la machine réelle
30 10:06 <nguyen.le.duc.huy> ok
31 10:06 <progfou> Khone, pas grave, tant que tu as un environnement correct
32 10:07 <progfou> Bosco, confirmes-tu que tu as bien les pré-requis pour l'atelier ?
33 10:07 <progfou> ouhlà... il a apparemment des problèmes réseau...
34 10:07 <progfou> Seila ?
35 10:08 <chanesakhone.chitsaya> Ok merci JC
36 10:08 <seila.nuon> oui pret
37 10:08 <bosco.boukone> Oui j'ai tous les prérequis
38 10:09 <progfou> parfait, donc on commence, Huy tu nous rattraperas
39 10:09 <nguyen.le.duc.huy> d'accord
40 10:10 <nguyen.le.duc.huy> d'accord!
41 10:10 <progfou> grmph... saleté de touche Esc...
42 10:11 <ATELIER (progfou)> : 1ère étape : configurer votre environnement système pour Unicode
43 10:11 <ATELIER (progfou)> : d'abord vérifier votre environnement actuel avec la commande "locale"
44 10:11 <progfou> etch:~# locale
45 <> LANG=fr_FR.UTF-8
46 10:12 <seila.nuon> désolé une petite rupture
47 10:12 <ATELIER (progfou)> : par défaut Etch est en UTF-8, mais ça ne coûte rien de vérifier
48 10:12 <ATELIER (progfou)> : tout le monde est-il bien en UTF-8 ?
49 10:12 <doan.manh.ha> ok
50 10:13 <chanesakhone.chitsaya> moi, tjs LANG=fr_FR.UTF-8, pas en UTF-8
51 10:14 <truong.tung.lam> moi pas encore
52 10:14 <truong.tung.lam> LANG=
53 <> LC_CTYPE="POSIX"
54 <> LC_NUMERIC="POSIX"
55 <> LC_TIME="POSIX"
56 10:15 <progfou> ok
57 10:15 <bosco.boukone> ok pour moi
58 10:15 <bosco.boukone> ok pour moi
59 10:15 <ATELIER (progfou)> : pour changer l'environnement locale utiliser la commande dpkg-reconfigure locales
60 10:16 <ATELIER (progfou)> : sélectionnez au moins fr_FR.UTF-8, en_US.UTF-8 et votre langue locale (vi_VN, lo_LA, km_KH, ...)
61 10:16 <ATELIER (progfou)> : ensuite il va vous demander laquelle utiliser par défaut => fr_FR.UTF-8
62 10:18 <truong.tung.lam> comment faire pour charger le nouveau locales de l'environnement courrant?
63 10:18 <seila.nuon> meme question
64 10:20 <ATELIER (progfou)> : pour activer ces changements dans votre environnement utilisateur, il suffit de se reconnecter
65 10:20 <ATELIER (progfou)> : mais étant donné que vous changez l'environnement par défaut pour le système entier, il faut redémarrer le système pour que le changement soit pris en compte globalement
66 10:21 <truong.tung.lam> fait
67 10:21 <ATELIER (progfou)> : vous pouvez vérifier les changements effectués dans /etc/default/locale, /etc/locale.gen (et sur certains systèmes dans /etc/environment)
68 10:22 <ATELIER (progfou)> : /etc/default/locale contient la locale par défaut
69 10:22 <ATELIER (progfou)> : /etc/locale.gen contient toutes les locales choisies sur ce système
70 10:23 <ATELIER (progfou)> : vous pouvez ensuite tester que les locales sont fonctionnelles comme suit :
71 <> LANG= date ; LANG=fr_FR.UTF-8 date ; LANG=vi_VN date ; LANG=lo_LA date ; LANG=km_KH date
72 10:24 <doan.manh.ha> ATELIER : vous pouvez ensuite tester que les locales sont fonctionnelles comme suit :
73 <> je ne le comprends pas tu peux expliquer plus
74 10:24 <ATELIER (progfou)> : ce qui devrait vous donner quelque chose comme ceci (j'ai ajouté le japonais en bas ) :
75 <> Thu Jun 19 10:23:41 ICT 2008
76 <> jeudi 19 juin 2008, 10:23:41 (UTC+0700)
77 <> Thứ năm, 19 Tháng sáu năm 2008 10:23:41 ICT
78 <> ພຫ. 19 ມິ.ຖ. 2551 10:23:41 ICT
79 <> ព្រ ៦ 19 10:23:41 ICT 2008
80 <> 2008年 6月 19日 木曜日 10:24:28 ICT
81 10:24 <doan.manh.ha> comment on le teste ?
82 10:25 <progfou> en tapant les commandes que j'ai indiqué
83 10:25 <sengaloun.sengsavang> ça marche
84 10:26 <ATELIER (progfou)> : étape suivante : configurer le support Unicode dans MySQL
85 10:26 <bosco.boukone> Ok
86 10:27 <ATELIER (progfou)> : il faut savoir que :
87 <> - MySQL 4.0 a un début de support Unicode qui est bogué
88 <> - MySQL 4.1 a un support Unicode correct mais incomplet
89 <> - MySQL 5.0 a un bon support Unicode
90 10:27 <ATELIER (progfou)> : et ça tombe bien car Debian "Etch' vient avec MySQL 5.0
91 10:27 <ATELIER (progfou)> : vous allez d'abord vérifier l'état actuel :
92 <> mysql -e "show variables like '%char%' "
93 10:28 <truong.tung.lam> | character_set_client | latin1 |
94 <> | character_set_connection | latin1 |
95 <> | character_set_database | latin1 |
96 <> | character_set_filesystem | binary |
97 <> | character_set_results | latin1 |
98 <> | character_set_server | latin1 |
99 <> | character_set_system | utf8 |
100 <> | character_sets_dir | /usr/share/mysql/charsets/
101 10:28 <ATELIER (progfou)> : cela devrait vous donner plusieurs lignes avec utf8 partout
102 10:29 <progfou> Lâm, tu n'as pas redémarré ton système Debian, si ?
103 10:30 <truong.tung.lam> si
104 10:30 <truong.tung.lam> c'est une VE
105 10:30 <truong.tung.lam> j'ai redemaré
106 10:30 <chanesakhone.chitsaya> Ok pour moi
107 10:30 <doan.manh.ha> comment on copie des résulats d'une commande de la machine virtuel vers le salon ?
108 10:30 <progfou> copier/coller
109 10:32 <ATELIER (progfou)> : pour forcer l'environnement Unicode on va créer un fichier /etc/mysql/conf.d/local.cnf contenant ceci :
110 <> [mysqld]
111 <> language = /usr/share/mysql/french
112 <> character-set-server = utf8
113 <>
114 <> [mysqldump]
115 <> default-character-set = utf8
116 <>
117 <> [mysql]
118 <> default-character-set = utf8
119 10:32 <ATELIER (progfou)> : après avoir créé ce fichier il faudra redémarrer le service mysql :
120 <> invoke-rc.d mysql restart
121 10:33 <ATELIER (progfou)> : ensuite vous relancez la commande suivante pour vérifier la différence :
122 <> mysql -e "show variables like '%char%' "
123 10:33 <seila.nuon> Apres redemarrage Mysql:Checking for corrupt, not cleanly closed and upgrade needing tables..
124 10:34 <progfou> Seila : c'est un message normal, il faut simplement qu'il n'affiche pas d'erreur à ce moment là
125 10:34 <seila.nuon> ok merci
126 10:34 <truong.tung.lam> c'est bon
127 10:35 <progfou> bon, un petit tour de table : est-ce que tout le monde a bien utf8 partout dans les character_set_* ?
128 10:35 <seila.nuon> oui
129 10:35 <bosco.boukone> oui
130 10:36 <progfou> Hà ? Seng ? Khone ?
131 10:36 <progfou> Huy, as-tu avancé sur l'installation ?
132 10:37 <sengaloun.sengsavang> oui
133 10:37 <nguyen.le.duc.huy> j'installe Ubuntu,mais avec 2go, il ne marche pas!
134 10:37 <doan.manh.ha> je n'arrive pas à copier du texte dans la console de la machine virtuel
135 10:38 <progfou> Huy : il ne faut pas faire l'installation graphique mais une installation texte
136 10:38 <truong.tung.lam> oui
137 10:38 <nguyen.le.duc.huy> Si non, je peux utiliser mon ubuntu réell?
138 10:38 <progfou> Huy : tu peux par exemple prendre une machine en salle de formation et la démarrer sur le réseau puis choisir "ui" (Ubuntu Install) dans le menu de boot
139 10:38 <progfou> Huy : ok
140 10:38 <progfou> Huy tu nettoieras après
141 10:39 <chanesakhone.chitsaya> c bon
142 10:39 <nguyen.le.duc.huy> ok
143 10:40 <progfou> Hà, est-ce bon pour UTF-8 ? le copier/coller depuis VirtualBox n'est pas le sujet du jour...
144 10:41 <sengaloun.sengsavang> Hà! tu peux installer les additons client sur le menu Périphériques pour lier la virt et le host sans Ctrl droit
145 10:41 <doan.manh.ha> je suis en train de re taper le contenu du fichier
146 10:41 <doan.manh.ha> pas encore finit
147 10:41 <progfou> je continue, Huy, tu nous rattraperas pendant la petite pause à 11h
148 10:42 <ATELIER (progfou)> : maintenant que votre environnement est prêt nous allons commencer à l'utiliser
149 10:42 <ATELIER (progfou)> : tout d'abord changer le mot de passe administrateur MySQL
150 10:43 <ATELIER (progfou)> : ça se fait avec la commande suivante :
151 <> mysqladmin password "toto"
152 <> ("toto" étant ici le nouveau mot de passe)
153 10:44 <ATELIER (progfou)> : par défaut l'administrateur n'a pas de mot de passe, mais son accès est restreint à "localhost"
154 10:44 <chanesakhone.chitsaya> ok
155 10:44 <bosco.boukone> c fait
156 10:45 <truong.tung.lam> ok
157 10:46 <sengaloun.sengsavang> mysqladmin password "ifmt"
158 <> mysqladmin: connect to server at 'localhost' failed
159 <> error: 'Acc�s refus� pour l'utilisateur: 'root'@'@localhost' (mot de passe: NON)'
160 10:46 <sengaloun.sengsavang> problème de derver mysql?
161 10:46 <ATELIER (progfou)> : si vous voulez re-changer le mot de passe après cela, il faudra spécifier le mot de passe actuel pour pouvoir le faire, donc comme ceci :
162 <> mysqladmin password -p "titi"
163 <> ("titi" étant le nouveau mot de passe, l'ancien étant demandé pour faire le changement)
164 10:46 <chanesakhone.chitsaya> pour acceder à mysql : mysql -u root -p
165 10:47 <progfou> pas besoin de -u root si vous êtes déjà root
166 10:47 <progfou> et pour le moment n'accédez pas à MySQL svp
167 10:47 <progfou> on n'en est pas encore là
168 10:47 <chanesakhone.chitsaya> ok
169 10:48 <progfou> Seng, avais-tu déjà changé ton mot de passe ?
170 10:48 <ATELIER (progfou)> : à noter que l'administrateur MySQL s'appelle aussi "root", mais attention, ce n'est pas le même "root" que celui du système !!
171 10:49 <ATELIER (progfou)> : pour faciliter ensuite vos accès, vous pouvez enregistrer ce mot de passe dans un fichier personnel du compte système "root", afin de ne plus avoir à le taper
172 10:49 <sengaloun.sengsavang> oui j'ai changé mdp root avant
173 10:50 <sengaloun.sengsavang> et je rechange voir!
174 10:51 <ATELIER (progfou)> : cela se fait selon les commandes suivantes :
175 <> touch root.my.cnf
176 <> chmod u=rw,go= root.my.cnf
177 <> cat << __EOF__ >> root.my.cnf
178 <> [mysql]
179 <> user = root
180 <> password = toto
181 <>
182 <> [mysqlshow]
183 <> user = root
184 <> password = toto
185 <>
186 <> [mysqldump]
187 <> user = root
188 <> password = toto
189 <>
190 <> [mysqladmin]
191 <> user = root
192 <> password = toto
193 <>
194 10:51 <progfou> attention, dans mon client Jabber, le / root / a été changé en italique...
195 10:52 <chanesakhone.chitsaya> JC comment on supprime ce mot de passe "toto"?
196 10:52 <progfou> Khone : on le *re-*change, tel que je l'ai indiqué plus haut
197 10:53 <progfou> mysqladmin password -p "titi"
198 10:53 <progfou> il te demandera un mot de passe
199 10:53 <chanesakhone.chitsaya> ok
200 10:53 <progfou> il faut entrer l'ancien (toto)
201 10:54 <ATELIER (progfou)> : une fois que vous avez fixé votre mot de passe et créé votre fichier de configuration MySQL pour root, vous pouvez tester l'accès avec :
202 <> mysql mysql
203 <> (connexion MySQL à la base nommée "mysql")
204 10:54 <nguyen.le.duc.huy> j'ai fini étape Unicode!
205 10:55 <chanesakhone.chitsaya> touch root.my.cnf m'affiche rien
206 10:55 <ATELIER (progfou)> : on pourrait penser qu'il est dangereux de mettre le mot de passe d'administrateur MySQL en clair dans un fichier, mais il faut bien voir que seul root a le droit de lire ce fichier, donc il faudrait être root pour lire ce mot de passe et quand on est root on peut avoir accès à tout MySQL sans mot de passe (j'explique comment juste après)
207 10:56 <progfou> Khone : la commande touch crée un fichier vide, elle n'affiche rien
208 10:56 <progfou> Huy : bien noté, merci
209 10:56 <chanesakhone.chitsaya> ok
210 10:57 <progfou> Hà, as-tu fini l'étape Unicode ?
211 10:58 <truong.tung.lam> ok
212 10:58 <bosco.boukone> ok pour moi
213 10:59 <seila.nuon> moi aussi
214 10:59 <progfou> tour de table : tout le monde peut se connecter avec "mysql mysql" ?
215 10:59 <seila.nuon> oui
216 10:59 <seila.nuon> sans taper le mdp
217 10:59 <progfou> ok
218 11:00 <progfou> Lâm ? Bosco ?
219 11:00 <sengaloun.sengsavang> oui
220 11:00 <bosco.boukone> c ok pour moi
221 11:00 <progfou> Hà, où en es-tu ?
222 11:00 <progfou> Khone ?
223 11:00 <chanesakhone.chitsaya> mysql mysql, pour moi, non
224 11:00 <chanesakhone.chitsaya> test:/etc/mysql/conf.d# mysql mysql
225 <> ERROR 1045 (28000): Acc�s refus� pour l'utilisateur: 'root'@'@localhost' (mot de passe: NON)
226 11:01 <doan.manh.ha> je ne sais pas comment enregistrer le fichier
227 11:01 <progfou> Khone, as-tu bien créé le fichier ~/.my.cnf ?
228 11:01 <doan.manh.ha> contient le mot de passe
229 11:01 <doan.manh.ha> j'ai tapé la derniène ligne
230 11:01 <progfou> ah pardon, j'ai oublié de mettre la dernière ligne !!
231 11:01 <doan.manh.ha> et je ne sais plus continuer
232 11:01 <progfou> __EOF__
233 11:02 <progfou> cat << __EOF__ >> root.my.cnf
234 <> [mysql]
235 <> user = root
236 <> password = toto
237 <>
238 <> [mysqlshow]
239 <> user = root
240 <> password = toto
241 <>
242 <> [mysqldump]
243 <> user = root
244 <> password = toto
245 <>
246 <> [mysqladmin]
247 <> user = root
248 <> password = toto
249 <>
250 <> __EOF__
251 11:02 <truong.tung.lam> oui
252 11:03 <doan.manh.ha> mysql mysql me donne mysql>
253 11:03 <progfou> Hà, c'est bon
254 11:03 <doan.manh.ha> pour s'en sortir
255 11:03 <doan.manh.ha> je fais quoi ?
256 11:03 <bosco.boukone> mysql mysql
257 <> ERROR 1045 (28000): Acc�s refus� pour l'utilisateur: 'root'@'@localhost
258 11:03 <doan.manh.ha> exit ?
259 11:03 <progfou> exit
260 11:04 <progfou> Bosco, tu venais de me dire que c'était ok pour toi !?
261 11:04 <doan.manh.ha> ok exit est bon parfois
262 11:04 <progfou> Khone, où en est-tu ?
263 11:04 <progfou> c'est l'heure de la pause, je descends 5 min prendre un café, je vous laisse aider Khone et Bosco
264 11:04 <bosco.boukone> Oui en tapant le mot de passe
265 11:05 <bosco.boukone> je refais les maniple
266 11:06 <sengaloun.sengsavang> ça marché pour moi et toi Khone?
267 11:06 <chanesakhone.chitsaya> ça marche bien, merci JC
268 11:07 <sengaloun.sengsavang> ok
269 11:07 <chanesakhone.chitsaya> est ce que mysql a mémorisé tjs ce mot de passe?
270 11:08 <doan.manh.ha> en principe oui car on a enregistré dans un fichier n'est ce pas tout le monde .
271 11:08 <doan.manh.ha> ?
272 11:08 <bosco.boukone> ok
273 11:08 <bosco.boukone> pour moi ça marche
274 11:09 <chanesakhone.chitsaya> donc si on fixe le mot de passe dans ce fichier, c à dire, on n'a pas la bonne sécuritée
275 11:10 <chanesakhone.chitsaya> pour mysql
276 11:10 <bosco.boukone> c'est à dire??
277 11:11 <seila.nuon> que le root peut le lire, non?
278 11:11 <doan.manh.ha> oui
279 11:12 <bosco.boukone> Oui mais il y a un seul root
280 11:12 <doan.manh.ha> si tu perds ton mot de passe root
281 11:12 <doan.manh.ha> c'est finit
282 11:12 <chanesakhone.chitsaya> uhm; oui, t'as reason
283 11:13 <sengaloun.sengsavang> Hà! on ne perd jamais notre mdp sinon ce n'est pas le mdp!
284 11:14 <doan.manh.ha> tout est relatif rien est parfait => tu peux perdre ton mot de passe un jour
285 11:14 <doan.manh.ha>
286 11:14 <sengaloun.sengsavang> sinon on mets rien pour mdp c'est mieux non!
287 11:15 <sengaloun.sengsavang> hà, tu arrive à lier la machine virt et le host?
288 11:16 <chanesakhone.chitsaya> ok, etape suivant, créer un base de donnée....
289 11:16 <doan.manh.ha> non
290 11:16 <doan.manh.ha> mais JC dit "hors sujet"
291 11:16 <doan.manh.ha> on verra un autre moment
292 11:17 <sengaloun.sengsavang> mon non plus! j'ai pu faire sur ma machine virt WinXP mais pas celui ci
293 11:17 <seila.nuon> sinon, avec sudo, ca marche aussi
294 11:18 <progfou> suite
295 11:18 <chanesakhone.chitsaya> Où est JC? prendre pizza?
296 11:18 <progfou> Lâm est venu me voir
297 11:18 <chanesakhone.chitsaya> d'accord
298 11:18 <progfou> je lis vos discussions...
299 11:20 <progfou> ok
300 11:20 <progfou> tout le monde a suivi, on continue
301 11:20 <ATELIER (progfou)> : étape suivante : création de base de données
302 11:20 <ATELIER (progfou)> : d'abord observer ce qui existe : mysqlshow
303 11:21 <ATELIER (progfou)> : la commande "mysqlshow" va vous montrer la liste des bases, vous pouvez ensuite préciser "mysqlshow nom-de-base" pour voir le contenu de cette base
304 11:21 <ATELIER (progfou)> : par exemple : mysqlshow mysql
305 11:21 <ATELIER (progfou)> : ensuite nous allons nous créer notre propre base :
306 <> mysqadmin create "atelier"
307 11:22 <ATELIER (progfou)> : vous pouvez détruire une base avec la commande suivante :
308 <> mysqladmin drop "atelier"
309 11:22 <ATELIER (progfou)> : attention : détruire une base fait évidement perdre toutes ses données !
310 11:23 <ATELIER (progfou)> : je vous ai donné ici les commandes qu'on utilise au niveau du système, mais on peut faire la même chose directement dans MySQL
311 11:24 <ATELIER (progfou)> : donc maintenant vous allez entrer dans MySQL :
312 <> mysql
313 11:24 <ATELIER (progfou)> : puis créer la base "atelier" :
314 <> CREATE DATABASE `atelier`;
315 11:24 <progfou> toutes les commandes MySQL finissent par un point-virgule (
316 11:25 <ATELIER (progfou)> : pour détruire une base :
317 <> DROP DATABASE `atelier`;
318 11:26 <ATELIER (progfou)> : ici je protège le nom de la base avec des back-quotes ( ` ), ce n'est pas obligatoire, mais recommandé si vous voulez utiliser des noms avec des majuscules, espaces, accents ou autre caractère spéciaux
319 11:26 <ATELIER (progfou)> : pour voir la liste des bases depuis MySQL vous pouvez utiliser la commande suivante :
320 <> SHOW DATABASES;
321 11:27 <ATELIER (progfou)> : à noter aussi que je mets tous les mots clés de MySQL en majuscule, ce n'est pas obligatoire non plus, mais vous verrez plus tard que cela facilite la lecture
322 11:28 <ATELIER (progfou)> : pour rentrer dans une base vous utiliserez l'une de ces deux commandes :
323 <> USE `atelier`;
324 <> ou bien :
325 <> \u atelier
326 <> (sans ';' ici car c'est un raccourci spécial)
327 11:29 <progfou> je ne fais pas de tour de table ici, je support que tout le monde a pu créer sa base "atelier", sinon signalez-le moi
328 11:29 <doan.manh.ha> ->
329 11:29 <ATELIER (progfou)> : maintenant nous allons observer et créer des utilisateurs MySQL
330 11:30 <doan.manh.ha> j'ai un signe comme ça
331 11:30 <doan.manh.ha> comment sortir ?
332 11:30 <progfou> Hà : tu n'as pas fermé correctement les apostrophes
333 11:30 <doan.manh.ha> oui
334 11:30 <doan.manh.ha> excacte
335 11:30 <progfou> donc il faut les fermer
336 11:30 <doan.manh.ha> mais comment remédier
337 11:30 <progfou> ensuite ';' pour finir
338 11:31 <progfou> par exemple :
339 <> mysql> CREATE DATABASE `atelier
340 <> -> `;
341 11:31 <progfou> mais attention
342 11:31 <progfou> ça va probablement te créer un nom de base de données avec un passage à la ligne dedans
343 11:31 <progfou> donc difficile à utiliser ensuite
344 11:32 <progfou> dans ce cas, l'effacer de la même façon :
345 <> mysql> DROP DATABASE `atelier
346 <> -> `;
347 11:32 <progfou> puis la recréer correctement :
348 <> mysql> CREATE DATABASE `atelier`;
349 11:32 <chanesakhone.chitsaya> c bon pour moi
350 11:33 <doan.manh.ha> ok
351 11:33 <ATELIER (progfou)> : pour gérer les utilisateurs il y a plusieurs façons, des bonnes et des mauvaises
352 11:33 <truong.tung.lam> ok
353 11:33 <ATELIER (progfou)> : la mauvaise façon est de le faire manuellement en manipulant directement les tables de MySQL
354 11:33 <ATELIER (progfou)> : nous allons y faire un tour pour que vous voyez comment ça marche et ensuite je vous donne la bonne façon de faire
355 11:34 <ATELIER (progfou)> : vous allez entrer dans la base "mysql" :
356 USE mysql;
357 11:34 <ATELIER (progfou)> : et regarder les utilisateurs existant :
358 <> SELECT * FROM user;
359 11:35 <ATELIER (progfou)> : il y a beaucoup d'information affichées, car nous avons demandé d'afficher (de SELECTionner) toutes les colonnes de la table (FROM) "user"
360 11:35 <ATELIER (progfou)> : on peut simplifier l'affichage en ne sélectionnant que ce qui nous intéresse :
361 <> SELECT user,host,password FROM user;
362 11:36 <doan.manh.ha> oui plus lisible
363 11:37 <ATELIER (progfou)> : par défaut Debian crée deux comptes : le compte administrateur MySQL (root) et un compte spécial pour la gestion du service MySQL par Debian (debian-sys-maint) qui sert au re-démarrage ou à l'arrêt du service
364 11:37 <ATELIER (progfou)> : ces comptes ne sont par défaut accessibles que localement (localhost) par défaut ce qui est très bien sur le plan sécurité
365 11:38 <ATELIER (progfou)> : maintenant nous pourrions créer des utilisateurs en insérant des données dans cette table
366 11:38 <ATELIER (progfou)> : mais ça ne suffirait pas, et en plus ce n'est pas franchement pratique, ni même portable au cas où MySQL déciderait de changer la structure de sa table
367 11:39 <truong.tung.lam> Il n'y a pas d'interface GUI comme SQLServer
368 11:39 <truong.tung.lam> il faut saisir à la main les commandes? >
369 11:39 <truong.tung.lam> (je rigole)
370 11:40 <ATELIER (progfou)> : la gestion des accès MySQL se fait selon plusieurs niveaux :
371 <> - d'abord on vérifie que l'utilisateur existe dans "user"
372 <> - ensuite on vérifie que la machine depuis laquelle il se connecte est valide, soit selon le hostname dans "user" soit un de ceux dans la table "host" dans le cas ou la colonne hostname aurait un "%"
373 <> - on vérifie ensuite l'accès à la base demandée par l'utilisateur, cela se fait selon la table "db"
374 <> - et enfin on vérifie encore l'accès à chaque table et même chaque colonne dans d'autres tables
375 11:41 <progfou> il y a des interfaces GUI proposées par la compagnie MySQL
376 11:41 <progfou> excellentes
377 11:41 <progfou> et payantes
378 11:41 <progfou> quoi qu'il me semble que maintenant certaines sont disponibles, mais je n'ai pas vérifié depuis longtemps
379 11:42 <ATELIER (progfou)> : pour créer un utilisateur nous allons simplement lui définir ses droits d'accès et MySQL enregistrera tout ce qu'il faut dans ses tables
380 11:43 <ATELIER (progfou)> : exemple :
381 <> GRANT ALL ON `atelier`.* TO `moi`@`localhost` IDENTIFIED BY 'monpasse';
382 11:45 <ATELIER (progfou)> : explication : donner (GRANT) tous les droits (ALL) sur toutes les tables de la base "atelier" (ON `atelier`.*) à l'utilisateur "moi" depuis la machine "localhost" (`moi`@`localhost`) avec le mot de passe "monpasse" (IDENTIFIED BY 'monpasse')
383 11:45 <sengaloun.sengsavang> comment on peut limiter les droits de user?
384 11:46 <progfou> Seng : j'explique après
385 11:46 <sengaloun.sengsavang> ok
386 11:46 <chanesakhone.chitsaya> moi=khone, est ce le droit de khone=root?
387 11:46 <ATELIER (progfou)> : maintenant vous pouvez faire les commandes suivantes pour vérifier ce que MySQL a fait concrètement :
388 <> SELECT user,host FROM user;
389 <> SELECT user,host,db FROM db;
390 11:47 <progfou> "moi" est le nom d'utilisateur que vous voulez créer
391 11:47 <progfou> ça peut être "khone" ou "test" ou n'importe quoi d'autre
392 11:48 <nguyen.le.duc.huy> nldhuy@nldhuy-desktop:~$ sudo mysql mysql
393 <> ERROR 1045 (28000): Acc�s refus� pour l'utilisateur: 'root'@'@localhost' (mot de passe: NON)
394 11:48 <nguyen.le.duc.huy>
395 11:49 <doan.manh.ha> ok
396 11:49 <ATELIER (progfou)> : une autre façon plus officielle de voir les droits pour un utilisateur :
397 <> SHOW GRANTS;
398 <> ou encore :
399 <> SHOW GRANTS FOR `moi`@`localhost`;
400 11:49 <progfou> Huy : as-tu bien créé le fichier root.my.cnf avec le login et mdp de MySQL dedans ?
401 11:50 <ATELIER (progfou)> : au lieu de donner tous les droits à un utilisateur, on peut vouloir limiter à quelques droits
402 11:50 <chanesakhone.chitsaya> ok, c bien
403 11:51 <ATELIER (progfou)> : pour cela on remplace ALL par la liste des droits voulus
404 11:52 <ATELIER (progfou)> : par exemple pour donner un accès en lecture seule :
405 <> GRANT SELECT ON `atelier`.* TO `lecture`@`localhost` IDENTIFIED BY 'facile';
406 11:53 <ATELIER (progfou)> : pour voir la liste des droits disponibles on utilisera :
407 <> SHOW PRIVILEGES;
408 11:53 <truong.tung.lam> JC: tu as oublie Flush privileges, non?
409 11:53 <progfou> Lâm : non, car je n'ai pas encore demandé d'utiliser ces privilèges
410 11:54 <progfou> Lâm : chut, laisses-moi leur faire la surprise
411 11:54 <doan.manh.ha>
412 11:55 <ATELIER (progfou)> : maintenant nous allons nous reconnecter en utilisant ce nouvel accès
413 11:55 <ATELIER (progfou)> : entrez "exit" pour sortir de MySQL, puis la commande suivante pour y revenir avec les nouveaux accès :
414 <> mysql -u moi -p atelier
415 11:56 <ATELIER (progfou)> : cela demande de se connecter avec l'utilisateur "moi", en demandant un mot de passe ( -p ) sur la base "atelier"
416 11:56 <chanesakhone.chitsaya> c fait
417 11:57 <ATELIER (progfou)> : et là, surprise (hein Lâm ) : ça marche !
418 11:57 <nguyen.le.duc.huy> > [mysqladmin]
419 <> > user = root
420 <> > password = toto
421 <> > EOF
422 <> bash: root.my.cnf: Permission non accordée
423 11:58 <nguyen.le.duc.huy> j'ai fait cat<<EOF>> avec sudo!
424 11:58 <ATELIER (progfou)> : comme je le disais tout à l'heure, quand vous utilisez les commandes officielles, MySQL s'occupe de tout, par contre si nous avions bidouillé directement dans les tables MySQL, il aurait alors fallu valider les modifications avec la commande "FLUSH PRIVILEGES;"
425 11:59 <progfou> Huy : cette fois-ci on ne travaille pas avec sudo, donc fais un "sudo -i" pour travailler directement sous "root" et ensuite refais le cat...
426 12:00 <chanesakhone.chitsaya> mysql> FLUSH PRIVILEGES;
427 <> ERROR 1227 (42000): Access denied; you need the RELOAD privilege for this operation
428 12:00 <nguyen.le.duc.huy> ok
429 12:00 <progfou> Khone : pas besoin de cette commande ici, je la donnais juste pour information ; et sur le fait que tu obtiennes une erreur, c'est normal : seul l'administrateur MySQL a le droit de l'utiliser
430 12:01 <chanesakhone.chitsaya> ah, ok
431 12:01 <ATELIER (progfou)> : concernant l'indication de la machine depuis laquelle l'utilisateur se connecte, il y a quelques petites choses à savoir
432 12:01 <nguyen.le.duc.huy> j'ai mysql>
433 12:02 <chanesakhone.chitsaya> je vais faire ça plus tard cas de j'ai un rendez-vous à 12h15, a+
434 12:02 <ATELIER (progfou)> : vous pouvez y indiquer un nom de machine complet (www.vn.auf.org), une adresse IP (210.245.61.203), ou un ensemble de machines dans le même domaine (%.cnf-hanoi) ou dans la même classe d'adresses (192.168.1.%)
435 12:03 <progfou> effectivement il est déjà 12h03, ça a été plus long que prévu cette fois-ci...
436 12:04 <progfou> on fait un tour de table avant d'arrêter et nous continuerons plus tard (on en discute juste après)
437 12:04 <truong.tung.lam> moi ok
438 12:04 <progfou> est-ce que tout le monde a bien pu créer un utilisateur et re-rentrer dans MySQL avec cet utilisateur ?
439 12:04 <chanesakhone.chitsaya> prochaine fois, on peut commencer par 9h-11h
440 12:04 <seila.nuon> oui
441 12:04 <doan.manh.ha> moi ok
442 12:05 <sengaloun.sengsavang> jeb
443 12:05 <progfou> Khone : on ne changera pas les heures a priori
444 12:05 <bosco.boukone> oui
445 12:05 <truong.tung.lam> 9h est un peu tot pour JC (et moi quelque fois)
446 12:06 <progfou> par contre on fera peut-être plus de sessions, ou plus rapprochées, on en discute après
447 12:06 <truong.tung.lam> en arrivant, il y a des choses à faire
448 12:06 <doan.manh.ha> suis pour 10h
449 12:06 <progfou> je note ok pour Lâm, Seila, Hà, Seng et Bosco
450 12:06 <progfou> (je suppose que le "jeb" de Seng veut dire oui )
451 12:06 <seila.nuon> moi un petit pb
452 12:07 <progfou> Khone, as-tu pu créer un compte et re-rentrer dans MySQL avec ?
453 12:07 <progfou> oui Seila ?
454 12:07 <progfou> Huy, où en es-tu ?
455 12:07 <seila.nuon> j'ai une réunion à tokyo toute la semaine prochaine
456 12:07 <seila.nuon> donc un dur de connecter
457 12:07 <progfou> NOTE : je reste dans le salon pour ceux qui veulent poser des questions
458 12:07 <seila.nuon> de toute facon, je vais faire des efforts pour vous joindre
459 12:08 <progfou> qui d'autre a un empêchement la semaine prochaine ?
460 12:08 <sengaloun.sengsavang> confience en moi!
461 12:08 <seila.nuon> sinon rattraper apres
462 12:08 <progfou> chanesakhone.chitsaya ?
463 12:08 <progfou> nguyen.le.duc.huy ?
464 12:09 <bosco.boukone> moi j'ai a assiter à une conférence en Tunis la semaine prochaine
465 12:09 <bosco.boukone> organisé par OIF
466 12:10 <progfou> (j'utilise les vrais noms pour faire bipper ou afficher en rouge suivant les clients )
467 12:11 <sengaloun.sengsavang> bonne apt et a+
468 12:12 <nguyen.le.duc.huy> bon appétit à tout le monde
469 12:12 <seila.nuon> bon appétit
470 12:12 <nguyen.le.duc.huy> JC: j'ai créer un database
471 12:14 <progfou> désolé, un souci de clavier...
472 12:14 <progfou> Khone, je n'ai pas vu ta réponse
473 12:15 <vutha.keth> bonjour JC,
474 12:15 <nguyen.le.duc.huy> je vais continuer après le déjeuner!
475 12:15 <progfou> bonjour Vutha, tu arrives après la bataille !
476 12:15 <progfou> ok Huy
477 12:15 <progfou> bon appétit à tout le monde
478 12:15 <vutha.keth> oui,
479 12:15 <progfou> je vous fais un courriel pour vous suggérer une date pour la suite
480 12:15 <seila.nuon> merci beaucoup pour aujourd'hui > progfou
481 12:16 <seila.nuon> je dois partir
482 12:16 <progfou> ok, a+ Seila
483 12:16 <seila.nuon> merci tout le monde
484 12:16 <vutha.keth> JC, pourquoi je ne peut pas trouver les anciens chat?
485 12:16 <seila.nuon> A+
486 12:17 <progfou> Vutha : le salon limite apparemment à 20 ou 30 lignes de logs
487 12:17 <vutha.keth> oh,
488 12:17 <progfou> mais je vais mettre les logs en ligne sur le wiki
489 12:17 <vutha.keth> oui mercie,
490 12:17 <progfou> pour le moment on n'a fait que la préparation, pas encore le langage SQL lui-même
491 12:18 <vutha.keth> oui
492 12:19 <vutha.keth> donc juste pour le configuration en UTF-8, oui?
493 12:19 <progfou> on est allé jusqu'à la création d'un compte utilisateur et lui donner des droits
494 12:20 <progfou> je mets les logs en ligne d'ici 30 min
495 12:20 <progfou> je commande d'abord ma pizza
496 12:22 <vutha.keth> oui,
497 12:22 <vutha.keth> j'ai besoin aussi
498 12:23 <vutha.keth> OK je dois aller chez moi pour prendre le déjeuner.
499 12:23 <vutha.keth> Bon apetit JC pour le PIZZA.
500 12:23 <progfou> yup
501 12:23 <progfou> a+ Vutha
502 12:29 <progfou> arf... c'est un nouveau qui prend les commandes... il vérifie même pas mon adresse... j'espère que la pizza va bien arriver au CNF et pas au BAP !!
503 12:32 <doan.manh.ha> s'il vient au BAP2 je peux t'aider
504 12:33 <progfou> m'aider à quoi ? à la manger ?
505 12:34 <progfou> il vient de me rappeler, c'est bon
506 12:34 <doan.manh.ha> exacte car mon déjeuner est lamentable
507 12:34 <doan.manh.ha> mais je paye quand meme
19/06 (après-midi)
1 14:14 <nguyen.le.duc.huy> Bon enfin, j'ai créé un compte sur mysql et re-connecte avec!
2 14:14 <progfou> ok
3 14:15 <nguyen.le.duc.huy> c'est tout pour l'atelier aujourd'hui?
4 14:15 <nguyen.le.duc.huy>
5 14:19 <progfou> a priori oui
6 14:19 <chanesakhone.chitsaya> je reviens........
7 14:19 <progfou> Khone, merci de me dire où tu en es
8 14:19 <chanesakhone.chitsaya> oui, c fait avec moi
9 14:19 <progfou> c'est tout pour aujourd'hui car j'ai du travail à faire
10 14:19 <progfou> je vais vous envoyer un courriel pour proposer une date pour la suite
11 14:20 <nguyen.le.duc.huy> Ok, A+
12 14:20 <chanesakhone.chitsaya> je suis dans la db de atelier
13 14:20 <progfou> ok Khone, je note donc que tu as réussi à finir
14 14:22 <chanesakhone.chitsaya> oui, ... je vois que après mon arreté, vous faitez rien de puis (12:04:36)
15 14:22 <chanesakhone.chitsaya> c à dire j'ai terminé de puis (12:04:36)
16 14:23 <progfou> on est obligé d'arrêter l'atelier pour aujourd'hui car Bosco n'est plus là l'après-midi et j'ai aussi du travail à faire
17 14:24 <chanesakhone.chitsaya> ok, donc prochaine réunion sera Nssmysql?
18 14:25 <progfou> non
19 14:25 <progfou> il faut finir MySQL d'abord
20 14:26 <progfou> je vais proposer une date par courriel
21 14:45 <chanesakhone.chitsaya> ok, ok JC