Première publication vendredi 18 mai 2001
Dernière modification mardi 22 janvier 2002 à 21:38.
Ces instructions sont aujourd'hui pratiquement inutiles. La manière, pour l'instant, la plus simple est de faire un tour sur le site de Marc Liyanage (<http://www.entropy.ch>) et d'y récupérer une version toute prête qui s'installe avec un simple... euh, un double clic. Un grand merci à lui pour le gros travail qu'il a fait et qu'il continue de faire.
Les fondations Unix de Mac OS X ouvrent la porte à l'installation de tout un tas de logiciels libres qui n'étaient auparavant accessibles qu'aux utilisateurs des nombreux dérivés d'Unics (voir la page d'Éric Lévénez ). Du coup un tas de gens s'amuse à installer plein de trucs. Comme la mode est à l'internet partout, les idoles du moment dans ce domaine sont : Apache (un logiciel serveur web), MySQL (un moteur de bases de données) et PHP (un langage de programmation permettant de relier les deux outils précédents). Les quelques lignes qui suivent vont décrire la procédure d'installation de MySQL sous Mac OS X. Je commencerais par un petit avertissement, ensuite je décrirais la phase de préparation. Puis viendront l'installation et les premières manipulations pour rendre l'outil utilisable.
Les instructions qui suivent sont destinées à des personnes ayant quelques notions d'Unix, de Linux ou de tout autre instrument de torture du même genre. Il va falloir taper des commandes au clavier et non pas utiliser une méthode moderne comme par exemple utiliser sa voix et un gant numérique pour donner des ordres à son ordinateur comme je le fais habituellement. Non, là on revient au temps des dinosaures où la moindre faute de frappe met en danger votre ordinateur et ou les réponses de l'ordinateur, quand il y en a, sont incompréhensibles.
Ensuite, il existe un petit problème de compatibilité entre MySQL et Mac OS X (ou peut être entre MySQL et moi). Une fois lancé, MySQL ne veut plus s'arrêter. Allez savoir pourquoi ! L'environnement à l'air de lui plaire et malheureusement, la seule manière de lui dire d'arrêter d'utiliser des cycles du processeur est de le tuer brutalement (MySQL pas le processeur). Ce qui pour un moteur de bases de données et quand même plutôt déconseillé.
Donc j'aurais tendance à vous donner les conseils suivants :
Si vous aviez déjà installé une version de MySQL sur votre Mac, surtout consultez le site MySQL et lisez bien les instructions concernant la mise à jour pour éviter de perdre des bases de données existantes.
Enfin, les instructions qui suivent sont valables pour un utilisateur ayant le droit d'administrer Mac OS X.
Il n'est possible d'installer MySQL avec la méthode décrite ici que si les outils de developpement ont été installés sur votre machine. La méthode décrite ici a été testée avec Mac OS version 10.1.2, les outils développeur Mac OS X de décembre 2001 et MySQL 3.23.47, sur un iMac et sur un PowerBook G4. Pour les versions précédentes de Mac OS, des outils développeurs et de MySQL il y avait quelques modifications à faire avant l'installation, je ne les ai pas indiqué ici.
La préparation va consister à créer un nouvel utilisateur, et ensuite, avec des commandes d'un shell, à créer un dossier de travail, télécharger les sources de MySQL, les configurer et les compiler.
Utilisez la méthode décrite dans le document Création d'un utilisateur spécial sous Mac OS X pour créer un groupe "mysql" (name = "mysql
", gid = "401
") ainsi qu'un utilisateur "mysql" (name = "mysql
", realname = "Serveur MySQL"
, home = "/usr/local/mysql/mysql_home
", uid = "401
", gid = "401
", _writers_passwd = "mysql
" ).
Pour la suite des opérations nous allons utiliser les commandes d'un shell et pour cela nous allons utiliser l'application Terminal. Elle se trouve dans le sous dossier "Utilities" (utilitaires) du dossier "Applications".
• Lancer l'application "Terminal". Une fenêtre apparait. Un nouveau shell a été automatiquement démarré et attend vos commandes.
• Si ce dossier n'existe pas créer le dossier "Installations".
mkdir Installations
• "Déplacez-vous" dans ce dossier.
cd Installations
• Téléchargez les sources de MySQL
curl -O "ftp://ftp.free.fr/pub/MySQL/Downloads/MySQL-3.23/mysql-3.23.47.tar.gz"
• Décompressez les fichiers sources.
tar xzf mysql-3.23.47.tar.gz
• Déplacez-vous dans le dossier des sources.
cd mysql-3.23.47
• Configurez les fichiers.
./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --with-server-suffix=-max
--with-bdb --with-innodb --with-mysqld-user=mysql --enable-assembler --with-comment
--with-debug
La commande configure va d'une part
prendre en compte les options qu'on lui indique, d'autre part faire toute
une série de vérifications pour savoir de quoi est capable le système courant
et modifier les fichiers en conséquence. L'option "--prefix=/usr/local/mysql
" permet d'indiquer l'endroit où seront installés les fichiers de MySQL. L'option "--with-extra-charsets=complex
" permet d'utiliser des encodages de caractères sur plus de 8 bits. L'option "--with-server-suffix=-max
" indique à MySQL qu'il devra ajouter "max" à sa réponse aux demandes d'identification qui lui seront adressées. L'option "--with-bdb
" permet d'installer les outils de gestion des bases Berkeley, l'option "--with-innodb
" celle des outils innodb. Et enfin l'option "--with-mysqld-user=mysql
" indique que MySQL devra fonctionner en tant qu'utilisateur "mysql
". La phase de configuration peut être assez longue.
• Créez MySQL (compilation des outils, bibliothèques et édition des liens).
make
C'est la partie la plus longue. Il est temps de faire une pause et de prendre un café.
• Installez MySQL.
sudo make install
La commande sudo
permet de lancer une commande en tant que super utilisateur (root). Lors
d'une première invocation le mot de passe de l'utilisateur (pas celui de
root) est demandé et si l'utilisateur est autorisé, la commande est exécutée.
Il est ensuite possible de lancer plusieurs sudo
sans que le
mot de passe soit demandé. Au bout d'un moment (je crois que le délai normal
est de cinq minutes) il est à nouveau nécessaire de taper son mot de passe.
La commande make install
va installer tout les outils nécessaires au fonctionnement de MySQL dans le dossier /usr/local/mysql
.
Bon, voilà, MySQL est installé. Mais il n'est pas utilisable pour l'instant. Il faut d'abord préparer la base initiale qui permet de gérer les droits d'accès, Ensuite il faudra lancer le serveur MySQL, donner un mot de passe à l'utilisateur principal, créer un utilisateur et enfin commencer à jouer.
• Préparez la base initiale. Cette étape n'est nécessaire que lors d'une première installation.
sudo scripts/mysql_install_db
sudo chown -R mysql /usr/local/mysql/var
sudo chmod 750 /usr/local/mysql/var
• Lancez le serveur mysqld.
sudo /usr/local/mysql/bin/safe_mysqld &
• Arrêtez le serveur.
/usr/local/mysql/bin/mysqladmin -u root -p shutdown
À partir de la version 3.23.47, la commande ci dessous interrompt le serveur.
Si la commande ci-dessus ne fonctionnait pas il est possible d'utiliser une méthode plus sauvage et de détruire les différents processus mysqld. Lancez la commande suivante pour connaitre ces processus.
ps -aux | grep "mysql"
Interrompez ensuite tous les processus de MySQL.
kill -9 pid
• Une fois le serveur MySQL lancé, changez le mot de passe de l'utilisateur principal. Cet utilisateur s'appelle root. Par défaut l'utilisateur root de MySQL n'a pas de mot de passe. Attention les droits d'accès MySQL sont indépendants des droits d'accès Mac OS X. MySQL a sa propre gestion des utilisateurs et de leurs droits.
Vous pouvez changer le mot de passe de root en utilisant mysqladmin.
/usr/local/mysql/bin/mysqladmin -u root -p password 'tArTeMpiOn'
/usr/local/mysql/bin/mysqladmin -u root -h localhost -p password 'tArTeMpiOn'
Vous pouvez aussi utilisez le client MySQL en tant que root.
mysql -u root mysql
Une fois le client connecté vous pouvez taper les commandes suivantes pour changer le mot de passe de root.
UPDATE user SET Password=PASSWORD('new_password') WHERE user='root';
FLUSH PRIVILEGES;
Les lignes commançant par "shell>
" indiquent des commandes à taper au niveau du shell et celles commençant par "mysql>
" indiquent les commandes à taper une fois le client mysql lancé.
•Vérifier si le serveur MySQL fonctionne.
shell> /usr/local/mysql/bin/mysqladmin version
• Lancer le client mysql.
shell> /usr/local/mysql/bin/mysql -u identifiant -p
Cette commande lance le client mysql pour l'utilisateur "identifiant" et demande le mot de passe pour cet utilisateur.
• Quitter le client mysql.
mysql> quit
• Créer une base de données.
shell> mysqladmin -u root -p create nom_de_la_base
• Créer un utilisateur et des droits d'accès pour une base.
shell> mysql -u root -p
mysql> grant all on nom_de_la_base.* to nom_utilisateur@localhost identified by "mot_de_passe" with grant option
mysql> grant all on nom_de_la_base.* to nom_utilisateur@"%.site.org" identified by "mot_de_passe" with grant option
Les lignes ci-dessus donnent tous les droits possibles sur la base nom_de_la_base
à l'utilisateur nom_utilisateur
quand il est connecté à partir de la machine où se trouve le serveur mySQL ou à partir de n'importe quelle machine du domaine "site.org
".
Il est bien pratique d'avoir la documentation sous la main.
• Téléchargez la documentation au format HTML.
wget http://www.mysql.com/Downloads/Manual/manual-split.tar.gz
• Créez un dossier pour y rangez cette documentation.
sudo mkdir -p /usr/local/mysql/doc/html
• Décompressez la documentation dans ce dossier
sudo tar xzf manual-split.tar.gz -C /usr/local/mysql/doc/html
• Il n'y a pas de fichier "index.html" dans la dossier de la documentation MySQL. Créez un lien s'appelant "index.html" pointant vers la première page du manuel.
sudo ln -fsh /usr/local/mysql/doc/html/manual-split/manual_toc.html /usr/local/mysql/doc/html/manual-split/index.html
• Créez (s'il n'existe pas déjà) un dossier réservé aux documentations dans le dossier web de Mac OS X.
mkdir /Library/WebServer/Documents/doc
• Créez ensuite dans ce dossier un lien vers la documentation MySQL.
ln -fsh /usr/local/mysql/doc/html/manual-split /Library/WebServer/Documents/doc/mysql
Après presque vingt ans d'interface graphique, de fenêtres et de souris, en arriver là c'est un peu démoralisant, m'enfin c'est le progrès et je prépare un petit topo sur la programmation en cobol et l'utilisation des cartes perforées pour sauvegarder ses fichiers MP3 ;-)