MySQL
From Rootnode
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'.)
|
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. |
|
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
- phpMyAdmin jest dostępny pod adresem https://phpmyadmin.rootnode.net
-
phpPgAdmin jest dostępny pod adresem https://phppgadmin.rootnode.net
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
|
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

|
|
Languages: |
English • Polski |


