sql >> Database teknologi >  >> RDS >> Mysql

Macports mysql5 opsætning under Snow Leopard

Jeg har lige installeret mysql5 selv, og da dette altid er en smerte, har jeg noteret mig den proces, jeg fulgte. Dette blev gjort på Leopard, men jeg forestiller mig, at processen er den samme på Snow Leopard og Lion. Det besvarer ikke alle de originale spørgsmål, men det er i det mindste noget af en guide.

Installation af Mysql

Installer først mysql5-serveren med:

sudo port install mysql5-server

Installerer bare mysql5 installerer ikke serveren.

Vær opmærksom på konsoludgangen, den indeholder instruktioner til opsætning af macports. Du vil måske kopiere og indsætte den i en tekstfil. Det følgende er baseret på det.

I stedet for mysql5-server , kan du bruge en port såsom mysql55-server , mysql56-server , mariadb-server eller percona-server for at få en nyere version af mysql, eller en gaffel. Hvis du gør det, skal du være opmærksom på konsoloutputtet, da følgende instruktioner er baseret på mysql5-server og skal justeres for at bruge de korrekte eksekverbare filer og stier.

Hvis dette er en ny installation, skal du konfigurere databasen:

sudo -u _mysql mysql_install_db5

Det giver nogle generiske instruktioner, som jeg ikke synes er helt passende til macports. Efter min mening er den bedste måde at indlæse mysql5 som en dæmon på at bruge macports metode:

sudo port load mysql5-server

Ud over at starte mysql5, indlæser dette den permanent - den kører ved opstart. Sådan stopper du dette senere:

sudo port unload mysql5-server

Hvis du ikke ønsker at køre det som en dæmon, kan du køre det på kommandolinjen:

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

Tjek at det kører ved at logge ind på kommandolinjen:

mysql5 -u root -p

Adgangskoden er som standard tom, så tryk bare på enter, når du bliver bedt om det. Sådan indstilles en root-adgangskode:

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

Instruktioner til opsætning af både macports php og den oprindelige php-installation følger.

Opsætning af Macports PHP

Forudsat at du allerede har macports php installeret og kørende. Du skal installere php5-mysql (eller noget som php54-mysql afhængig af hvilken version af php du bruger):

sudo port install php5-mysql

Dette installerer mysql-, mysqli- og pdo-driverne.

Se nu i din /opt/local/etc/php5 bibliotek, hvis du ikke allerede har en php.ini konfigurationsfil kopi enten php.ini-development eller php.ini-production til php.ini . Rediger nu php.ini og søg efter de relevante linjer for at tilføje:

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

og:

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

og:

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

Hvis du ikke ønsker at konfigurere disse, kan du indstille dem eksplicit i dit php-script, når du opretter forbindelse.

Hvis du har problemer med at oprette forbindelse, vil du måske se på de andre indstillinger i nærheden og sammenligne med php.ini-development og php.ini-production for at se, hvad der er blevet ændret.

Brug derefter scriptet nedenfor, eller noget lignende til at teste, som du kan forbinde med php.

Opsæt system PHP

OS X's php kommer med mysql- og mysqli-understøttelse indbygget (men ikke pdo), så alt du skal gøre er at indstille macport unix-socket. Standardplaceringen er /opt/local/var/run/mysql5/mysqld.sock . Find det rigtige sted i /etc/php.ini (hvis du ikke allerede har det, kopier det fra /etc/php.ini.default ) for at tilføje:

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

og:

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

Hvis du ikke ønsker at konfigurere disse, kan du indstille dem eksplicit i dit php-script, når du opretter forbindelse.

Test script

Her er et php-script til at kontrollere, at det kan oprette forbindelse. Det er klart, at du normalt ikke vil bruge root-kontoen i dine php-scripts, så du vil måske først oprette en anden mysql-konto til at teste forbindelsen. PDO-forbindelsen virker ikke for native php, da den ikke har PDO-drivere.

<?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. Får HTML-svar i stedet for JSON i Android

  2. Tag kontrol over dine data med Microsoft Access

  3. Simulerer group_concat MySQL-funktion i Microsoft SQL Server 2005?

  4. Sådan fungerer Asinh() i PostgreSQL