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

Macports l'installazione di mysql5 sotto Snow Leopard

Ho appena installato mysql5 da solo e, poiché questo è sempre un problema, ho notato il processo che ho seguito. Questo è stato fatto su Leopard, ma immagino che il processo sia lo stesso su Snow Leopard e Lion. Non risponde a tutte le domande originali, ma almeno è una sorta di guida.

Installazione di MySQL

Innanzitutto, installa il server mysql5 con:

sudo port install mysql5-server

Sto solo installando mysql5 non installa il server.

Presta attenzione all'output della console, include istruzioni per la configurazione di macport. Potresti volerlo copiare e incollare in un file di testo. Quanto segue si basa su di esso.

Invece di mysql5-server , potresti usare una porta come mysql55-server , mysql56-server , mariadb-server o percona-server per ottenere una versione più recente di mysql o un fork. Se lo fai, presta attenzione all'output della console, poiché le seguenti istruzioni sono basate su mysql5-server e dovrà essere modificato per utilizzare gli eseguibili e i percorsi corretti.

Se si tratta di una nuova installazione, configurare il database:

sudo -u _mysql mysql_install_db5

Ciò genera alcune istruzioni generiche, che non credo siano del tutto appropriate per macports. Secondo me il modo migliore per caricare mysql5 come demone è usare il metodo di macport:

sudo port load mysql5-server

Oltre ad avviare mysql5, questo lo carica in modo permanente:verrà eseguito all'avvio. Per fermarlo più tardi:

sudo port unload mysql5-server

Se non vuoi eseguirlo come demone, puoi eseguirlo dalla riga di comando:

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

Verifica che sia in esecuzione accedendo dalla riga di comando:

mysql5 -u root -p

Per impostazione predefinita, la password è vuota, quindi premi semplicemente invio quando richiesto. Per impostare una password di root:

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

Seguono le istruzioni per configurare macports php e l'installazione nativa di php.

Imposta Macports PHP

Supponendo che tu abbia già macports php installato e in esecuzione. Devi installare php5-mysql (o qualcosa come php54-mysql a seconda della versione di php che stai utilizzando):

sudo port install php5-mysql

Questo installa i driver mysql, mysqli e pdo.

Ora guarda nel tuo /opt/local/etc/php5 directory, se non hai già un php.ini copia il file di configurazione php.ini-development o php.ini-production a php.ini . Ora modifica php.ini e cerca le righe appropriate da aggiungere:

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

e:

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

e:

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

Se non vuoi configurarli, puoi impostarli esplicitamente nel tuo script php quando ti connetti.

Se hai problemi a connetterti, potresti voler guardare le altre impostazioni vicine e confrontarle con php.ini-development e php.ini-production per vedere cosa è stato modificato.

Quindi usa lo script qui sotto o qualcosa di simile per testare che puoi connetterti con php.

Impostazione PHP del sistema

Il php di OS X viene fornito con il supporto mysql e mysqli integrato (ma non pdo), quindi tutto ciò che devi fare è impostare il socket unix di macport. La posizione predefinita è /opt/local/var/run/mysql5/mysqld.sock . Trova il posto corretto in /etc/php.ini (se non lo hai già, copialo da /etc/php.ini.default ) per aggiungere:

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

e:

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

Se non vuoi configurarli, puoi impostarli esplicitamente nel tuo script php quando ti connetti.

Test script

Ecco uno script php per verificare che possa connettersi. Ovviamente, normalmente non utilizzerai l'account root nei tuoi script php, quindi potresti voler creare prima un altro account mysql per testare la connessione. La connessione PDO non funzionerà per php nativo poiché non ha driver 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";
}