Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Konfiguracja mysql5 Macports pod Snow Leopard

Właśnie zainstalowałem mysql5, a ponieważ jest to zawsze uciążliwe, zauważyłem proces, który zastosowałem. Zostało to zrobione w Leopardzie, ale wyobrażam sobie, że proces jest taki sam w Snow Leopard i Lion. Nie odpowiada na wszystkie oryginalne pytania, ale przynajmniej jest czymś w rodzaju przewodnika.

Instalowanie MySQL

Najpierw zainstaluj serwer mysql5 za pomocą:

sudo port install mysql5-server

Wystarczy zainstalować mysql5 nie instaluje serwera.

Zwróć uwagę na dane wyjściowe konsoli, zawiera instrukcje dotyczące konfigurowania macports. Możesz go skopiować i wkleić do pliku tekstowego. Opiera się na tym.

Zamiast mysql5-server , możesz użyć portu takiego jak mysql55-server , mysql56-server , mariadb-server lub percona-server aby uzyskać nowszą wersję mysql lub forka. Jeśli tak, zwróć uwagę na wyjście konsoli, ponieważ poniższe instrukcje są oparte na mysql5-server i będą musiały zostać dostosowane, aby używać poprawnych plików wykonywalnych i ścieżek.

Jeśli jest to nowa instalacja, skonfiguruj bazę danych:

sudo -u _mysql mysql_install_db5

To generuje kilka ogólnych instrukcji, które moim zdaniem nie są całkowicie odpowiednie dla macports. Moim zdaniem najlepszym sposobem na załadowanie mysql5 jako demona jest użycie metody macport:

sudo port load mysql5-server

Poza uruchomieniem mysql5, to go na stałe ładuje - będzie działać podczas uruchamiania. Aby zatrzymać to później:

sudo port unload mysql5-server

Jeśli nie chcesz uruchamiać go jako demona, możesz go uruchomić z wiersza poleceń:

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

Sprawdź, czy działa, logując się w wierszu poleceń:

mysql5 -u root -p

Domyślnie hasło jest puste, więc po wyświetleniu monitu naciśnij enter. Aby ustawić hasło roota:

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

Poniżej znajdują się instrukcje dotyczące konfiguracji zarówno macports php, jak i natywnego php.

Skonfiguruj Macports PHP

Zakładając, że masz już zainstalowany i uruchomiony php macports. Musisz zainstalować php5-mysql (lub coś takiego jak php54-mysql w zależności od używanej wersji php):

sudo port install php5-mysql

Instaluje to sterowniki mysql, mysqli i pdo.

Teraz zajrzyj do swojego /opt/local/etc/php5 katalog, jeśli nie masz jeszcze pliku php.ini plik konfiguracyjny skopiuj albo php.ini-development lub php.ini-production do php.ini . Teraz edytuj php.ini i wyszukaj odpowiednie wiersze do dodania:

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

i:

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

i:

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

Jeśli nie chcesz ich konfigurować, możesz ustawić je jawnie w skrypcie php podczas łączenia.

Jeśli masz problemy z połączeniem, możesz spojrzeć na inne pobliskie ustawienia i porównać z php.ini-development i php.ini-production aby zobaczyć, co zostało zmienione.

Następnie użyj poniższego skryptu lub czegoś podobnego do testowania, które można połączyć z php.

Konfiguracja systemu PHP

PHP OS X ma wbudowaną obsługę mysql i mysqli (ale nie pdo), więc wszystko, co musisz zrobić, to ustawić gniazdo macport unix. Domyślna lokalizacja to /opt/local/var/run/mysql5/mysqld.sock . Znajdź właściwe miejsce w /etc/php.ini (jeśli jeszcze go nie masz, skopiuj go z /etc/php.ini.default ) aby dodać:

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

i:

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

Jeśli nie chcesz ich konfigurować, możesz ustawić je jawnie w skrypcie php podczas łączenia.

Skrypt testowy

Oto skrypt php, który sprawdza, czy może się połączyć. Oczywiście, zwykle nie będziesz używać konta root w swoich skryptach php, więc możesz najpierw utworzyć inne konto mysql do testowania połączenia. Połączenie PDO nie będzie działać dla natywnego php, ponieważ nie ma sterowników 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wybierz ostatnią wiadomość między komunikacją dwóch użytkowników w mysql

  2. Rekurencja MySQL?

  3. Czy MySQL może używać indeksów, gdy między warunkami jest OR?

  4. Zapytanie o aktualizację MySQL przy użyciu lewego sprzężenia

  5. Wydajność MySQL:JOIN ON vs GDZIE