| 2.2.1 Installer MySQL sous Windows
 2.2 Installation standard rapide de MySQL
 2 Installer MySQL
 Manuel de Référence MySQL 4.1 : Version Française
 
 . Prérequis système sur Windows
 . Installation d'une distribution binaire sur Windows
 . Préparation de l'environnement MySQL de Windows
 . Choisir un serveur Windows
 . Démarrer le serveur pour la première fois
 . Lancer MySQL en ligne de commande
 . Lancer MySQL comme un service Windows
 . Résolution de problèmes d'installation de MySQL sous Windows
 . Faire fonctionner MySQL sous Windows
 ->MySQL pour Windows face à MySQL pour Unix
 
 
 | 
  2.2.1.10 MySQL pour Windows face à MySQL pour Unix 
  MySQL pour Windows a prouvé qu'il était très stable. Cette version de 
MySQL a les mêmes fonctionnalités que la version Unix, a quelques exceptions : 
Voici quelques problèmes connus et pas encore corrigés, si jamais quelqu'un
souhaite nous aider sur la version Windows :
     Windows 95 et les threads
    
      Windows 95 perd environs 200 octets de mémoire central lors de la création de chaque thread.
Chaque connexion MySQL crée un nouveau thread, ce qui fait qu'il n'est pas recommandé
d'exécuter  
mysqld
  pour des durées longues sur Windows 95 si votre serveur
gère de nombreuses connexions. Les autres versions de Windows ne souffrent pas
du même problème.
      
     Nombre limités de ports de connexions
    
      Les systèmes Windows disposent d'environs 4,000 pour les connexions clientes,
et après connexion, cela prend de 2 à 4 minutes avant qu'un port soit
de nouveau utilisable. Dans des situations où les clients se connectent
et se déconnectent à haute vitesse, il est possible que tous les ports soient
utilisés, avant que les anciens ports ne redeviennent utilisables. Lorsque cela arrive,
le serveur semblera inaccessible, même s'il fonctionne bien. Notez que des ports peuvent
aussi être utilisées par d'autres applications, ce qui réduit encore le nombre
de ports disponibles pour MySQL.
      
     Lectures concurrentes
    
      MySQL dépends des fonctions  
pread()
  et  
pwrite()
  pour être capable
de mêler des  
INSERT
  et des  
SELECT
 . Actuellement, nous utilisons les
 
mutexes
  pour émuler les fonctions  
pread()
 / 
pwrite()
 . Nous allons,
à long terme, remplacer ce niveau d'interface par une interface virtuelle
de façon à ce que nous puissions utiliser l'interface  
readfile()
 / 
writefile()
  
de  
Windows NT/2000/XP
  pour gagner de la vitesse.
L'implémentation courante limite le nombre de fichiers ouverts par MySQL 
à 1024, ce qui signifie que vous ne pouvez pas utiliser d'aussi nombreux threads
concurrents sur  
Windows NT/2000/XP
  que sur Unix.
      
Blocking read
      MySQL utilise une lecture bloquée pour chaque connexion.
Cela signifie que : 
Une connexion ne sera pas déconnectée automatiquement après 8 heures d'inactivité,
comme c'est le cas sous Unix.
Si une connexion se bloque, il est impossible de la détruire sans tuer
MySQL.
mysqladmin kill
  ne fonctionne pas sur une connexion endormie.
mysqladmin shutdown
  ne peut pas s'exécuter tant qu'il y a des 
connexions qui dorment.
 
Nous envisageons de corriger ce problème, lorsque les développeurs Windows
auront fourni un palliatif.
 
DROP DATABASE
      Vous ne pouvez pas détruire une base qui est utilisée par un autre thread.
      
     Interrompre MySQL depuis le gestionnaire de tâches
    
      Vous ne pouvez pas tuer MySQL depuis le gestionnaire de tâche ou avec un
utilitaire d'extinction de Windows 95. Vous devez l'éteindre avec 
 
mysqladmin shutdown
 .
      
     Noms sensibles à la casse
    
      Les noms de fichiers sont insensibles à la casse sous Windows, ce qui fait que
les noms de tables et de bases ne sont pas sensibles à la casse pour
MySQL sur Windows. La seule restriction est que les noms de tables et de
bases doivent être donnés avec même casse dans le nom (tout en majuscules,
ou en minuscules).  Identifier Case Sensitivity .
      
     Le caractère 
'\'
      Les composants d'un chemin sont séparés par le caractère  
'\'
  sous Windows, 
qui est aussi le caractère de protection de MySQL. Si vous utilisez
la commande  
LOAD DATA INFILE
  ou  
SELECT ... INTO OUTFILE
 , vous devez
doubler le caractère  
'\'
  : 
Alternativement, vous pouvez utiliser les noms de fichiers au format Unix, avec 
le caractère  
'/'
  :| 
