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

ZAP/Ateliers/MySQL/Minutes19juin2008 (dernière édition le 2008-06-25 04:20:57 par JeanChristopheAndré)