Je viens d'installer mysql5 moi-même, et comme c'est toujours pénible, j'ai noté le processus que j'ai suivi. Cela a été fait sur Leopard, mais j'imagine que le processus est le même sur Snow Leopard et Lion. Il ne répond pas à toutes les questions initiales, mais au moins c'est une sorte de guide.
Installer Mysql
Tout d'abord, installez le serveur mysql5 avec :
sudo port install mysql5-server
Il suffit d'installer mysql5
n'installe pas le serveur.
Faites attention à la sortie de la console, elle comprend des instructions pour configurer les macports. Vous voudrez peut-être le copier et le coller dans un fichier texte. Ce qui suit est basé dessus.
Au lieu de mysql5-server
, vous pouvez utiliser un port tel que mysql55-server
, mysql56-server
, mariadb-server
ou percona-server
pour obtenir une version plus récente de mysql, ou un fork. Si vous le faites, faites attention à la sortie de la console, car les instructions suivantes sont basées sur mysql5-server
et devra être ajusté pour utiliser les bons exécutables et chemins.
S'il s'agit d'une nouvelle installation, configurez la base de données :
sudo -u _mysql mysql_install_db5
Cela génère des instructions génériques, qui, à mon avis, ne sont pas tout à fait appropriées pour les macports. À mon avis, la meilleure façon de charger mysql5 en tant que démon est d'utiliser la méthode de macport :
sudo port load mysql5-server
En plus de démarrer mysql5, cela le charge en permanence - il fonctionnera au démarrage. Pour arrêter cela plus tard :
sudo port unload mysql5-server
Si vous ne souhaitez pas l'exécuter en tant que démon, vous pouvez l'exécuter en ligne de commande :
sudo /opt/local/lib/mysql5/bin/mysqld_safe
Vérifiez qu'il est en cours d'exécution en vous connectant à la ligne de commande :
mysql5 -u root -p
Par défaut, le mot de passe est vide, appuyez simplement sur Entrée lorsque vous y êtes invité. Pour définir un mot de passe root :
/opt/local/lib/mysql5/bin/mysqladmin -u root password 'correct horse battery staple'
Les instructions pour configurer à la fois macports php et l'installation php native suivent.
Configurer Macports PHP
En supposant que macports php soit déjà installé et en cours d'exécution. Vous devez installer php5-mysql
(ou quelque chose comme php54-mysql
selon la version de php que vous utilisez):
sudo port install php5-mysql
Cela installe les pilotes mysql, mysqli et pdo.
Regardez maintenant dans votre /opt/local/etc/php5
répertoire, si vous n'avez pas déjà un php.ini
copier le fichier de configuration soit php.ini-development
ou php.ini-production
vers php.ini
. Maintenant éditez php.ini
et recherchez les lignes appropriées à ajouter :
pdo_mysql.default_socket=/opt/local/var/run/mysql5/mysqld.sock
et :
mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock
et :
mysqli.default_socket = /opt/local/var/run/mysql5/mysqld.sock
Si vous ne souhaitez pas les configurer, vous pouvez les définir explicitement dans votre script php lorsque vous vous connectez.
Si vous rencontrez des difficultés pour vous connecter, vous pouvez consulter les autres paramètres à proximité et comparer avec php.ini-development
et php.ini-production
pour voir ce qui a été modifié.
Utilisez ensuite le script ci-dessous, ou quelque chose de similaire pour tester que vous pouvez vous connecter avec php.
Configurer le système PHP
Le php d'OS X est livré avec le support mysql et mysqli intégré (mais pas pdo), donc tout ce que vous avez à faire est de définir le socket macport unix. L'emplacement par défaut est /opt/local/var/run/mysql5/mysqld.sock
. Trouvez le bon endroit dans /etc/php.ini
(si vous ne l'avez pas déjà, copiez-le depuis /etc/php.ini.default
) pour ajouter :
mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock
et :
mysqli.default_socket = /opt/local/var/run/mysql5/mysqld.sock
Si vous ne souhaitez pas les configurer, vous pouvez les définir explicitement dans votre script php lorsque vous vous connectez.
Script de test
Voici un script php pour vérifier qu'il peut se connecter. Évidemment, vous n'utiliserez normalement pas le compte root dans vos scripts php, vous voudrez peut-être d'abord créer un autre compte mysql pour tester la connexion. La connexion PDO ne fonctionnera pas pour le php natif car il n'a pas de pilotes PDO.
<?php
$username = 'root';
$password = 'correct horse battery staple';
/* Try mysql: */
$connection = mysql_connect('localhost', $username, $password);
if ($connection === FALSE) {
echo "Error connecting using mysql.\n\n";
echo "Error ".mysql_errno().": ".mysql_error()."\n\n";
}
else {
echo "Connected using mysql.\n\n";
mysql_close($connection);
}
/* Try mysqli: */
$connection = mysqli_connect('localhost', $username, $password);
if ($connection->connect_error) {
echo "Error connecting using mysqli:\n\n";
echo "Error ".$connection->connect_errno.": ".$connection->connect_error."\n\n";
}
else {
echo "Connected using mysqli.\n\n";
$connection->close();
}
/* Try pdo:
* Won't work for the version of php supplied with OS X. */
try {
$pdo = new PDO('mysql:host=localhost', $username, $password);
echo "Connected using PDO.\n\n";
$pdo = null;
}
catch(PDOException $e) {
echo "Error connecting using PDO:\n\n";
echo "Error ".$e->getCode().": ".$e->getMessage()."\n\n";
}