MySQL

Wersja z dnia 21:37, 20 gru 2021 autorstwa Kacperinjo (dyskusja | edycje) (Łączenie się do bazy spoza MyDevil)

(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)

MySQL to wolnodostępny system zarządzania relacyjnymi bazami danych. Zarządzanie jest dostępne z panelu administracyjnego, phpMyAdmin i po zalogowaniu poleceniem devil mysql.

DevilWEB

Po zalogowaniu się do panelu administracyjnego zarządzanie bazami MySQL znajduje się w zakładce Bazy MySQL. Po kliknięciu pokazuje się lista baz danych.

Bazy mysql lista baz.png

Zarządzanie bazą

Aby zmienić uprawnienia dostępu do bazy należy kliknąć przycisk Zarządzaj i następnie zarządzaj uprawnieniami.

Bazy mysql zarzadzanie.png

Można modyfikować uprawnienia dla wszystkich hostów użytkownika wybierając niebieski przycisk, lub wybrać konkretny host.

Bazy mysql uprawnienia.png

Aby dodać uprawnienia do bazy danych użytkownikowi należy kliknąć +Dodaj uprawnienia.

Dodanie bazy danych

Aby dodać nową bazę danych MySQL należy kliknąć + Dodaj bazę. Po załadowaniu się strony trzeba wybrać:

  • nazwę bazy,
  • nazwę i hasło nowego użytkownika (bądź wybranie istniejącego użytkownika),
  • opcjonalnie metodą porównywania znaków (po rozwinięciu opcji zaawansowane ustawienia).

Bazy mysql dodaj baze.png

Lista użytkoników

Aby wyświetlić listę użytkowników należy kliknąć Użytkownicy. Przy dodanych użytkownikach jest możliwość edycji hostów z których możliwe jest logowanie oraz możliwość zmiany hasła.

Bazy mysql uzytkownicy.png

Dodanie użytkownika

Aby dodać nowego użytkownika należy kliknąć + Dodaj użytkonika. Po załadowaniu się strony trzeba wybrać nazwę i hasło.

Bazy mysql dodaj uzytkownika.png

Łączenie się do bazy z zewnętrznego hosta

Aby połączyć się do bazy danych z zewnętrznego hosta należy:

  1. Kliknąć Zarządzaj hostami na liście użytkowników przy wybranym użytkowniku.
  2. Kliknąć + Dodaj dostęp z nowego adresu.
  3. Wypełnić pole host i kliknąć + Dodaj.
  4. Kliknąć Zarządzaj na liście baz danych przy wybranej bazie.
  5. Kliknąć + Dodaj uprawnienia.
  6. Wybrać dodany wcześniej host i kliknąć +Dodaj.

Wybrany wcześniej użytkownik ma teraz dostęp do wybranej bazy danych z dowolnego adresu IP.

Devil

Konfiguracja MySQLa jest również możliwa z shella za pomocą modułu devil mysql.

Dodawanie i usuwanie bazy

Dodawanie bazy danych MySQL odbywa się za pomocą polecenia devil mysql db add nazwa_bazy [login] [--collate=...], gdzie argumentami są:

  • nazwa_bazy - nazwa bazy danych,
  • login - nazwa użytkownika, który zostanie automatycznie utworzony, jeśli istnieje zostaną mu nadane wszystkie uprawnienia do wskazanej bazy,
  • --collate= - pozwala wybrać metodę porównywania znaków,

Usuwanie bazy danych MySQL odbywa się za pomocą polecenia devil mysql db del nazwa_bazy.

Dodawanie i usuwanie użytkowników

Dodawanie użytkownika MySQL odbywa się za pomocą polecenia devil mysql user add login, gdzie login to jego nazwa. Po jego utworzeniu należy ręcznie ustawić jego uprawnia dla wybranej bazy danych. Aby usunąć użytkownika MySQL należy posłużyć się poleceniem devil myssql user del login.

Zmiana hasła użytkownika

Zmiana hasła odbywa się poleceniem devil mysql passwd login.

Uprawnienia użytkowników

Pierwszym etapem nadawania uprawnień użytkownikom jest dodawanie dostępu ze wskazanego adresu. Aby to zrobić należy skorzystać z polecenia devil mysql access add login@host, gdzie login to nazwa wcześniej utworzonego użytkownika, a host to domena, adres IP bądź maska MySQL. Następnie dodanej wcześniej kombinacji login@host trzeba zmienić uprawnienia korzystając z polecenia devil mysql privileges login[@host] nazwa_bazy uprawnienia. Uprawnienia to uprawnienia MySQL, które mają ulec zmianie. Dozwolone są makra +ALL lub -ALL, które ustawiają lub usuwają wszystkie uprawnienia lub można podawać poszczególne uprawnienia, przykładowo -INSERT +SELECT.

Lista baz i użytkowników

Aby otrzymać listę wszystkich baz danych i użytkowników należy skorzystać z polecenia devil mysql list [-v]. Użycie przełącznika -v dodatkowo pokaże uprawnienia.

Przykłady

Wszystkie poniższe operacje należy wykonywać po uprzednim zalogowaniu się przez ssh.

Wrzucenie bazy danych (UTF-8):

mysql --host mysqlX.mydevil.net --user użytkownik_bazy -p nazwa_bazy < mojakopia.sql

Zrzut bazy danych (UTF-8):

mysqldump --host mysqlX.mydevil.net --user użytkownik_bazy -p nazwa_bazy --no-tablespaces > mojakopia.sql

Zrzut bazy danych razem z procedurami składowymi (UTF-8):

mysqldump --routines --host mysqlX.mydevil.net --user użytkownik_bazy -p nazwa_bazy --no-tablespaces > mojakopia.sql

Zrzut bazy danych (Latin1/cp1252/ISO 8859-1):

mysqldump --default-character-set=latin1 --host mysqlX.mydevil.net --user użytkownik_bazy -p nazwa_bazy --no-tablespaces > mojakopia.sql

Zrzut bazy danych (Latin2/ISO 8859-2):

mysqldump --default-character-set=latin2 --host mysqlX.mydevil.net --user użytkownik_bazy -p nazwa_bazy --no-tablespaces > mojakopia.sql

Łączenie się do bazy z zewnętrznego hosta

Domyślnie host wszystkich użytkowników baz MySQL jest ustawiony na %.devil, co powoduje, że nie można się zalogować do bazy spoza danego serwera MyDevil. W poniższym przykładzie zostanie dodana możliwość logowania się na użytkownika m1000 z dowolnego adresu ze wszystkimi prawami do bazy m1000_baza.

  1. Dozwolone logowanie się z każdego adresu - devil mysql access add m1000@%
  2. Dodanie wszystkich uprawnień do bazy m1000_baza użytkownikowi m1000 zalogowanemu z dowolnego adresu - devil mysql privileges m1000@% m1000_baza +ALL