sql >> Databasteknik >  >> RDS >> Mysql

Macports mysql5-installation under Snow Leopard

Jag har precis installerat mysql5 själv, och eftersom detta alltid är jobbigt har jag noterat processen som jag följde. Detta gjordes på Leopard, men jag föreställer mig att processen är densamma på Snow Leopard och Lion. Det svarar inte på alla ursprungliga frågor, men det är åtminstone något av en guide.

Installera Mysql

Installera först mysql5-servern med:

sudo port install mysql5-server

Installerar bara mysql5 installerar inte servern.

Var uppmärksam på konsolutgången, den innehåller instruktioner för att ställa in macports. Du kanske vill kopiera och klistra in den i en textfil. Följande är baserat på det.

Istället för mysql5-server , kan du använda en port som mysql55-server , mysql56-server , mariadb-server eller percona-server för att få en nyare version av mysql, eller en gaffel. Om du gör det, var uppmärksam på konsolutgången, eftersom följande instruktioner är baserade på mysql5-server och kommer att behöva justeras för att använda rätt körbara filer och sökvägar.

Om detta är en nyinstallation, ställ in databasen:

sudo -u _mysql mysql_install_db5

Det ger några generiska instruktioner, som jag inte tror är helt lämpliga för macports. Enligt min åsikt är det bästa sättet att ladda mysql5 som en demon att använda macports metod:

sudo port load mysql5-server

Förutom att starta mysql5, laddas den permanent - den kommer att köras vid uppstart. För att stoppa detta senare:

sudo port unload mysql5-server

Om du inte vill köra den som en demon kan du köra den på kommandoraden:

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

Kontrollera att den körs genom att logga in på kommandoraden:

mysql5 -u root -p

Som standard är lösenordet tomt, så tryck bara på enter när du uppmanas. Så här ställer du in ett root-lösenord:

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

Instruktioner för att ställa in både macports php och den inbyggda php-installationen följer.

Ställ in Macports PHP

Förutsatt att du redan har macports php installerat och kört. Du måste installera php5-mysql (eller något som php54-mysql beroende på vilken version av php du använder):

sudo port install php5-mysql

Detta installerar drivrutinerna för mysql, mysqli och pdo.

Titta nu i din /opt/local/etc/php5 katalog, om du inte redan har en php.ini konfigurationsfil kopiera antingen php.ini-development eller php.ini-production till php.ini . Redigera nu php.ini och sök efter lämpliga rader att lägga till:

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

och:

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

och:

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

Om du inte vill konfigurera dessa kan du ställa in dem explicit i ditt php-skript när du ansluter.

Om du har problem med att ansluta kanske du vill titta på andra närliggande inställningar och jämföra med php.ini-development och php.ini-production för att se vad som har ändrats.

Använd sedan skriptet nedan, eller något liknande för att testa som du kan koppla till php.

Setup System PHP

OS X:s php kommer med mysql och mysqli-stöd inbyggt (men inte pdo), så allt du behöver göra är att ställa in macport unix-socket. Standardplatsen är /opt/local/var/run/mysql5/mysqld.sock . Hitta rätt plats i /etc/php.ini (om du inte redan har det, kopiera det från /etc/php.ini.default ) för att lägga till:

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

och:

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

Om du inte vill konfigurera dessa kan du ställa in dem explicit i ditt php-skript när du ansluter.

Testskript

Här är ett php-skript för att kontrollera att det kan ansluta. Uppenbarligen kommer du normalt inte att använda root-kontot i dina php-skript så du kanske vill först skapa ett annat mysql-konto för att testa anslutningen. PDO-anslutningen fungerar inte för inbyggd php eftersom den inte har PDO-drivrutiner.

<?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. Vilka är fördelarna och nackdelarna med att behålla SQL i lagrade processer kontra kod

  2. Vad är PostgreSQL?

  3. SKAPA Oracle-procedur

  4. 8 sätt att lägga till en timme till en Datetime i MariaDB