sql >> Database >  >> RDS >> Mysql

Macports mysql5 instellen onder Snow Leopard

Ik heb zojuist mysql5 zelf geïnstalleerd en aangezien dit altijd lastig is, heb ik het proces opgemerkt dat ik heb gevolgd. Dit werd gedaan op Leopard, maar ik kan me voorstellen dat het proces hetzelfde is op Snow Leopard en Lion. Het beantwoordt niet alle originele vragen, maar het is in ieder geval een soort gids.

Mysql installeren

Installeer eerst de mysql5-server met:

sudo port install mysql5-server

Gewoon mysql5 installeren installeert de server niet.

Let op de console-uitvoer, deze bevat instructies voor het instellen van macports. Misschien wilt u het kopiëren en in een tekstbestand plakken. Het volgende is erop gebaseerd.

In plaats van mysql5-server , kunt u een poort gebruiken zoals mysql55-server , mysql56-server , mariadb-server of percona-server om een ​​recentere versie van mysql of een fork te krijgen. Als je dat doet, let dan op de console-uitvoer, aangezien de volgende instructies zijn gebaseerd op mysql5-server en moet worden aangepast om de juiste uitvoerbare bestanden en paden te gebruiken.

Als dit een nieuwe installatie is, stelt u de database in:

sudo -u _mysql mysql_install_db5

Dat levert een aantal generieke instructies op, waarvan ik denk dat ze niet helemaal geschikt zijn voor macports. Naar mijn mening is de beste manier om mysql5 als een daemon te laden de methode van macport te gebruiken:

sudo port load mysql5-server

Naast het starten van mysql5, laadt dit het permanent - het wordt uitgevoerd bij het opstarten. Om dit later te stoppen:

sudo port unload mysql5-server

Als u het niet als een daemon wilt uitvoeren, kunt u het op de opdrachtregel uitvoeren:

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

Controleer of het actief is door in te loggen op de opdrachtregel:

mysql5 -u root -p

Het wachtwoord is standaard leeg, dus druk gewoon op enter wanneer daarom wordt gevraagd. Om een ​​root-wachtwoord in te stellen:

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

Instructies voor het instellen van zowel macports php als de native php-installatie volgen.

Macports PHP instellen

Ervan uitgaande dat je macports php al hebt geïnstalleerd en actief bent. U moet php5-mysql . installeren (of zoiets als php54-mysql afhankelijk van welke versie van php je gebruikt):

sudo port install php5-mysql

Hiermee worden de mysql-, mysqli- en pdo-stuurprogramma's geïnstalleerd.

Kijk nu in uw /opt/local/etc/php5 directory, als je nog geen php.ini . hebt configuratiebestand kopieer ofwel php.ini-development of php.ini-production naar php.ini . Bewerk nu php.ini en zoek naar de juiste regels om toe te voegen:

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

en:

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

en:

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

Als u deze niet wilt configureren, kunt u ze expliciet instellen in uw php-script wanneer u verbinding maakt.

Als je problemen hebt om verbinding te maken, kun je de andere instellingen in de buurt bekijken en vergelijken met php.ini-development en php.ini-production om te zien wat er is gewijzigd.

Gebruik dan het onderstaande script, of iets dergelijks om te testen dat je kunt verbinden met php.

Systeem PHP instellen

De php van OS X wordt geleverd met ingebouwde mysql- en mysqli-ondersteuning (maar niet pdo), dus alles wat u hoeft te doen is de macport unix-socket in te stellen. De standaardlocatie is /opt/local/var/run/mysql5/mysqld.sock . Zoek de juiste plaats in /etc/php.ini (als je het nog niet hebt, kopieer het dan van /etc/php.ini.default ) om toe te voegen:

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

en:

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

Als u deze niet wilt configureren, kunt u ze expliciet instellen in uw php-script wanneer u verbinding maakt.

Testscript

Hier is een php-script om te controleren of het verbinding kan maken. Het is duidelijk dat je normaal gesproken het root-account niet in je php-scripts zult gebruiken, dus misschien wil je eerst een ander mysql-account maken om de verbinding te testen. De PDO-verbinding werkt niet voor native php, omdat die geen PDO-stuurprogramma's heeft.

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


  1. Hoe schrijf je een CASE-instructie in SQL?

  2. Hoe SLEEP() werkt in MariaDB

  3. MySQL - woorden vinden die het gezochte trefwoord omringen

  4. Verbinding maken met de MySQL-database