mysql> LOAD DATA INFILE "C:\\tmp\\skr.txt" INTO TABLE skr;mysql> SELECT * INTO OUTFILE 'C:\\tmp\\skr.txt' FROM skr;
 | 
 | 
mysql> LOAD DATA INFILE "C:/tmp/skr.txt" INTO TABLE skr;mysql> SELECT * INTO OUTFILE 'C:/tmp/skr.txt' FROM skr;
 | 
 
     Problèmes avec les pipes
    
      Les pipes ne fonctionnent pas de manière fiables depuis la ligne de commande
Windows. Si le pipe reçoit un caractère  
^Z
  /  
CHAR(24)
 , Windows va
croire qu'il atteind la fin du fichier et arrête le programme.
 
C'est un problème, notamment lorsque vous essayez d'utiliser le log
binaire de cette manière : 
 Si vous rencontrez un problème lors de l'utilisation du log, et que vous
pensez que c'est à cause du caractère  
^Z
  /  
CHAR(24)
 ,
vous pouvez utiliser le palliatif suivant :| 
mysqlbinlog binary-log-name | mysql --user=root
 | 
 Cette dernière commande peut aussi être utilisée pour lire fiablement
tout fichier SQL qui contient des données binaires.| 
mysqlbinlog binary-log-file --result-file=/tmp/bin.sqlmysql --user=root --execute "source /tmp/bin.sql"
 | 
 
     L'erreur 
Can't open named pipe
      Si vous utilisez MySQL 3.22 sous  
NT
  avec les derniers clients mysql,
vous allez obtenir cette erreur :  
Ceci est dû au fait que les versions modernes de MySQL utilisent des pipes
nommés sous  
NT
 , par défaut. Pour éviter cette erreur, vous devez utiliser
l'option  
--host=localhost
  sur les nouveaux clients, ou bien créer le
fichier d'options  
C:\my.cnf
 , qui contiendra les informations suivantes :  
 
Depuis la version 3.23.50, les pipes nommés sont les seuls activés si 
 
mysqld
  est démarré avec  
--enable-named-pipe
 .| 
error 2017: can't open named pipe to host: . pipe...
 | 
 
     Erreur 
Access denied for user
      Si vous rencontrez l'erreur 
 
Access denied for user: 'utilisateur@unknown' to database 'mysql'
  
lors de l'accès au serveur MySQL sur la même machine, cela signifie
que MySQL ne peut résoudre proprement votre nom d'hôte.Pour corriger cela, vous devriez créer un fichier  
\windows\hosts
  dans
l'information suivante :  
 
ALTER TABLE
      Lorsque vous exécutez la commande  
ALTER TABLE
 , la table est verrouillé,
empêchant les autres threads d'y accéder. Cela est lié au fait que sous Windows,
vous ne pouvez pas effacer un fichier qui est en cours d'utilisation par d'autres
threads : à l'avenir, vous pourrions trouver un moyen de contourner ce problème.
      
DROP TABLE
      La commande  
DROP TABLE
  sur une table qui est utilisée dans le cadre
d'un  
MERGE
  ne fonctionne pas sous Windows, car le gestionnaire de 
 
MERGE
  garde la carte des tables cachée de la couche supérieure de
MySQL. Comme Windows ne vous autorise pas à effacer des fichiers qui sont ouverts,
vous devez d'abord vider de la mémoire toutes les tables du  
MERGE
 
(avec la commande  
FLUSH TABLES
 ) puis effacer la table  
MERGE
 avant
d'effacer les tables. Nous allons corriger cela lorsque nous introduirons
la notion de  
VIEW
 s.
      
DATA DIRECTORY
 et 
INDEX DIRECTORY
      Les directives  
DATA DIRECTORY
  et  
INDEX DIRECTORY
  de 
 
CREATE TABLE
  sont ignorées sous Windows, car Windows ne supporte pas
les liens symboliques.      
Ajouter des icônes pour le démarrage et l'arrêt de MySQL, dans
l'installateur.
Il serait vraiment pratique de pouvoir arrêter le processus  
mysqld
  
depuis le gestionnaire de tâches. Pour le moment, il faut passer par
 
mysqladmin shutdown
 .
Le port de  
readline
  sur Windows pour pouvoir l'utiliser avec l'outil de ligne
de commande  
mysql
 .
Des versions graphiques des clients standards MySQL ( 
mysql
 ,
 
mysqlshow
 ,  
mysqladmin
  et  
mysqldump
 ) seraient bien.
Il serait bien si les fonctions de lecture et d'écriture sur les sockets de 
 
net.c
  pouvaient être interrompues. Cela rendrait possible l'arrêt
des threads en court avec  
mysqladmin kill
  sous Windows.
Ajouter des macros pour utiliser les méthodes rapides 
d'incrément/décrément compatibles
avec les threads, fourni par Windows.
 |