MySQL

From Rootnode

(Redirected from PostgreSQL)
Jump to: navigation, search

Image:PgSQL.gif

Contents

Zarządzanie bazami danych

Zarządzanie bazami danych MySQL i PostgreSQL odbywa się z wykorzystaniem szatana. Pozwala on na dodawanie i usuwanie baz, dodawanie i usuwanie użytkowników baz danych oraz nadawanie i odbieranie praw danym użytkownikom.

Nazewnictwo baz danych i tworzonych użytkowników, aby zapobiec duplikowania nazw i ułatwić nam zarządzanie, jest ściśle określone. Nazwa zawiera w sobie prefix: my dla MySQL, pg dla PostgreSQL, or dla Oracle, twój uid, podkreślnik oraz dowolną nazwę bazy. Całość nie może przekraczać 14 znaków. Dla przykładu: my1234_mojabaza. (Swoje UID zobaczysz wpisując w konsoli polecenie: 'id'.)

Image:Warning.png

Poniższy opis dotyczy bazy MySQL, ale identycznie wygląda zarządzanie bazą PostgreSQL. W poleceniach wystarczy zamienić mysql na pgsql oraz pamiętać o zmianie prefiksu my na pg.

Image:Warning.png

Komenda satan pgsql list wyświetla niepoprawne dane o użytkownikach (grantach, uprawieniach). Poprawnie wyświetla stworzonych użytkowników i stworzone bazy danych. Mimo to, stworzeni użytkownicy i nadane im prawa działają jak należy.

Składnia

satan mysql adddb <baza danych>
satan mysql deldb <baza danych>
satan mysql adduser <nazwa użytkownika> <hasło>
satan mysql adduser <nazwa użytkownika> stdin
satan mysql deluser <nazwa użytkownika>
satan mysql grant <nazwa użytkownika> <baza danych>
satan mysql revoke <nazwa użytkownika> <baza danych>
satan mysql list
Polecenie Opis
satan mysql adddb <baza danych> Tworzy nową bazę danych.
satan mysql deldb <baza danych> Usuwa istniejącą bazę danych.
satan mysql adduser <nazwa użytkownika> <hasło> Tworzy nowego użytkownika.
satan mysql adduser <nazwa użytkownika> stdin Tworzy nowego użytkownika z prośbą o wpisanie hasła w konsoli.
satan mysql deluser Usuwa istniejącego użytkownika.
satan mysql grant <nazwa użytkownika> <baza danych> Nadaje prawa all privileges dla użytkownika na konkretną bazę danych.
satan mysql revoke <nazwa użytkownika> <baza danych> Odbiera prawa użytkownikowi na wskazaną bazę danych.
satan mysql list Wyświetla wszystkie bazy danych i wszystkich użytkowników wraz z prawami.

Każde polecenie można dopełniać za pomocą dwukrotnego wciśnięcia klawisza TAB.

przykład

Na początek utworzymy bazę danych przeznaczoną dla naszego wiki. Dobrze jest wypróbować dopełnianie składni za pomocą dwukrotnego wciśnięcia klawisza TAB po argumencie adddb. Wtedy odpowiedni prefix oraz nasz uid wypełni się automatycznie.

$ id -u
1234

$ satan mysql adddb my1234_wiki

$ satan mysql list
Databases
my1234_wiki

Users
No users.

Teraz kiedy już utworzyliśmy bazę danych potrzebny będzie użytkownik z prawami do obsługi tej bazy. Dla wygody nazwiemy go tak samo jak bazę danych czyli my1234_wiki. Argument stdin na końcu oznacza, że zostaniemy poproszeni o wpisanie hasła do bazy. Wpisywane hasło nie pojawi się na ekranie (nawet w postaci gwiazdek).

$ satan mysql adduser my1234_wiki stdin
Enter your password (will not be shown): 

$ satan mysql list
Databases
my1234_wiki
 
Users

Username          Privileges   Grant on            Password
my1234_wiki       usage        -                   yes

Jak widać nasz użytkownik ma ustawione hasło, ale nie ma nadanych grantów do żadnej bazy. Aby to zmienić wykonujemy polecenie grant którego składnia to: satan mysql grant <nazwa użytkownika> <baza danych>. Po dwukrotnym naciśnięciu tabulatora zostaną wyświetlone wszystkie dostępne nazwy użytkowników i baz danych do których chcemy nadać prawa.

$ satan mysql grant my1234_wiki my1234_wiki

$ satan mysql list
Databases
my1234_wiki

Users

Username          Privileges   Grant on            Password
my1234_wiki       usage        -                   yes
my1234_wiki       all          my1234_wiki.*       no

Prawa dostępu

