Mysql
 sql >> Base de données >  >> RDS >> Mysql

Installation macports mysql5 sous Snow Leopard

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";
}