Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Macports mysql5-Setup unter Snow Leopard

Ich habe gerade mysql5 selbst installiert, und da dies immer ein Problem ist, habe ich den Prozess notiert, dem ich gefolgt bin. Dies wurde auf Leopard durchgeführt, aber ich kann mir vorstellen, dass der Prozess auf Snow Leopard und Lion derselbe ist. Es beantwortet nicht alle ursprünglichen Fragen, aber es ist zumindest so etwas wie ein Leitfaden.

Mysql installieren

Installieren Sie zuerst den mysql5-Server mit:

sudo port install mysql5-server

Einfach mysql5 installieren installiert den Server nicht.

Achten Sie auf die Konsolenausgabe, sie enthält Anweisungen zum Einrichten von Macports. Vielleicht möchten Sie es kopieren und in eine Textdatei einfügen. Darauf basiert das Folgende.

Statt mysql5-server , könnten Sie einen Port wie mysql55-server verwenden , mysql56-server , mariadb-server oder percona-server um eine neuere Version von mysql oder einen Fork zu erhalten. Achten Sie in diesem Fall auf die Konsolenausgabe, da die folgenden Anweisungen auf mysql5-server basieren und müssen angepasst werden, um die richtigen ausführbaren Dateien und Pfade zu verwenden.

Wenn es sich um eine Neuinstallation handelt, richten Sie die Datenbank ein:

sudo -u _mysql mysql_install_db5

Das gibt einige allgemeine Anweisungen aus, die meiner Meinung nach für Macports nicht ganz geeignet sind. Meiner Meinung nach ist der beste Weg, mysql5 als Daemon zu laden, die Verwendung der Methode von macport:

sudo port load mysql5-server

Dadurch wird mysql5 nicht nur gestartet, sondern auch permanent geladen - es wird beim Booten ausgeführt. Um dies später zu stoppen:

sudo port unload mysql5-server

Wenn Sie es nicht als Daemon ausführen möchten, können Sie es über die Befehlszeile ausführen:

sudo /opt/local/lib/mysql5/bin/mysqld_safe

Überprüfen Sie, ob es ausgeführt wird, indem Sie sich an der Befehlszeile anmelden:

mysql5 -u root -p

Standardmäßig ist das Passwort leer, also drücken Sie einfach die Eingabetaste, wenn Sie dazu aufgefordert werden. So legen Sie ein Root-Passwort fest:

/opt/local/lib/mysql5/bin/mysqladmin -u root password 'correct horse battery staple'

Anweisungen zum Einrichten sowohl von Macports PHP als auch der nativen PHP-Installation folgen.

Macports PHP einrichten

Angenommen, Sie haben bereits Macports PHP installiert und ausgeführt. Sie müssen php5-mysql installieren (oder etwas wie php54-mysql je nachdem, welche PHP-Version Sie verwenden):

sudo port install php5-mysql

Dadurch werden die mysql-, mysqli- und pdo-Treiber installiert.

Schauen Sie nun in Ihren /opt/local/etc/php5 Verzeichnis, wenn Sie noch keine php.ini haben Konfigurationsdatei kopieren Sie entweder php.ini-development oder php.ini-production zu php.ini . Bearbeiten Sie nun php.ini und suchen Sie nach den entsprechenden hinzuzufügenden Zeilen:

pdo_mysql.default_socket=/opt/local/var/run/mysql5/mysqld.sock

und:

mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock

und:

mysqli.default_socket = /opt/local/var/run/mysql5/mysqld.sock

Wenn Sie diese nicht konfigurieren möchten, können Sie sie explizit in Ihrem PHP-Skript festlegen, wenn Sie sich verbinden.

Wenn Sie Verbindungsprobleme haben, sollten Sie sich die anderen Einstellungen in der Nähe ansehen und mit php.ini-development vergleichen und php.ini-production um zu sehen, was geändert wurde.

Verwenden Sie dann das folgende Skript oder etwas Ähnliches, um zu testen, ob Sie eine Verbindung mit PHP herstellen können.

System-PHP einrichten

PHP von OS X wird mit eingebauter mysql- und mysqli-Unterstützung geliefert (aber nicht pdo), sodass Sie lediglich den Macport-Unix-Socket festlegen müssen. Der Standardspeicherort ist /opt/local/var/run/mysql5/mysqld.sock . Finden Sie die richtige Stelle in /etc/php.ini (Wenn Sie es noch nicht haben, kopieren Sie es von /etc/php.ini.default ) hinzufügen:

mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock

und:

mysqli.default_socket = /opt/local/var/run/mysql5/mysqld.sock

Wenn Sie diese nicht konfigurieren möchten, können Sie sie explizit in Ihrem PHP-Skript festlegen, wenn Sie sich verbinden.

Testskript

Hier ist ein PHP-Skript, um zu überprüfen, ob es eine Verbindung herstellen kann. Offensichtlich verwenden Sie normalerweise nicht das Root-Konto in Ihren PHP-Skripten, daher möchten Sie vielleicht zuerst ein anderes MySQL-Konto erstellen, um die Verbindung zu testen. Die PDO-Verbindung funktioniert nicht für natives PHP, da es keine PDO-Treiber gibt.

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