sql >> Databáze >  >> RDS >> Mysql

Nastavení Macports mysql5 pod Snow Leopard

Právě jsem si nainstaloval mysql5 sám, a protože je to vždy bolest, zaznamenal jsem proces, který jsem sledoval. To bylo provedeno na Leopardovi, ale myslím si, že postup je stejný na Snow Leopard a Lion. Neodpovídá na všechny původní otázky, ale alespoň je to něco jako vodítko.

Instalace Mysql

Nejprve nainstalujte server mysql5 pomocí:

sudo port install mysql5-server

Stačí nainstalovat mysql5 nenainstaluje server.

Věnujte pozornost výstupu konzole, obsahuje pokyny pro nastavení macportů. Možná jej budete chtít zkopírovat a vložit do textového souboru. Na tom je založeno následující.

Místo mysql5-server , můžete použít port jako mysql55-server , mysql56-server , mariadb-server nebo percona-server získat novější verzi mysql nebo fork. Pokud tak učiníte, věnujte pozornost výstupu konzole, protože následující pokyny jsou založeny na mysql5-server a bude nutné jej upravit, aby používal správné spustitelné soubory a cesty.

Pokud se jedná o novou instalaci, nastavte databázi:

sudo -u _mysql mysql_install_db5

Výsledkem jsou některé obecné pokyny, které podle mě nejsou úplně vhodné pro macporty. Podle mého názoru je nejlepším způsobem, jak načíst mysql5 jako démona, použít metodu macport:

sudo port load mysql5-server

Stejně jako spuštění mysql5, toto jej trvale načte - poběží při bootování. Chcete-li to později zastavit:

sudo port unload mysql5-server

Pokud jej nechcete spouštět jako démona, můžete jej spustit na příkazovém řádku:

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

Zkontrolujte, zda běží, přihlášením na příkazovém řádku:

mysql5 -u root -p

Ve výchozím nastavení je heslo prázdné, takže na výzvu stačí stisknout enter. Chcete-li nastavit heslo uživatele root:

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

Následují pokyny pro nastavení php macports a nativní instalace php.

Nastavení Macports PHP

Za předpokladu, že již máte nainstalovaný a spuštěný macports php. Musíte nainstalovat php5-mysql (nebo něco jako php54-mysql v závislosti na verzi php, kterou používáte):

sudo port install php5-mysql

Tím se nainstalují ovladače mysql, mysqli a pdo.

Nyní se podívejte do svého /opt/local/etc/php5 adresář, pokud ještě nemáte php.ini konfigurační soubor zkopírujte buď php.ini-development nebo php.ini-production na php.ini . Nyní upravte php.ini a vyhledejte příslušné řádky, které chcete přidat:

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

a:

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

a:

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

Pokud je nechcete konfigurovat, můžete je explicitně nastavit ve vašem php skriptu, když se připojujete.

Pokud máte potíže s připojením, můžete se podívat na další nastavení v okolí a porovnat s php.ini-development a php.ini-production abyste viděli, co se změnilo.

Poté použijte níže uvedený skript nebo něco podobného k otestování, zda se můžete připojit k php.

Nastavení systému PHP

PHP OS X přichází s vestavěnou podporou mysql a mysqli (ale ne pdo), takže vše, co musíte udělat, je nastavit macport unix socket. Výchozí umístění je /opt/local/var/run/mysql5/mysqld.sock . Najděte správné místo v /etc/php.ini (pokud jej ještě nemáte, zkopírujte jej z /etc/php.ini.default ) přidat:

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

a:

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

Pokud je nechcete konfigurovat, můžete je explicitně nastavit ve vašem php skriptu, když se připojujete.

Testovací skript

Zde je php skript pro kontrolu, zda se může připojit. Je zřejmé, že nebudete normálně používat účet root ve svých skriptech php, takže možná budete chtít nejprve vytvořit další účet mysql pro testování připojení. Připojení PDO nebude fungovat pro nativní php, protože nemá ovladače 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";
}


  1. Pivot v Oracle 11g

  2. MySQL:chyba ve vaší syntaxi SQL ... blízko klíče ...?

  3. MariaDB JSON_ARRAY_APPEND() Vysvětleno

  4. Jak používat logiku IF...THEN v SQL Server