Użytkownicy tworzeni są z możliwością grantowania, czyli możesz stworzyć nowego użytkownika i nie nadać mu żadnych uprawnień i do jakiejś swojej bazy z istniejącego usera nadać uprawnienia do przykładowo select/update, jednakże już z poziomu konsoli mysql. //tutaj przykład//

Zmiana hasła do bazy

Gdy hasło jest ustawione i je pamiętamy
W tym wypadku należy połączyć się z bazą danych np. z linii poleceń za pomocą mysql -u my1234_użytkownik -p oraz wydać polecenie SET PASSWORD=PASSWORD('nowehasło');

Gdy niepamiętamy ustawionego hasła
Należy usunąć użytkownika za pomocą polecenia satan mysql deluser my1234_użytkownik. Proszę pamiętać, że wraz z użytkownikiem zostaną usuniętę wszystkie granty, które go dotyczą.

Gdy nie ma hasła do bazy
Logujemy się do bazy bez hasła np. za pomocą polecenia mysql -u my1234_użytkownik oraz wydajemy polecenie SET PASSWORD=PASSWORD('mojehasło');

Połączenie z bazą

Adres bazy to mysql.rootnode.net. Z tym adresem może się połączyć każda maszyna z infrastruktury Rootnode. Połączenia z zewnątrz są możliwe jedynie przez odpowiedni tunel. Adres localhost lub socket nie będzie działał.

Lokalnie

Z serwera kont shellowych można połączyć się z bazą wydając polecenie mysql dla bazy MySQL lub psql dla bazy PostgreSQL.

MySQL
Dla bazy MySQL przykładowa sesja może wyglądać następująco:

$ mysql -h mysql.rootnode.net -u my1234_wiki -p
Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4694931
Server version: 5.0.32-Debian_7etch8-log Debian etch distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> 

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema | 
| my1234_wiki        | 
+--------------------+
2 rows in set (0.02 sec)

Szczegóły na temat posługiwania się programem mysql monitor znajdziesz w dokumentacji MySQL

PostgreSQL
Połączenie do bazy za pomocą programu psql wygląda następująco:

$ psql -h pgsql.rootnode.net -U  pg1234_wiki pg1234_wiki
Password for user pg1234_wiki:
Welcome to psql 8.1.17, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)

pg1234_wiki=>

phpMyAdmin i phpPgAdmin

Tunelowanie połączenia

Aby połączyć się z bazą z zewnątrz na przykład za pomocą MySQL Query Browser zainstalowanym na lokalnym komputerze należy przetunelować połączenie. Najprostszym sposobem jest zestawienie tunelu SSH za pomocą jednego z poniższych poleceń w zależności od rodzaju bazy:

$ ssh -C -L 1234:mysql.rootnode.net:3306 s.rootnode.net
$ ssh -C -L 1234:pgsql.rootnode.net:5432 s.rootnode.net

Image:Warning.png

W powyższych poleceniach zakładamy, że posiadasz konto shellowe na serwerze stallman. Jeśli jest to inna maszyna zamień adres s.rootnode.net na końcu polecenia na właściwy.

Teraz twoja baza danych jest dostępna pod adresem localhost na porcie 1234 na lokalnym komputerze.

Backup

Backup należy wykonywać we własnym zakresie za pomocą polecenia mysqldump. Przykładowy dump bazy danych:

 mysqldump -h mysql.rootnode.net -u my1234_user -ppassword my1234_database > backup.sql

Przywrócenie bazy danych:

 mysql -h mysql.rootnode.net -u my1234_user -p my1234_database < backup.sql

Błędy

Podczas zarządzania mogą pojawić się następujące błędy.

  • Insufficient args! Dying.
    Brak wszystkich argumentów. Oznacza, że wpisaliśmy niepełne polecenie.
  • Bad syntax! Dying.
    Zła składnia. Należy uruchomić satan mysql help i upewnić się czy faktycznie poprawnie wpisaliśmy polecenie.


Zobacz także

Tworzenie kont FTP.Zarządzanie strefami DNS.Dodawanie domen do systemu.Szatan, system zarządzania usługami.Obsługa poczty.Konfiguracja stron www.Bazy danych MySQL i PostgreSQL.Backup, kopia zapasowa.


Przewodnik po Rootnode

Nasze strony są oparte o system wiki, co znaczy, że każdy użytkownik może edytować dowolną stronę.
Treści tutaj zawarte mogą być nieaktualne i niewłaściwe. Nie bierzemy odpowiedzialności za ewentualne szkody.

Zobacz ostatnie zmiany.

Pierwsze kroki z Rootnode

Bazy danych


Poczta

Domena i system DNS

Vhost, strona www

Nieuporządkowane

© ITspec Wszelkie prawa zastrzeżone. | Wiki | Status | Support | Planeta | Fortunki | Kontakt
Szukasz oferty indywidualnej lub specjalistów IT? Zobacz naszą stronę domową i skontaktuj się z nami.
Personal tools