Ce chapitre décrit comment obtenir et installer MySQL :
Il est recommandé d'installer MySQL sous Linux en utilisant un fichier RPM.
Les RPM de MySQL sont actuellement compilé sur une RedHAt en version 6.2,
mais devraient fonctionner sur toute autre version de Linux qui supporte rpm
et utilise glibc.
Si vous avez des problèmes avec un fichier RPM, si vous obtenez par exemple l'erreur
``Sorry, the host 'xxxx' could not be looked up'', référez vous à
section 2.6.1.1 Notes relatives à Linux pour les distributions binaires.
Les fichiers RPM dont vous pourriez avoir besoin sont :
MySQL-VERSION.i386.rpm
Le serveur MySQL. Vous en aurez besoin à moins que vous ne vouliez que vous
connecter à un serveur MySQL tournant sur une autre machine.
MySQL-client-VERSION.i386.rpm
Les programmes clients MySQL standards. Vous avez certainement besoin d'installer
ce paquet.
MySQL-bench-VERSION.i386.rpm
Tests et bancs d'essai. Nécessite Perl et les modules RPM msql-mysql-modules.
MySQL-devel-VERSION.i386.rpm
Librairies et fichiers d'inclusions dont vous aurez besoin pour compiler d'autres
clients MySQL, tels que les modules Perl.
MySQL-VERSION.src.rpm
Celui-ci contient le code source de tous les paquets précédents. Il peut donc être
utilisé pour construire des fichiers RPM pour d'autres architectures (par exemple, l'Alpha
ou le SPARC).
Pour voir tous les fichiers présents dans un paquet RPM, lancez :
shell> rpm -qpl MySQL-VERSION.i386.rpm
Pour effectuer une installation standard minimale, lancez :
shell> rpm -i MySQL-VERSION.i386.rpm MySQL-client-VERSION.i386.rpm
Pour installer uniquement le paquet du client MySQL, lancez :
shell> rpm -i MySQL-client-VERSION.i386.rpm
Le fichier RPM place les données dans `/var/lib/mysql'. Le RPM crée aussi les entrées appropriées dans `/etc/rc.d/' pour lancer le serveur automatiquement au démarrage. (Cela signifie que, si vous avez déjà effectué une installation auparavant, vous pouvez avoir besoin de faire une sauvegarde de vos fichiers de démarrage précédents si vous les changez, de façon à ne pas les perdre.)
Après l'installation des fichiers RPM, le démon mysqld devrait fonctionner
et vous devriez être capables de commencer à utiliser MySQL.
See section 2.4 Configuration après l'installation, et tests.
Si quelque chose se passe mal, vous pouvez trouver davantage d'informations dans le chapitre d'installation des binaires. See section 2.2.11 Installer MySQL à partir d'une distribution binaire.
Le serveur MySQL pour Windows est disponible sous deux formes :
En règle générale, vous devriez utiliser la distribution binaire.
Vous aurez besoin des choses suivantes :
MAX_ROWS et
AVG_ROW_LENGTH quand vous créez les tables. See section 6.5.3 Syntaxe de CREATE TABLE.
ZIP pour décompresser le fichier de la distribution.
ODBC, vous
aurez aussi besoin du pilote MyODBC. See section 8.3 Support ODBC avec MySQL.
C:\> NET STOP MySQLDans les autres cas, utilisez :
C:\mysql\bin> mysqladmin -u root shutdown
C:\mysql\bin> mysqld-max-nt --remove
Parcourir pour spécifier un emplacement.
A partir de la version 3.23.38 de MySQL, la distribution Windows inclut le binaire du serveur normal et le binaire du serveur MySQL-Max. Voici une liste des différents serveurs MySQL que vous pouvez utiliser :
| Binaire | Description |
mysqld | Compilé avec débogage total et vérification automatique de l'allocation de mémoire, liens symboliques, tables InnoDB et BDB. |
mysqld-opt | Binaire optimisé sans le support des tables transactionnelles. |
mysqld-nt | Binaire optimisé pour NT/2000/XP sans support des tunnels nommés. Vous pouvez faire fonctionner cette version sur Windows 9x/Me, mais dans ce cas, les tunnels nommés ne sont pas crées et vous devez avoir TCP/IP installé. |
mysqld-max | Binaire optimisé avec support des liens symboliques et des tables InnoDB et BDB. |
mysqld-max-nt |
Comme mysqld-max, mais compilé avec le support des tunnels nommés.
|
A partir de la version 3.23.50, les tunnels nommés ne sont activés que si on démarre
mysqld avec --enable-named-pipe.
Tous les binaires précédents sont optimisés pour le processeur Pentium Pro mais devraient fonctionner avec n'importe quel processeur Intel >= i386.
Vous devrez utiliser un fichiers d'options pour spécifier votre configuration MySQL dans les circonstances suivantes :
Normalement, vous pouvez utiliser l'outil WinMySQLAdmin pour éditer le fichier
d'options my.ini. Dans ce cas, vous n'avez pas à vous soucier de ce qui suit.
Il y a deux fichiers d'options avec la même fonction : `my.cnf' et
`my.ini'. Toutefois, pour éviter la confusion, il est préférable de n'en utiliser
qu'un seul. Les deux fichiers sont en texte plein. Le fichier `my.cnf', si utilisé,
doit être crée dans le répertoire racine du lecteur C. Le fichier `my.ini',
si utilisé, doit être crée dans le répertoire système de Windows. (Ce répertoire est
souvent nommé `C:\WINDOWS' ou `C:\WINNT'.
Vous pouvez déterminer sa valeur exacte en regardant la valeur de la variable d'environnement
windir.) MySQL regarde en premier le fichier my.ini, puis le fichier
`my.cnf'.
Si votre PC utilise un système de boot ou le lecteur C n'est pas le lecteur de boot,
votre seule option est d'utiliser le fichier `my.ini'. Notez aussi que si vous utilisez
l'outil WinMySQLAdmin, celui-ci n'utilisera que le fichier `my.ini'.
Le répertoire `\mysql\bin' contient un fichier d'aide avec les instruction pour utiliser
cet outil.
En utilisant notepad.exe, créez le fichier d'options et éditez la
section [mysqld] pour spécifier les valeurs des paramètres basedir
et datadir :
[mysqld] # set basedir to installation path, e.g., c:/mysql basedir=le_dossier_d'installation # set datadir to location of data directory, # e.g., c:/mysql/data or d:/mydata/data datadir=le_dossier_des_données
Notez que les chemins de Windows doivent être spécifiés dans les fichiers d'options en utilisant des slashes normaux (/) au lieu des backslashes (\). Si vous utilisez des backslashes, vous devez les doubler.
Si vous voulez utiliser un répertoires de données autre que `c:\mysql\data', vous devez copier le contenu entier du dossier `c:\mysql\data' au nouvel endroit.
Si vous voulez utiliser les tables transactionnelles InnoDB, vous
aurez besoin de créer manuellement deux nouveaux répertoires pour contenir
les les données et les logs InnoDB, `c:\ibdata' et `c:\iblogs'.
Vous aurez aussi besoin d'ajouter quelques lignes supplémentaires dans le
fichier d'options. See section 7.5.2 Options de démarrage InnoDB.
Si vous ne voulez pas utiliser les tables InnoDB, ajoutez l'option
skip-innodb au fichier d'options.
Maintenant, vous pouvez commencer à tester le démarrage du serveur.
Tester à partir d'une console DOS est la meilleure chose à faire car le serveur affiche des messages qui y apparaissent. Si quelque chose n'est pas bon dans votre configuration, ces messages vous aiderons à identifier et corriger le problème.
Assurez-vous d'être dans le répertoire où se situe le serveur, puis entrez cette commande :
C:\mysql\bin> mysqld-max --standalone
Vous devriez voir ce qui suit pendant le démarrage du serveur :
InnoDB: The first specified datafile c:\ibdata\ibdata1 did not exist: InnoDB: a new database to be created! InnoDB: Setting file c:\ibdata\ibdata1 size to 209715200 InnoDB: Database physically writes the file full: wait... InnoDB: Log file c:\iblogs\ib_logfile0 did not exist: new to be created InnoDB: Setting log file c:\iblogs\ib_logfile0 size to 31457280 InnoDB: Log file c:\iblogs\ib_logfile1 did not exist: new to be created InnoDB: Setting log file c:\iblogs\ib_logfile1 size to 31457280 InnoDB: Log file c:\iblogs\ib_logfile2 did not exist: new to be created InnoDB: Setting log file c:\iblogs\ib_logfile2 size to 31457280 InnoDB: Doublewrite buffer not found: creating new InnoDB: Doublewrite buffer created InnoDB: creating foreign key constraint system tables InnoDB: foreign key constraint system tables created 011024 10:58:25 InnoDB: Started
Pour plus d'informations à propos du démarrage de MySQL sous Windows, voyez section 2.6.2 Notes relatives à Windows.
Depuis MySQL 4.0.11, vous pouvez installer MySQL sur Mac OS X 10.2
("Jaguar") avec le package binaire Mac OS X PKG au lieu d'utiliser
la distribution binaire compressée. Notez que les anciennes versions de
Mac OS X (i.e. 10.1.x) ne sont pas supportées par ce package.
Le package est situé dans une image disque (.dmg), que vous devez monter
en double-cliquant son icône sur le Finder. Le disque devrait alors se monter,
et afficher son contenu.
NOTE: Avant de lancer l'installation, assurez vous qu'il n'y a pas de serveur MySQL en fonctionnement!
Arrêtez tous les serveurs MySQL avant de continuer, soit en utilisant
l'application manager (pour les serveurs Mac OS X) ou via
mysqladmin shutdown en ligne de commande.
Pour installer le package MySQL, double-cliquez sur l'icône. Cela va lancer l'installeur de package MacOSX, qui vous guidera durant l'installation.
Le package Mac OS X de MySQL va s'installer lui-même dans le dossier
`/usr/local/mysql-<version>' et va aussi installer un lien symbolique
`/usr/local/mysql', pointant sur la nouvelle installation. Si un dossier
appelé `/usr/local/mysql' existe déjà, il sera renommé en
`/usr/local/mysql.bak'. De plus, il va installer les tables de droits
MySQL en exécutant le script mysql_install_db après l'installation.
Le schéma d'installation est semblable à celui de la distribution binaire, tous les programmes MySQL sont situés dans le dossier `/usr/local/mysql/bin'. Les sockets MySQL sont installées dans le fichier `/etc/mysql.sock' par défaut. See section 2.2.7 Dispositions d'installation.
L'installation requiert un compte nommé mysql (qui existe par défaut en
Mac OS X 10.2 et plus récent).
Si vous utilisez Mac OS X Server, vous devez avoir déjà une version de MySQL installée :
Cette section du manuel couvre l'installation du package binaire MySQL pour Mac OS X uniquement. Assurez vous de bien lire l'aide d'Apple concernant l'installation de MySQL (Lancer le visualiseur d'aid, sélectionnez la rubrique "Serveur Mac OS X", et faites une recherche sur "MySQL", puis lisez l'entrée appelée "Installing MySQL").
Notez bien que la version pré-installée de MySQL sur Mac OS X Server
peut être lancée avec la commande safe_mysqld au lieu de
mysqld_safe!
Si vous avez utilisé auparavant les packages MySQL de Marc Liyanage pour Mac OS X, depuis le site de http://www.entropy.ch, vous pouvez simplement suivre le process de mise à jour, en utilisant les conseils de ses pages.
Si vous faites une mise à jour depuis les versions de Marc, ou depuis une ancienne version de MySQL pour Mac OS X Server, avec le nouveau package officiel, vous devrez convertir les tables de droits. See section 2.5.3 Passer de la version 3.23 à la version 4.0.
Après cette installation, vous opuvez lancer le serveur MySQL avec ces commandes, exécutées dans terminal. Notez bien que vous devez avoir des droits d'administrateur pour cela!
shell> cd /usr/local/mysql shell> sudo ./bin/mysqld_safe (Enter your password) (Press CTRL+Z) shell> bg (Press CTRL+D to exit the shell)
Vous devez alors être capable de vous connecter au serveur MySQL, notamment en exécutant la commande `/usr/local/mysql/bin/mysql'.
Pour activer automatiquement le démarrage de MySQL au lancement du serveur, vous pouvez télécharger l'utilitaire de démarrage de Marc Liyanage sur sont site :
http://www2.entropy.ch/download/mysql-startupitem.pkg.tar.gz
Nous avons prévu d'ajouter une application de démarrage à la distribution officielle prochainement.
Notez que l'installation d'un nouveau package MySQL ne supprimer pas le dossier d'une vieille installation : l'installeur de Mac OS X n'offre pas encore les fonctionnaltés nécessaires pour mettre à jour proprement une vieille version. Après avoir copié les fichiers de bases depuis votre ancien dossier vers le nouveau, et que vous avez réussi à redémarrer MySAL avec la nouvelle version, vous devriez pensez à supprimer les vieilles versions des fichiers, situées dans `/Library/Receipts/mysql-<version>.pkg'.
Depuis la version 4.0.11, le serveur MySQL est disponible sur Novell NetWare, en format binaire. Pour pouvoir héberger un serveur MySQL, un serveur NetWare doit avoir les pré-requis suivants :
Les exécutables binaires pour NetWare sont disponibles sur http://www.mysql.com/downloads/.
SERVER: mysql -u root shutdown
SERVER: SEARCH ADD SYS:MYSQL\BIN
mysql_install_db en ligne de commande.
mysqld_safe
dans la console.
autoexec.ncf. Par exemple, si votre
installation MySQL est dans le dossier `SYS:MYSQL', et que vous
voulez que MySQL démarre automatiquement, vous pouvez utiliser ces lignes :
#Démarre le serveur MySQL 4.0.x SEARCH ADD SYS:MYSQL\BIN MYSQLD_SAFE
Si il y avait une installation MySQL pré-éxistante, assurez vous de
bien vérifier les commandes de démarrages dans autoexec.ncf,
et de les adapter si nécessaire.
Visitez le site de MySQL (http://www.mysql.com/) pour des informations à propos de la version courante et les instructions de téléchargement.
Notre miroir principal est situé sur http://mirrors.sunsite.dk/mysql/.
Pour une liste complète et à jour des miroirs web/téléchargement de MySQL, voyez http://www.mysql.com/downloads/mirrors.html. Vous trouverez là des informations à propos des futurs miroirs et de quoi nous informer de la non-validité de l'un d'entre eux.
MD5 ou GnuPGUne fois que vous avez téléchargé le paquet MySQL qui vous convient, et avant de l'installer, vous devriez vous assrurer qu'il est intact, et n'a pas été altéré.
MySQL AB propose deux moyens de vérifier l'intégrité : les sommes de contrôles
MD5 et les signatures de GnuPG, de GNU Privacy Guard.
MD5 ChecksumUne fois que vous avez téléchargé le paquet, vous devez vérifier si la somme de contrôle MD5 correspond à celle qui est disponibles sur le site de MySQL. Chaque package a une somme de contrôle individuelle, que vous pouez obtenir avec la commande suivante :
shell> md5sum <package>
Notez que tous les systèmes d'exploitation ne supportent pas la commande
md5sum : sur certains, elle s'appelle simplement md5, sur d'autre,
elle n'est pas du tout disponible. Sur Linux, ella fait partie des
utilitaires textes GNU (GNU Text Utilities), qui sont disponbiles
pour toute une gamme de plate-formes. Vous pouvez télécharger le code source
sur le site http://www.gnu.org/software/textutils/. Si vous avez
installé OpenSSL, vous pouvez utiliser la commande
openssl md5 <package> à la place. Une implémentation DOS/Windows de
la commande md5 est disponible sur le site http://www.fourmilab.ch/md5/.
Exemple :
shell> md5sum mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz
155836a7ed8c93aee6728a827a6aa153
mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz
Ainsi, vous devez vérifier si la somme de contrôle résultante correspond à cette qui est imprimée sur la page de téléchargement, en dessous du paquet téléchargé.
La plupart des sites miroirs proposent aussi un fichier appelé `MD5SUMS', qui inclut les sommes de contrôle MD5 pour tous les fichiers disponibles dans le dossier `Downloads'. Notez bien qu'il est très facile de modifier ce fichier, et que ce n'est pas une méthode sécuritaire. Dans le doute, consultez différents mirroirs, et comparez les résultats.
GnuPG
Une méthode plus sûre pour vérifier l'intégrité d'un paquet est d'utiliser
la signature. MySQL AB utilise GNU Privacy Guard
(GnuPG), une alternative Open Source du très connu
Pretty Good Privacy (PGP) par Phil Zimmermann.
Voir http://www.gnupg.org/ et http://www.openpgp.org/
pour plus d'informations sur OpenPGP/GnuPG et comment obtenir
et installer GnuPG sur votre système. La plupart des distributions
Linux dispose d'une version de GnuPG installée par défaut.
Depuis MySQL 4.0.10 (Février 2003), MySQL AB signe les paquets en téléchargement
avec GnuPG. Les signateurs chifféres représentent une méthode bien plus
sûre pour vérifier l'intégrité et l'authenticitié d'un fichier.
Pour vérifier la signature d'un paquet spécifique, vous devez obtenir en premier lieu une copie de la clé publique GPG build@mysql.com. Vous pouvez soit la copier-coller directement depuis ce manuel, ou la réclamer sur le serveur http://www.keyserver.net/.
Key ID:
pub 1024D/5072E1F5 2003-02-03
MySQL Package signing key (www.mysql.com) <build@mysql.com>
Fingerprint: A4A9 4068 76FC BD3C 4567 70C8 8C71 8D3B 5072 E1F5
Public Key (ASCII-armored):
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org
mQGiBD4+owwRBAC14GIfUfCyEDSIePvEW3SAFUdJBtoQHH/nJKZyQT7h9bPlUWC3
RODjQReyCITRrdwyrKUGku2FmeVGwn2u2WmDMNABLnpprWPkBdCk96+OmSLN9brZ
fw2vOUgCmYv2hW0hyDHuvYlQA/BThQoADgj8AW6/0Lo7V1W9/8VuHP0gQwCgvzV3
BqOxRznNCRCRxAuAuVztHRcEAJooQK1+iSiunZMYD1WufeXfshc57S/+yeJkegNW
hxwR9pRWVArNYJdDRT+rf2RUe3vpquKNQU/hnEIUHJRQqYHo8gTxvxXNQc7fJYLV
K2HtkrPbP72vwsEKMYhhr0eKCbtLGfls9krjJ6sBgACyP/Vb7hiPwxh6rDZ7ITnE
kYpXBACmWpP8NJTkamEnPCia2ZoOHODANwpUkP43I7jsDmgtobZX9qnrAXw+uNDI
QJEXM6FSbi0LLtZciNlYsafwAPEOMDKpMqAK6IyisNtPvaLd8lH0bPAnWqcyefep
rv0sxxqUEMcM3o7wwgfN83POkDasDbs3pjwPhxvhz6//62zQJ7Q7TXlTUUwgUGFj
a2FnZSBzaWduaW5nIGtleSAod3d3Lm15c3FsLmNvbSkgPGJ1aWxkQG15c3FsLmNv
bT6IXQQTEQIAHQUCPj6jDAUJCWYBgAULBwoDBAMVAwIDFgIBAheAAAoJEIxxjTtQ
cuH1cY4AnilUwTXn8MatQOiG0a/bPxrvK/gCAJ4oinSNZRYTnblChwFaazt7PF3q
zIhMBBMRAgAMBQI+PqPRBYMJZgC7AAoJEElQ4SqycpHyJOEAn1mxHijft00bKXvu
cSo/pECUmppiAJ41M9MRVj5VcdH/KN/KjRtW6tHFPYhMBBMRAgAMBQI+QoIDBYMJ
YiKJAAoJELb1zU3GuiQ/lpEAoIhpp6BozKI8p6eaabzF5MlJH58pAKCu/ROofK8J
Eg2aLos+5zEYrB/LsrkCDQQ+PqMdEAgA7+GJfxbMdY4wslPnjH9rF4N2qfWsEN/l
xaZoJYc3a6M02WCnHl6ahT2/tBK2w1QI4YFteR47gCvtgb6O1JHffOo2HfLmRDRi
Rjd1DTCHqeyX7CHhcghj/dNRlW2Z0l5QFEcmV9U0Vhp3aFfWC4Ujfs3LU+hkAWzE
7zaD5cH9J7yv/6xuZVw411x0h4UqsTcWMu0iM1BzELqX1DY7LwoPEb/O9Rkbf4fm
Le11EzIaCa4PqARXQZc4dhSinMt6K3X4BrRsKTfozBu74F47D8Ilbf5vSYHbuE5p
/1oIDznkg/p8kW+3FxuWrycciqFTcNz215yyX39LXFnlLzKUb/F5GwADBQf+Lwqq
a8CGrRfsOAJxim63CHfty5mUc5rUSnTslGYEIOCR1BeQauyPZbPDsDD9MZ1ZaSaf
anFvwFG6Llx9xkU7tzq+vKLoWkm4u5xf3vn55VjnSd1aQ9eQnUcXiL4cnBGoTbOW
I39EcyzgslzBdC++MPjcQTcA7p6JUVsP6oAB3FQWg54tuUo0Ec8bsM8b3Ev42Lmu
QT5NdKHGwHsXTPtl0klk4bQk4OajHsiy1BMahpT27jWjJlMiJc+IWJ0mghkKHt92
6s/ymfdf5HkdQ1cyvsz5tryVI3Fx78XeSYfQvuuwqp2H139pXGEkg0n6KdUOetdZ
Whe70YGNPw1yjWJT1IhMBBgRAgAMBQI+PqMdBQkJZgGAAAoJEIxxjTtQcuH17p4A
n3r1QpVC9yhnW2cSAjq+kr72GX0eAJ4295kl6NxYEuFApmr1+0uUq/SlsQ==
=YJkx
-----END PGP PUBLIC KEY BLOCK-----
Vous pouvez importer cette clé dans votre trousseau de clé publiques
GPG avec la commande gpg --import. Voyez la documnetation
GPG pour plus de détails sur comment travailler avec les clés
publiques.
Une fois que vous avez téléchargé et importé la clé publique, vous pouvez télécharger le paquet MySQL et la signature qui lui est associée, sur la même page. Le fichier de signature a pour extension `.asc'. Par exemple, la signature pour le fichier `mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz' serait `mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz.asc'. Assurez vous que les deux fichiers sont stockés dans le même dossier, puis exécutez la commande suivante pour vérifier la signature du fichier :
shell> gpg --verify <package>.asc
Example:
shell> gpg --verify mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz.asc
gpg: Warning: using insecure memory!
gpg: Signature made Mon 03 Feb 2003 08:50:39 PM MET using DSA key ID 5072E1F5
gpg: Good signature from
"MySQL Package signing key (www.mysql.com) <build@mysql.com>"
La mention "Good signature" (bonne signature) indique que le paquet est correct.
Pour les paquets RPM, il n'y a pas de signature séparée :
les paquets RPM disposent d'une signature GPG intégrée,
et d'une somme de contrôle MD5. Vous pouvez les vérifier avec
la commande suivante :
shell> rpm --checksig <package>.rpm Example: shell> rpm --checksig MySQL-server-4.0.10-0.i386.rpm MySQL-server-4.0.10-0.i386.rpm: md5 gpg OK
Note : Si vous utilisez RPM 4.1 et qu'il se plaint que (GPG)
NOT OK (MISSING KEYS: GPG#5072e1f5) (même si vous l'avez importé dans
votre trousseau de clé), vous devez alors importer la clé dans votre trousseau
RPM d'abord. RPM 4.1 n'utilise pas votre trousseau de clé GPG (ni GPG lui-même),
car il entretient son propre trousseau de clé (car c'est une application de niveau
système, et que le trousseau de clé est spécifique à chaque utilisateur). Pour
importer la clé publique MySQL dans votre trousseau de clé RPM, utilisez la
commande suivante :
shell> rpm --import <pubkey> Example: shell> rpm --import mysql_pubkey.asc
Dans le cas où vous vous apercevez que la somme de contrôle MD5 checksum ou
la signature GPG ne correspond pas, essayez de télécharger à nouveau le
même paquet, éventuellement depuis un autre miroir. Si vous échouez plusieurs
fois à vérifier l'intégrité du paquet, faites nous part de votre problème, en
incluant le nom complet du paquet désiré, et les sites de téléchargement que vous
avez utilisé. Mailez nous à l'adresse webmaster@mysql.com ou
build@mysql.com.
Nous utilisons GNU Autoconf, alors il est possible de porter MySQL
sur tous les systèmes modernes qui utilisent les threads Posix et un compilateur
C++. Pour compiler uniquement le client, un compilateur C++ est simplement nécessaire.
Nous utilisons et développons le logiciel nous-même, en commençant par
Sun Solaris (Versions 2.5 - 2.7) et SuSE Linux version 7.x.
Notez que pour de nombreux systèmes d'exploitation, le support natif des threads ne fonctionne qu'avec les dernières versions. MySQL a été compilé avec succès sur les combinaisons système d'exploitation/package de threads suivants :
glibc 2.0.7+. See section 2.6.1 Notes relatives à Linux (toutes versions).
Notez que toutes les plate-formes ne sont pas équipées de la même façon pour faire fonctionner MySQL. Les capacités d'une plateforme pour supporter de fortes charges avec MySQL est déterminé par ceci :
pthread_mutex_lock() est trop soucieux du temps CPU, cela va ralentir
sérieusement MySQL. Si ce problème n'est pas réglé, ajouter des processeurs
supplémentaires va finalement ralentir MySQL.
En se basant sur les critères précédents, les meilleures plate-forme pour MySQL sont x86 avec SuSE Linux 7.1, 2.4 kernel, et ReiserFS (ou toute autre distribution Linux similaire) et SPARC avec Solaris 2.7 ou 2.8. FreeBSD vient en troisième, mais nous espérons bien le voir rejoindre le groupe de tête, une fois que la librairie de threads sera améliorée. Nous espérons aussi être bientôt capables d'ajouter les autres plate-formes sur laquelle MySQL compile, et fonctionne correctement, mais pas toujours le bon niveau de stabilité et de performances. Cela réclame des efforts de notre part, en coopération avec les développeurs de ces plate-formes. Si vous êtes interessés par l'amélioration de ces composants, et que vous êtes en position pour influencer le développement, demandez des instructions détaillées à MySQL en envoyant un email à internals@lists.mysql.com.
Notez bien que la comparaison précédente ne signifie pas qu'un système d'exploitation est meilleur que l'autre, en général. Nous avons classé les systèmes en fonction de leur capacité à faire fonctionner un système MySQL, et nous nous limitons à cette comparaison. Avec cela en tête, le résultat de cette comparaison serait différent si nous y ajoutions d'autres problèmes. Et dans certains cas, la seule raison qui fait qu'un OS est meilleur que l'autre est parce que nous y avons consacré plus de temps, pour optimiser et tester. Nous nous bornons à exprimer notre point de vue pour vous aider à décider quelle plate forme choisir pour votre serveur MySQL.
La première décision à prendre est de savoir si vous voulez utiliser la dernière version de développement ou la dernière version stable :
La seconde décision est de déterminer si vous devez utiliser une distribution source ou binaire. Dans la plupart des cas, vous devrez utiliser une distribution binaire, si celle-ci existe pour votre plate-forme, car elle s'installera certainement plus facilement qu'une distribution source.
Dans les cas suivants, vous devrez opter pour une installation à partir des sources :
MySQL peuvent se connecter aux deux versions.
La distribution binaire avancée est marquée du suffixe -max et est
configurée avec les mêmes options que mysqld-max.
See section 4.7.5 mysqld-max, la version étendue du serveur mysqld.
Si vous souhaitez utiliser des fichiers RPM de MySQL-Max, vous devez tout d'abord installer
les RPM MySQL standards.
mysqld avec certaines options supplémentaires qui ne
sont pas présentes dans les distributions binaires standards. Ci-dessous, une liste
des options les plus courantes que vous pourriez vouloir utiliser :
--with-innodb
--with-berkeley-db
--with-raid
--with-libwrap
--with-named-z-lib (Ceci est appliqué à certains binaires)
--with-debug[=full]
pgcc), ou utiliser des options de compilations davantage
optimisées pour votre processeur.
La politique de nommage de MySQL utilise des numéros de version qui consiste en trois
nombres suivis d'un suffixe. Par exemple, une version nommée
mysql-3.21.17-beta doit être interprétée de la façon
suivante :
3) décrit le format de fichier. Toutes les versions 3 ont
le même format de fichier.
21) correspond au niveau de version. Normalement, il y a le
choix entre deux d'entre eux. L'un correspond à la version/branche stable
(actuellement 23) et l'autre se réfère à la branche de
développement (actuellement 4.0). Normalement, les deux versions sont
stables, mais la version de développement peut comporter des lacunes, manquer de
documentation sur des nouvelles fonctionnalités, ou peut ne pas compiler sur certains
systèmes.
17) est le numéro de version au sein du niveau de
version. Celui-ci est incrémenté à chaque nouvelle publication. En
temps normal, vous souhaiterez utiliser la dernière version du niveau de version que
vous avez choisi.
beta) indique le niveau de stabilité de la version. Les suffixes
possibles sont :
alpha indique que la publication contient de grandes portions de nouveau code qui n'a
pas été testé à 100%. Les bogues connus (d'ordinaire, il n'y en a
aucun) doivent être documentés dans la section News. See section C Historique des changements MySQL. Il existe
aussi de nouvelles commandes et extensions dans la plupart des versions alpha. Du
développement actif qui inclut des changements majeurs dans le code peut concerner
les versions alpha, mais tout sera testé avant de faire une publication. Il ne devrait
pas y avoir de bogues connus dans les publications de MySQL.
beta signifie que tout le nouveau code a été testé. Aucune
fonctionnalité majeure qui pourrait causer corruption du code n'est ajoutée.
Il ne doit pas y avoir un seul bogue connu. Une version alpha passe en beta quand il n'y a
pas eu de bogue fatal rapporté depuis au moins un mois et que nous ne
prévoyons pas de nouvelle fonctionnalité qui pourrait corrompre d'anciennes
commandes.
gamma est une version bêta qui existe depuis un certain temps et qui semble
fonctionner correctement. Seulement des changements mineurs sont effectués. C'est ce
que de nombreuses autres compagnies appellent une publication.
Toutes les versions de MySQL passent par nos tests et bancs d'essais standards pour nous assurer qu'elles peuvent être utilisées sans danger. Les séries de tests s'améliorent en permanence car les tests standards sont étendus dans le temps pour traquer tous les bogues précédemment trouvées.
Notez bien que toutes les versions de MySQL ont été testées au moins avec :
crash-me
Un autre test provient du fait que nous avons la version la plus récente de MySQL dans notre propre environnement de production interne, sur au moins une machine. Nous avons plus de 100 Go de données à manipuler.
Cette section décrit les répertoires par défaut crées en installant les distributions binaires et les distributions de sources.
Une distribution binaire est installée en la décompressant dans le répertoire d'installation que vous avec choisis (souvent `/usr/local/mysql') et crée les répertoires suivants à cet endroit :
| Répertoire | Contenu du répertoire |
| `bin' | Programmes clients et le serveur mysqld
|
| `data' | Fichiers de log et bases de données |
| `include' | Fichiers (entêtes) inclus |
| `lib' | Librairies |
| `scripts' | mysql_install_db
|
| `share/mysql' | Fichiers de messages d'erreurs |
| `sql-bench' | Benchmarks |
Une distribution des sources est installée après que vous l'ayez configuré et compilé. Par défaut, l'installation se fait dans `/usr/local', dans les sous-répertoires suivants :
| Répertoire | Contenu du répertoire |
| `bin' | Programmes clients et scripts |
| `include/mysql' | Fichiers (entêtes) inclus |
| `info' | Documentation au format Info |
| `lib/mysql' | Librairies |
| `libexec' | Le serveur mysqld
|
| `share/mysql' | Fichiers de messages d'erreurs |
| `sql-bench' | Benchmarks et test crash-me
|
| `var' | Fichiers de log et bases de données |
Dans le répertoire d'installation, les dispositions d'une installation des sources diffère d'une installation binaire des façons suivantes :
mysqld est installé dans le répertoire `libexec' plutôt que
dans le répertoire `bin'.
mysql_install_db est installé dans le répertoire `/usr/local/bin' plutôt
que dans `/usr/local/mysql/scripts'.
Vous pouvez créer votre propre installation binaire à partir d'une distribution de sources compilées en exécutant le script `scripts/make_binary_distribution'.
MySQL évolue rapidement ici, à MySQL AB, et nous voulons le partager avec les autres utilisateurs de MySQL. Nous essayons de faire une nouvelle version à chaque fois que nous avons implanté des fonctionnalités qui seront utiles à d'autres.
Nous essayons aussi d'aider les utilisateurs dont les requêtes sont faciles à programmer. Nous prenons en considération tout ce que nos clients nous demandent, et nous accordons une attention particulière à nos clients qui ont pris une licence e-mail étendue.
Personne n'est obligé de télécharger une nouvelle version. La sections News vous indiquera si la nouvelle version contient une fonctionnalité que vous attendez. See section C Historique des changements MySQL.
Nous utilisons la politique suivante, lors de la mise à jour de MySQL :
La version stable actuelle est la version 3.23; nous avons déjà commencé à développer activement la version 4.0. Les bogues seront corrigés dans cette version. Nous ne croyons pas à un gel complet, car cela laisserait en plan des corrections de bogues, et des listes de souhaites. ``Un peu gelé'' signifie que nous pourrions apporter de petits ajouts qui ``n'affecterons pas presque sûrement pas le fonctionnement''.
MySQL utilise un système de numérotation légèrement différent pour les autres produits. En général, il est relativement sûr d'utiliser une version qui a été publiée il y a quelques semaines sans être remplacée par une nouvelle version. See section 2.2.6 Quelle version de MySQL utiliser ?.
Nous mettons beaucoup d'efforts et de temps à la publication de version sans bugs. A notre connaissance, nous n'avons jamais publié une version de MySQL qui contienne un bug fatal connu et reproductible.
Un bug fatal est un problème qui crashe MySQL en utilisation normal, fournit des réponses erronnées à des requêtes classiques, ou a des problèmes de sécurité.
Nous documentons tous les problèmes ouverts, bugs et tout ce qui dépend des choix de conceptions. See section 1.8.5 Erreurs connues, et limitations de MySQL.
Nous avons pour but de corriger tout ce qui est corrigeable, sans risquer la stabilité des versions de MySQL. Dans certains cas, cela signifie que nous pouvons corriger une erreur dans la version de développement, mais pas dans la version stable. Naturellement, nous documentons ces problèmes, pour que les utilisateurs soient avertis.
Voici une description de notre processus de publication :
'a' pour la plate-forme. Grâce à notre large
communauté d'utilisateurs, les problèmes sont trouvés rapidement.
Comme service, nous, MySQL AB, proposons un jeu de distributions binaires de MySQL qui sont compilés sur nos machines, ou les machines auxquelles nos clients nous ont gentiment donné accès.
Ces distributions sont générées avec le script scripts/make_binary_distribution
et sont configurés avec les compilateurs et options suivantes :
gcc 2.95.3
CFLAGS="-O2 -mcpu=pentiumpro" CXX=gcc CXXFLAGS="-O2 -mcpu=pentiumpro -felide-constructors" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --disable-shared --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static
ecc (Intel C++ Itanium Compiler 7.0)
CC=ecc CFLAGS="-O2 -tpp2 -ip -nolib_inline" CXX=ecc CXXFLAGS="-O2 -tpp2 -ip -nolib_inline" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile
ecc (Intel C++ Itanium Compiler 7.0)
CC=ecc CFLAGS=-tpp1 CXX=ecc CXXFLAGS=-tpp1 ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile
ccc (Compaq C V6.2-505 / Compaq C++ V6.3-006)
CC=ccc CFLAGS="-fast -arch generic" CXX=cxx CXXFLAGS="-fast -arch generic -noexceptions -nortti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-mysqld-ldflags=-non_shared --with-client-ldflags=-non_shared --disable-shared
egcs 1.1.2
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --disable-shared
gcc 2.95.3
CFLAGS="-O2" CXX=gcc CXXFLAGS="-O2 -felide-constructors" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static
gcc 3.2
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --with-named-z-libs=no --with-named-curses-libs=-lcurses --disable-shared
gcc 2.95.3
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --with-named-curses-libs=-lcurses --disable-shared
cc-5.0 (Sun Forte 5.0)
CC=cc-5.0 CXX=CC ASFLAGS="-xarch=v9" CFLAGS="-Xa -xstrconst -mt -D_FORTEC_ -xarch=v9" CXXFLAGS="-noex -mt -D_FORTEC_ -xarch=v9" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --with-named-z-libs=no --enable-thread-safe-client --disable-shared
gcc 3.2.1
CFLAGS="-O2 -mcpu=powerpc -Wa,-many " CXX=gcc CXXFLAGS="-O2 -mcpu=powerpc -Wa,-many -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --disable-shared
gcc 3.2.1
CFLAGS="-O2 -mcpu=powerpc -Wa,-many" CXX=gcc CXXFLAGS="-O2 -mcpu=powerpc -Wa,-many -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --with-server-suffix="-pro" --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --disable-shared --with-innodb
gcc 3.1
CFLAGS="-DHPUX -I/opt/dce/include -O3 -fPIC" CXX=gcc CXXFLAGS="-DHPUX -I/opt/dce /include -felide-constructors -fno-exceptions -fno-rtti -O3 -fPIC" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-pthread --with-named-thread-libs=-ldce --with-lib-ccflags=-fPIC --disable-shared
aCC (HP ANSI C++ B3910B A.03.33)
CC=cc CXX=aCC CFLAGS=+DD64 CXXFLAGS=+DD64 ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared
gcc 3.1
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared
gcc 2.95.4
CFLAGS=-DHAVE_BROKEN_REALPATH ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --with-named-z-libs=not-used --disable-shared
Les paquets binaires suivants sont compils sur des systmes que des tiers prtent gracieusement MySQL AB. Notez que ces paquets sont fournis gracieusement. Comme MySQL AB n'a pas le contrle complet sur ces systmes, nous ne pouvons proposer qu'un support limit sur ces systmes.
gcc 2.95.3
CFLAGS="-O3 -mpentium" LDFLAGS=-static CXX=gcc CXXFLAGS="-O3 -mpentium -felide-constructors" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --enable-thread-safe-client --disable-shared
CC 3.2
CC=cc CFLAGS="-O" CXX=CC ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --enable-thread-safe-client --disable-shared
cc/cxx (Compaq C V6.3-029i / DIGITAL C++ V6.1-027)
CC="cc -pthread" CFLAGS="-O4 -ansi_alias -ansi_args -fast -inline speed -speculate all" CXX="cxx -pthread" CXXFLAGS="-O4 -ansi_alias -fast -inline speed -speculate all -noexceptions -nortti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-prefix=/usr/local/mysql --with-named-thread-libs="-lpthread -lmach -lexc -lc" --disable-shared --with-mysqld-ldflags=-all-static
gcc 3.0.1
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared
Les options suivantes de compilations ont t utilises pour les paquets binaires de MySQL, qui taient fournis auparavant. Ces paquets ne sont plus mis jours, mais les options de compilation sont conserves ici pour mmoire.
gcc 2.95.2
CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3 -mpentiumpro -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --enable-assembler --with-mysqld-ldflags=-all-static --disable-shared --with-extra-charsets=complex
gcc 2.7.2.1
CC=gcc CXX=gcc CXXFLAGS="-O3 -felide-constructors" ./configure --prefix=/usr/local/mysql --disable-shared --with-extra-charsets=complex --enable-assembler
egcs 1.0.3a or 2.90.27 or gcc 2.95.2 and newer
CC=gcc CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-low-memory --with-extra-charsets=complex --enable-assembler
gcc 2.8.1
CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql --with-low-memory --with-extra-charsets=complex
gcc 2.7.2.1
CC=gcc CXX=gcc CXXFLAGS=-O ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex
gcc 2.7.2
CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex
gcc 2.7.2.2
CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex
Si vous avez des options plus optimales pour l'une des configurations précédement listées, vous pouvez toujours nous en faire part sur la liste de distribution des développeurs (internals@lists.mysql.com).
Les distributions RPM antérieures à la version 3.22 de MySQL sont contribuées par nos utilisateurs. A partir de la version 3.22, les RPM sont générés par nous chez MySQL AB.
Si vous voulez compiler une version de débogage de MySQL, vous devez ajouter
--with-debug ou --with-debug=full aux lignes de configurations
précédentes et effacer les options -fomit-frame-pointer.
Pour les distributions Windows, voyez section 2.1.2 Installer MySQL sous Windows.
Vous pouvez aussi vous référer à section 2.1.2.1 Installation des binaires, section 2.1.1 Installer MySQL sous Linux, et section 8.4.13 Compiler les clients.
Vous aurez besoin des outils suivants pour installer les binaires MySQL :
gunzip pour décompresser la distribution.
tar pour désarchiver la distribution. GNU tar est connu
pour fonctionner. Le tar de Sun connaît quelques problèmes.
L'utilisation de fichiers RPM (RedHat Package Manager) est une autre façon d'installer MySQL sous Linux. See section 2.1.1 Installer MySQL sous Linux.
Si vous rencontrez des problèmes, utilisez toujours mysqlbug pour
poster des questions à mysql@lists.mysql.com. Même si le
problème n'est pas un bogue, mysqlbug rassemble des informations sur le
système qui aidera les autres à résoudre votre problème.
En n'utilisant pas mysqlbug, vous amoindrissez vos chances d'obtenir une solution
à votre problème ! Vous trouverez mysqlbug dans le répertoire
`scripts' après avoir désarchivé la distribution. See section 1.7.1.3 Comment rapporter un bogue ou un problème.
Les commandes de base que vous devez lancer pour installer et utiliser MySQL à partir des binaires sont les suivantes :
shell> groupadd mysql shell> useradd -g mysql mysql shell> cd /usr/local shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf - shell> ln -s full-path-to-mysql-VERSION-OS mysql shell> cd mysql shell> scripts/mysql_install_db shell> chown -R root . shell> chown -R mysql data shell> chgrp -R mysql . shell> bin/safe_mysqld --user=mysql & or shell> bin/mysqld_safe --user=mysql & si vous utilisez MySQL 4.x
Vous pouvez ajouter des nouveaux utilisateurs en utilisant le script
bin/mysql_setpermission si vous installez les modules Perl DBI et
Msql-Mysql-modules.
Une description plus détaillée est disponible ci-dessous.
Pour installer une distribution binaire, suivez ces étapes et procédez à section 2.4 Configuration après l'installation, et tests, pour la configuration et les tests consécutifs à l'installation :
root.)
tar
compressées et ont des noms de la forme `mysql-VERSION-OS.tar.gz', où
VERSION est un nombre (par exemple, 3.21.15), et OS
indique le type de système d'exploitation pour lequel la distribution est
compilée (par exemple, pc-linux-gnu-i586).
-max, cela signifie que
le binaire supporte les tables avec les transactions ainsi que d'autres
fonctionnalités. See section 4.7.5 mysqld-max, la version étendue du serveur mysqld. Veuillez noter que tous
les binaires sont compilés à partir du même code source.
mysqld fonctionnera :
shell> groupadd mysql shell> useradd -g mysql mysqlCes commandes ajoutent le groupe
mysql group et l'utilisateur mysql. La
syntaxe de useradd et de groupadd peut varier de façon significative
suivant les versions d'Unix. Elles peuvent aussi s'appeler adduser et
addgroup. Vous pouvez aussi souhaiter nommer le groupe et l'utilisateur autrement que
mysql.
shell> cd /usr/local
shell> gunzip < /chemin/de/mysql-VERSION-OS.tar.gz | tar xvf - shell> ln -s chemin-complet-de-mysql-VERSION-OS mysqlLa première commande crée un répertoire `mysql-VERSION-OS'. La seconde commande crée un lien symbolique vers ce répertoire. Cela vous permet de vous référer plus facilement au répertoire d'installation en appelant `/usr/local/mysql'.
shell> cd mysqlVous y trouverez de nombreux fichiers et sous-répertoires. Les plus importants lors de l'installation sont les sous-répertoires `bin' et `scripts'.
PATH de telle façon que votre interpréteur de
commandes trouve les programmes facilement. See section E Variables d'environnement.
mysql_install_db utilisé pour
initialiser la base de données mysql contenant les tables de privilèges servant à gérer les permissions d'accès au serveur.
mysqlaccess et placer la distribution MySQL à un
endroit non standard, vous devez changer l'endroit où mysqlaccess
s'attend à trouver le client mysql. Editez le script `bin/mysqlaccess'
aux environs de la ligne 18. Cherchez une ligne qui ressemble à ceci :
$MYSQL = '/usr/local/bin/mysql'; # path to mysql executableChangez le chemin pour avoir le bon endroit où
mysql est actuellement
stocké sur votre système. Si vous ne le faites pas, vous obtiendrez une erreur
Broken pipe quand vous lancerez mysqlaccess.
shell> scripts/mysql_install_dbVeuillez noter que les versions de MySQL antérieures à la version 3.22.10 démarraient le serveur MySQL quand vous exécutiez
mysql_install_db. Ce n'est plus le cas.
root en tant que propriétaire des binaires et l'utilisateur avec les droits duquel vous ferez fonctionner mysqld comme propriétaire du répertoire de données :
shell> chown -R root /usr/local/mysql shell> chown -R mysql /usr/local/mysql/var shell> chgrp -R mysql /usr/local/mysqlLa première commande change les attributs
owner en faveur de l'utilisateur
root, la seconde change les attributs owner du répertoire de données
en faveur de l'utilisateur mysql, et la troisième change les attributs
group en faveur du groupe mysql.
DBI/DBD,
référez-vous à section 2.7 Commentaires sur l'installation de Perl.
support-files/mysql.server à l'endroit où votre
système stocke ses fichiers de démarrage. Davantage d'informations sont disponibles
dans le script support-files/mysql.server lui-même et dans section 2.4.3 Lancer et arrêter MySQL automatiquement..
Après que tout soit installé, vous devez initialiser et tester votre distribution :
shell> /usr/local/mysql/bin/safe_mysqld --user=mysql &
Procédez maintenant à section 4.7.2 safe_mysqld, le script père de mysqld, et à la
See section 2.4 Configuration après l'installation, et tests.
Avant de procéder à l'installation à partir des sources, vérifiez auparavant que notre distribution binaire pour votre plate-forme ne fonctionne pas. Nous faisons un maximum d'efforts pour nous assurer que nos binaires sont compilés avec les meilleures options possibles.
Vous avez besoin des outils suivants pour compiler et installer MySQL à partir des sources :
gunzip pour décompresser la distribution.
tar pour désarchiver la distribution. GNU tar est connu
pour fonctionner. Le tar de Sun connaît quelques problèmes.
gcc >= 2.95.2, egcs >= 1.0.2
ou egcs 2.91.66, SGI C++, et SunPro C++ sont quelques-uns des compilateurs
réputés pour fonctionner. libg++ n'est pas nécessaire si vous
utilisez gcc. gcc 2.7.x souffre d'un bogue qui l'empêche de compiler
quelques fichiers C++ correctement écrits, tels que `sql/sql_base.cc'. Si vous
disposez seulement de gcc 2.7.x, vous devez mettre à jour votre gcc
afin de compiler MySQL. gcc 2.8.1 est aussi reconnu pour rencontrer des
problèmes sur certaines plate-formes, il devrait donc être désactivé
si un autre compilateur existe pour la plate-forme.
gcc >= 2.95.2 est recommandé pour compiler MySQL dans ses versions 3.23.x.
make. GNU make est une fois de plus recommandé et est
quelquefois requis. Si vous rencontrez des problèmes, nous vous recommandons
d'essayer GNU make 3.75 ou supérieur.
Si vous utilisez une version récente de gcc, suffisamment récente
pour reconnaître l'option -fno-exceptions, il est très important
que vous l'utilisiez. Sinon, vous risquez de compiler un binaire qui crashe aléatoirement. Nous recommandons donc l'utilisation de -felide-constructors
et -fno-rtti en même temps que -fno-exceptions. En cas de doute, faites
la chose suivante :
CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions \
-fno-rtti" ./configure --prefix=/usr/local/mysql --enable-assembler \
--with-mysqld-ldflags=-all-static
Sur la plupart des systèmes, il en résultera un binaire rapide et stable.
Si vous rencontrez des problèmes, utilisez toujours mysqlbug pour
poster des questions à mysql@lists.mysql.com. Même si le
problème n'est pas un bogue, mysqlbug rassemble des informations sur le
système qui aidera les autres à résoudre votre problème.
En n'utilisant pas mysqlbug, vous amoindrissez vos chances d'obtenir une solution
à votre problème ! Vous trouverez mysqlbug dans le répertoire
`scripts' après avoir désarchivé la distribution.
See section 1.7.1.3 Comment rapporter un bogue ou un problème.
Les commandes de base que vous devez exécuter pour installer MySQL à partir des sources sont :
shell> groupadd mysql shell> useradd -g mysql mysql shell> gunzip < mysql-VERSION.tar.gz | tar -xvf - shell> cd mysql-VERSION shell> ./configure --prefix=/usr/local/mysql shell> make shell> make install shell> scripts/mysql_install_db shell> chown -R root /usr/local/mysql shell> chown -R mysql /usr/local/mysql/var shell> chgrp -R mysql /usr/local/mysql shell> cp support-files/my-medium.cnf /etc/my.cnf shell> /usr/local/mysql/bin/safe_mysqld --user=mysql & ou shell> /usr/local/mysql/bin/mysqld_safe --user=mysql & si vous utilisez MySQL 4.x.
Si vous voulez avoir le support des tables InnoDB, vous devez éditer le fichier
/etc/my.cnf et enlever le caractère # avant le paramètre qui commence par innodb_....
See section 4.1.2 Fichier d'options `my.cnf', et section 7.5.2 Options de démarrage InnoDB.
Si vous utilisez un fichier RPM source, faites :
shell> rpm --rebuild MySQL-VERSION.src.rpm
Cela produira un fichier RPM binaire que vous pourrez installer.
Vous pouvez ajouter des utilisateurs en lançant le script bin/mysql_setpermission si vous installez les modules Perl DBI et Msql-Mysql-modules.
Ci-dessous, une description plus détaillée.
Pour installer MySQL à partir des sources, suivez ces étapes et procédez à section 2.4 Configuration après l'installation, et tests, pour la configuration et les tests consécutifs à l'installation :
BDB ou BerkeleyDB.
Les distributions des sources MySQL sont fournies sous forme d'archive tar
compressées et ont des noms comme `mysql-VERSION.tar.gz', où
VERSION est un nombre comme 5.0.0-alpha.
mysqld fonctionnera :
shell> groupadd mysql shell> useradd -g mysql mysqlCes commandes ajoutent le groupe
mysql group et l'utilisateur mysql. La
syntaxe de useradd et de groupadd peut varier de façon significative suivant les
versions d'Unix. Elles peuvent aussi s'appeler adduser et addgroup.
Vous pouvez aussi souhaiter nommer le groupe et l'utilisateur autrement que mysql.
shell> gunzip < /path/to/mysql-VERSION.tar.gz | tar xvf -Cette commande crée un répertoire nommé `mysql-VERSION'.
shell> cd mysql-VERSIONNotez bien que vous devez alors configurer et compiler MySQL depuis ce répertoire racine. Vous ne pouvez pas le compiler à partir d'un autre répertoire.
shell> ./configure --prefix=/usr/local/mysql shell> makeQuand vous lancez la commande
configure, vous pouvez spécifier quelques options.
Lancez ./configure --help pour une liste des options disponibles.
La partie section 2.3.3 Options habituelles de configure, traite des options les plus utiles.
Si configure échoue, et que vous êtes sur le point d'envoyer un mail à
mysql@lists.mysql.com pour demander de l'aide, ajoutez s'il vous plait les quelques
lignes de `config.log' qui pourraient selon vous aider à résoudre le problème. Ajoutez
aussi les deux dernières lignes de sortie de configure si
configure s'arrête précipitemment. Envoyez le rapport de bogue en utilisant le script mysqlbug.
See section 1.7.1.3 Comment rapporter un bogue ou un problème.
Si la compilation échoue, référez-vous à section 2.3.5 Problèmes de compilation? pour de l'aide sur les problèmes les plus courants.
shell> make installVous aurez certainement besoin de lancer cette commande en tant que
root.
shell> scripts/mysql_install_dbVeuillez noter que les versions de MySQL antérieures à la version 3.22.10 démarraient le serveur MySQL quand vous exécutiez
mysql_install_db. Ce n'est plus le cas!
root en tant que propriétaire des binaires et l'utilisateur avec les droits duquel vous ferez fontionner mysqld comme propriétaire du répertoire de données :
shell> chown -R root /usr/local/mysql shell> chown -R mysql /usr/local/mysql/var shell> chgrp -R mysql /usr/local/mysqlLa première commande change les attributs
owner en faveur de l'utilisateur
root, la seconde change les attributs owner du répertoire de données
en faveur de l'utilisateur mysql, et la troisième change les attributs
group en faveur du groupe mysql.
DBI/DBD,
référez-vous à section 2.7 Commentaires sur l'installation de Perl.
support-files/mysql.server à l'endroit où votre
système stocke ses fichiers de démarrage. Davantage d'informations sont disponibles
dans le script support-files/mysql.server lui-même et dans section 2.4.3 Lancer et arrêter MySQL automatiquement..
Après que tout soit installé, vous devez initialiser et tester votre distribution :
shell> /usr/local/mysql/bin/safe_mysqld --user=mysql &
Si cette commande échoue immédiatement sur un mysqld daemon ended, vous pouvez
trouvez des informations dans le fichier `mysql-data-directory/'hostname'.err'.
La raison la plus courante est que vous avez déjà un autre serveur mysqld qui fonctionne. See section 4.1.4 Faire fonctionner plusieurs serveurs MySQL sur la même machine.
Procédez maintenant à la section 2.4 Configuration après l'installation, et tests.
Parfois, des patches sont publiés sur la liste de diffusion ou sont placés sur la page des patches sur le site de MySQL (http://www.mysql.com/downloads/patches.html).
Pour appliquer un patch venant de la liste de diffusion, sauvegardez le message qui contient le patch, placez-le dans le répertoire racine de vos sources MySQL et lancez les commandes suivantes :
shell> patch -p1 < patch-file-name shell> rm config.cache shell> make clean
Les patches venant du site FTP sont distribués sous forme de fichiers en texte clair
ou bien sous forme de fichiers compressés avec gzip. Appliquez un patch en
texte clair de la même façon qu'avec les patches de la liste de diffusion.
Pour appliquer un patch compressé, déplacez-vous dans le répertoire
racine de vos sources et lancez les commandes suivantes :
shell> gunzip < patch-file-name.gz | patch -p1 shell> rm config.cache shell> make clean
Après avoir appliqué un patch, suivez les instructions d'une installation
normale à partir des sources, à commencer par l'étape du
./configure. Après avoir lancé le make install,
redémarrez votre serveur MySQL.
Vous aurez certainement besoin d'arrêter tout autre serveur MySQL avant de lancer
make install. (Utilisez pour cela mysqladmin shutdown.) Certains
systèmes n'autorisent pas l'installation d'une nouvelle version d'un programme ; elle remplace la version qui est en train de s'exécuter.
configure
Le script configure vous donne un bon moyen de
contrôler la configuration de votre distribution MySQL.
Habituellement, vous faites cela en spécifiant
les options dans la ligne de commande de configure.
Vous pouvez aussi affecter le comportement de
configure en utilisant certaines variables
d'environnement. See section E Variables d'environnement.
Pour une liste des options supportées par
configure, exécutez cette commande :
shell> ./configure --help
Les options de configure les plus utilisées
sont décrites ici :
--without-server :
shell> ./configure --without-serverSi vous n'avez pas de compilateur C++,
mysql ne compilera
pas (c'est le programme client qui requière C++). Dans ce
cas, vous pouvez supprimer la partie de code dans configure
qui vérifie l'existence d'un compilateur C++, puis
exécuter ./configure avec l'option
--without-server. La compilation essaiera encore de construire
mysql, mais vous pouvez ignorer les messages d'erreurs
concernant `mysql.cc'. (Si make stoppe, essayez
make -k pour dire de continuer même si on
rencontre des erreurs.)
libmysqld.a) vous devez utiliser l'option
--with-embedded-server.
configure se rapprochant de l'une
des commandes suivantes :
shell> ./configure --prefix=/usr/local/mysql
shell> ./configure --prefix=/usr/local \
--localstatedir=/usr/local/mysql/data
La première change le préfixe de l'installation
pour que tout soit installé dans `/usr/local/mysql'
au lieu de `/usr/local' par défaut. La seconde commande
préserve le préfixe d'installation par défaut
mais change le répertoire par défaut pour les bases
de données (normalement `/usr/local/var') en
/usr/local/mysql/data.
Après que vous ayez compilé MySQL, vous pouvez changer
ces options dans les fichiers d'options. See section 4.1.2 Fichier d'options `my.cnf'.
configure comme celle-ci :
shell> ./configure --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sockNotez que le fichier donné doit avoir un chemin absolu ! Vous pourrez aussi changer le chemin vers `mysql.sock' plus tard en utilisant les fichiers d'options de MySQL. See section A.4.5 Comment protéger ou changer le fichier socket `/tmp/mysql.sock'.
configure de la manière suivante :
shell> ./configure --with-client-ldflags=-all-static \
--with-mysqld-ldflags=-all-static
gcc et n'avez pas libg++ ou libstdc++
d'installés, vous pouvez dire à configure d'utiliser gcc
en tant que compilateur C++ :
shell> CC=gcc CXX=gcc ./configureQuand vous utilisez
gcc en tant que compilateur C++, aucune
tentative de liaison avec libg++ ou libstdc++ ne sera
effectuée. Il peut être bon d'utiliser cette méthode même si vous
avez les librairies citées, car quelques versions de celles-ci ont
causé des problèmes à des utilisateurs MySQL par le passé.
Voici quelques variables d'environnement à définir selon le compilateur
que vous utilisez :
| Compilateur | Options recommandées |
| gcc 2.7.2.1 | CC=gcc CXX=gcc CXXFLAGS="-O3 -felide-constructors" |
| egcs 1.0.3a | CC=gcc CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" |
| gcc 2.95.2 | CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3 -mpentiumpro \ -felide-constructors -fno-exceptions -fno-rtti" |
| pgcc 2.90.29 ou plus récent | CFLAGS="-O3 -mpentiumpro -mstack-align-double" CXX=gcc \ CXXFLAGS="-O3 -mpentiumpro -mstack-align-double -felide-constructors \ -fno-exceptions -fno-rtti" |
--prefix=/usr/local/mysql --enable-assembler \ --with-mysqld-ldflags=-all-staticEn d'autres termes, la ligne de configuration ressemble à ce qui suit pour les versions récentes de gcc :
CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3 -mpentiumpro \ -felide-constructors -fno-exceptions -fno-rtti" ./configure \ --prefix=/usr/local/mysql --enable-assembler \ --with-mysqld-ldflags=-all-staticLes binaires que nous fournissons sur le site de MySQL à http://www.mysql.com/ sont tous compilés avec une optimisation totale et devraient être parfaits pour la plupart des utilisateurs. See section 2.2.10 Binaires compilés par MySQL AB. Il y a quelques choses que vous pouvez modifier pour rendre le binaire encore plus rapide, mais cela est réservé aux utilisateurs avancés. See section 5.5.3 Influences de la compilation et des liaisons sur la vitesse de MySQL. Si la génération échoue et produit des erreurs disant que votre compilateur ou outil de liaison n'est pas capable de créer la librairie partagée `libmysqlclient.so.#' (`#' étant un numéro de version), vous pouvez contourner ce problème en donnant l'option
--disable-shared à configure. Dans ce cas,
configure ne générera pas de librairie partagée
`libmysqlclient.so.#'.
DEFAULT pour les colonnes non-NULL (c'est à dire, les
colonnes qui ne peuvent être NULL). Cela fait générer des erreurs
aux requêtes INSERT si vous ne spécifiez pas explicitement une valeur
pour toutes les colonnes non-NULL. Pour supprimer l'utilisation des
valeurs par défaut, exécutez configure de cette façon :
shell> CXXFLAGS=-DDONT_USE_DEFAULT_FIELDS ./configure
--with-charset :
shell> ./configure --with-charset=CHARSET
CHARSET peut être l'un des big5, cp1251, cp1257,
czech, danish, dec8, dos, euc_kr,
gb2312, gbk, german1, hebrew, hp8,
hungarian, koi8_ru, koi8_ukr, latin1,
latin2, sjis, swe7, tis620, ujis,
usa7, ou win1251ukr.
See section 4.6.1 Le jeu de caractères utilisé pour les données et le stockage.
Si vous voulez convertir les caractères entre le serveur et le client,
regardez du côté de la commande SET CHARACTER SET.
See section 5.5.6 Syntaxe de SET.
Attention : Si vous changez les jeux de caractères après
avoir crée des tables, vous devrez exécuter
myisamchk -r -q --set-character-set=charset sur chaque table.
Vous index pourraient être stockés de manière incorrecte sinon.
(Cela peut survenir si vous installez MySQL, créez quelques tables,
puis reconfigurez MySQL pour qu'il utilise un jeu de caractères différent
et le réinstallez.)
Avec l'option --with-extra-charsets=LIST vous pouvez définir
les jeux de caractères additionnels à compiler dans le serveur.
Ici LIST est soit une liste de jeux de caractères séparés par
des espaces, soit complex pour inclure tous les jeux de caractères
ne pouvant être chargés dynamiquement, ou encore all pour inclure
tous les jeux de caractères dans les binaires.
--with-debug :
shell> ./configure --with-debugCela alloue un vérificateur d'allocation de mémoire qui peut trouver quelques erreurs et qui fournit des informations sur ce qui se produit. See section D.1 Déboguer un serveur MySQL.
--enable-thread-safe-client. Cela créera
une librairie libmysqlclient_r avec laquelle vous devez lier vos
applications threadées. See section 8.4.14 Comment faire un client MySQL threadé.
Attention : Vous devez lire cette partie seulement si vous voulez nous aider à tester notre nouveau code. Si vous souhaitez seulement faire fonctionner MySQL sur votre système, vous devriez utiliser la distribution d'une version standard (que ce soit une distribution sous forme de sources ou de binaire).
Pour obtenir notre arbre source de développement le plus réent, suivez les instructions suivantes :
BitKeeper à partir de
http://www.bitmover.com/cgi-bin/download.cgi. Vous aurez besoin de
Bitkeeper 2.0 ou supérieur pour accéder à notre dépôt.
BitKeeper, commencez par vous déplacer dans
le répertoire à partir duquel vous voulez travailler, et lancez l'une des
commandes suivantes pour dupliquer la branche MySQL de votre choix :
Pour dupliquer la branche 3.23, utilisez cette commande :
shell> bk clone bk://work.mysql.com:7000 mysql-3.23Pour dupliquer la branche 4.0, utilisez cette commande :
shell> bk clone bk://work.mysql.com:7001 mysql-4.0Pour dupliquer la branche 4.1, utilisez cette commande :
shell> bk clone bk://work.mysql.com:7004 mysql-4.1Dans les exemples précédents, l'arbre source sera déposé dans les sous-répertoires `mysql-3.23/', `mysql-4.0/', ou `mysql-4.1/' de votre répertoire courant. Le premier téléchargement de l'arbre source peut prendre un certain temps, selon la vitesse de votre connexion. Soyez patients.
autoconf 2.52, de automake 1.5,
de libtool 1.4, et de m4 pour lancer la prochaine série de commandes.
shell> cd mysql-4.0 shell> bk -r get -Sq shell> aclocal; autoheader; autoconf; automake; shell> ./configure # Ajoutez ici vos options favorites shell> makeSi vous obtenez des erreurs étranges pendant cette étape, vérifiez bien que vous avez vraiment installé
libtool!
Une collection de nos scripts de configuration les plus courants de trouve dans le
sous-répertoire `BUILD/'. Si vous êtes fainéants, vous pouvez
utiliser `BUILD/compile-pentium-debug'. Pour compiler sur une architecture
différente, modifiez ce script en enlevant les drapeaux spécifiques au
Pentium.
make install. Prenez garde sur des
machines de production. Cette commande pourrait écraser votre installation actuelle.
Si vous avez une autre installation de MySQL, nous vous recommandons de lancer
./configure avec des valeurs des options prefix, with-tcp-port, et
unix-socket-path différentes de celles de votre serveur de production.
make test. See section 9.1.2 Suite de test de MySQL.
make et que la distribution ne
compile pas, envoyez un rapport de l'incident à bugs@lists.mysql.com. Si
vous avez installé la dernière version des indispensables outils GNU, et
qu'ils échouent dans l'analyse de vos fichiers de configuration, envoyez aussi un
rapport. D'autre part, si vous exécutez aclocal et que vous obtenez l'erreur
command not found ou un problème du même type, n'envoyez pas de rapport.
A la place, assurez vous que les outils nécessaires sont bien installés et que
votre variable PATH est configurée de telle façon que votre
interpréteur de commandes les trouvent.
bk clone pour obtenir l'arbre
source, vous devez lancer régulièrement bk pull pour obtenir les mises
à jour.
bk sccstool. Si vous apercevez des différences
anormales ou sur lesquelles vous avez des questions, n'hésitez pas à envoyer
un e-mail à internals@lists.mysql.com. De même, si vous pensez avoir
une meilleure méthode pour traiter un problème, envoyez un e-mail
accompagné d'un patch à la même adresse.
bk diffs vous fournira un patch après que vous ayez fait vos changements aux
sources. Si vous n'avez pas le temps de coder votre idée, envoyez en juste une
description.
BitKeeper dispose d'une aide agréable à laquelle vous pouvez
accéder via bk helptool.
bk ci ou bk citool) postera un message avec
un aperçu des changements à notre liste de diffusion interne, à la
façon habituelle des propositions openlogging.org avec seulement les commentaires des
changements. Généralement, vous n'aurez pas besoin d'utiliser commit (l'arbre
public interdisant les bk push), mais plutôt d'utiliser la méthode
bk diffs décrite plus haut.
Tous les programmes MySQL compilent proprement chez nous, sans aucune
alerte sur Solaris avec gcc. Sur d'autres systèmes, des
alertes peuvent apparaître à cause de différences dans le système
d'inclusions. Voyez section 2.3.6 Notes relatives aux MIT-pthreads pour les alertes qui peuvent
apparaître avec MIT-pthreads. Pour d'autres problèmes, voyez la liste
suivante.
La solution à de nombreux problèmes implique une reconfiguration. Si vous avez besoin de faire une reconfiguration voici quelques conseils généraux :
configure est exécuté après une première exécution, il peut utiliser
des informations qui ont été rassemblées durant une première invocation. Ces
informations sont stockées dans le fichier `config.cache'. Lorsque configure
est lancé, il commence par regarder dans ce fichier, et lire le contenu qui existe,
en supposant que ces données sont toujours correctes. Cette supposition est
invalide si vous faîtes une reconfiguration.
configure, vous devez exécuter à nouveau make
pour recompiler. Toutefois, vous devrez peut être supprimer les vieux fichiers d'objets
qui ont été compilé en utilisant différentes configurations précédentes.
Pour éviter d'utiliser de vieilles informations de configuration, ou des vieux fichiers
d'objet, vous pouvez utiliser ces commandes, avant configure :
shell> rm config.cache shell> make clean
Alternativement, vous pouvez aussi utiliser make distclean.
La liste suivante décrit certains problèmes lors de la compilation de MySQL, qui surviennent souvent :
Internal compiler error: program cc1plus got fatal signal 11 ou Out of virtual memory ou Virtual memory exhaustedLe problème est que
gcc requiert de grandes quantité de mémoire pour compiler
`sql_yacc.cc' avec les fonctions inline. Essayez d'exécuter configure avec
l'option --with-low-memory :
shell> ./configure --with-low-memoryCette option ajoute
-fno-inline dans la ligne de compilation, si vous utilisez
gcc et -O0 si vous utilisez autre chose. Vous pouvez essayer
--with-low-memory même si il vous reste suffisamment de mémoire, et que vous
ne pensez pas être limité. Ce problème a été observé sur des systèmes avec
de généreuses configurations, et --with-low-memory résout ce problème.
configure choisit c++ comme compilateur, et
GNU c++ pour les liens avec -lg++. Si vous utilisez gcc,
ce comportement peut poser les problèmes suivants :
configure: error: installation or configuration problem: C++ compiler cannot create executables.Vous pourriez aussi observer des problèmes durant la compilation, avec
g++, libg++ ou libstdc++.
La cause de ces problèmes est que vous avez peut être que vous n'avez pas g++,
ou que vous avez g++ mais pas libg++, ou libstdc++. Regardez
le fichier de log `config.log'. Il va sûrement contenir la raison exacte du mauvais
fonctionnement de votre compilateur. Pour contourner ce problème, vous pouvez utiliser
gcc comme compilateur C++. Essayez de modifier la variable d'environnement CXX
avec la valeur "gcc -O3". Par exemple :
shell> CXX="gcc -O3" ./configureCela fonctionne car
gcc compile les sources C++ aussi bien que g++,
mais il n'est pas lié avec libg++ ou libstdc++ par défaut.
Un autre moyen pour régler ces problèmes, bien sur, est d'installer
g++, libg++ et libstdc++. Nous vous recommandons toutefois
de ne pas utiliser libg++ ou libstdc++ avec MySQL car cela ne fera
qu'accroître la taille de votre exécutable binaire, sans vous apporter
d'avantages. Par le passé, certaines versions de ces librairies ont posé des problèmes
étranges aux utilisateurs MySQL.
make en GNU make:
making all in mit-pthreads make: Fatal error in reader: Makefile, line 18: Badly formed macro assignment ou make: file `Makefile' line 18: Must be a separator (: ou pthread.h: No such file or directorySolaris et FreeBSD sont connus pour avoir des problèmes avec
make.
GNU make version 3.75 est reconnu pour fonctionner.
CFLAGS et CXXFLAGS. Vous pouvez aussi spécifier le nom du compilateur
via les variables CC et CXX. Par exemple :
shell> CC=gcc shell> CFLAGS=-O3 shell> CXX=gcc shell> CXXFLAGS=-O3 shell> export CC CFLAGS CXX CXXFLAGSVoyez section 2.2.10 Binaires compilés par MySQL AB, pour avoir une liste des définitions des options disponibles sur divers systèmes.
gcc :
client/libmysql.c:273: parse error before `__attribute__'
gcc 2.8.1 est connu pour fonctionner, mais nous recommandons l'utilisation de
gcc 2.95.2 ou egcs 1.0.3a.
mysqld, c'est que configure n'a pas correctement
détecter le dernier argument des fonctions
accept(), getsockname() ou getpeername() :
cxx: Error: mysqld.cc, line 645: In this statement, the referenced
type of the pointer value "&length" is "unsigned long", which
is not compatible with "int".
new_sock = accept(sock, (struct sockaddr *)&cAddr, &length);
Pour corriger ce problème, éditez le fichier `config.h' (qui est généré par
le fichier configure). Recherchez ces lignes :
/* Define as the base type of the last arg to accept */ #define SOCKET_SIZE_TYPE XXXRemplacez
XXX par size_t ou int, suivant votre système
d'exploitation. Notez que vous devrez faire cette manipulation à chaque fois
que vous exécuterez le script configure car configure regénère
`config.h'.
"sql_yacc.yy", line xxx fatal: default action causes potential...Cela indique que votre version de
yacc est inadéquate.
Vous devrez probablement réinstaller bison (la version GNU de
yacc) et l'utiliser à la place.
mysqld ou un client MySQL, exécutez le
script configure avec l'option --with-debug, puis recompilez
vos clients avec la nouvelle librairie. See section D.2 Débogage un client MySQL.
Cette section décrit quelques informations concernant l'utilisation des MIT-pthreads.
Notez que sur Linux vous ne devez pas utiliser les MIT-pthreads mais installer LinuxThreads ! See section 2.6.1 Notes relatives à Linux (toutes versions).
Si votre système ne fournit pas un support natif des threads, vous aurez besoin de construire MySQL en utilisant le package des MIT-pthreads. Cela inclut les anciens systèmes FreeBSD, SunOS 4.x, S