MySQL: Różnice pomiędzy wersjami

(Zarządzanie bazą)
(Łączenie się do bazy spoza MyDevil)
 
(Nie pokazano 5 wersji utworzonych przez 2 użytkowników)
Linia 42: Linia 42:
 
[[Plik:Bazy mysql dodaj uzytkownika.png|1170px]]
 
[[Plik:Bazy mysql dodaj uzytkownika.png|1170px]]
  
==== Łączenie się do bazy spoza MyDevil ====
+
==== Łączenie się do bazy z zewnętrznego hosta ====
  
 
{{Notice|Pole host może zostać wypełnione adresem IP (np. <code>10.10.10.1</code>) lub znakiem <code>%</code>, który oznacza dowolny adres IP.}}
 
{{Notice|Pole host może zostać wypełnione adresem IP (np. <code>10.10.10.1</code>) lub znakiem <code>%</code>, który oznacza dowolny adres IP.}}
Aby połączyć się do bazy danych spoza MyDevil należy:
+
Aby połączyć się do bazy danych z zewnętrznego hosta należy:
 
# Kliknąć ''Zarządzaj hostami'' na liście użytkowników przy wybranym użytkowniku.
 
# Kliknąć ''Zarządzaj hostami'' na liście użytkowników przy wybranym użytkowniku.
 
# Kliknąć ''+ Dodaj dostęp z nowego adresu''.
 
# Kliknąć ''+ Dodaj dostęp z nowego adresu''.
Linia 73: Linia 73:
 
==== Zmiana hasła użytkownika ====
 
==== Zmiana hasła użytkownika ====
  
Zmiana hasła odbywa się poleceniem <code>devil mysql user passwd ''login''</code>.
+
Zmiana hasła odbywa się poleceniem <code>devil mysql passwd ''login''</code>.
  
 
==== Uprawnienia użytkowników ====
 
==== 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 <code>devil mysql access ''login''@''host''</code>, 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 <code>deviil mysql privileges ''login[@host] nazwa_bazy uprawnienia''</code>. ''Uprawnienia'' to uprawnienia MySQL, które mają ulec zmianie. Dozwolone są makra <code>+ALL</code> lub <code>-ALL</code>, które ustawiają lub usuwają wszystkie uprawnienia lub można podawać poszczególne uprawnienia, przykładowo <code>-INSERT +SELECT</code>.
+
Pierwszym etapem nadawania uprawnień użytkownikom jest dodawanie dostępu ze wskazanego adresu. Aby to zrobić należy skorzystać z polecenia <code>devil mysql access add ''login''@''host''</code>, 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 <code>devil mysql privileges ''login[@host] nazwa_bazy uprawnienia''</code>. ''Uprawnienia'' to uprawnienia MySQL, które mają ulec zmianie. Dozwolone są makra <code>+ALL</code> lub <code>-ALL</code>, które ustawiają lub usuwają wszystkie uprawnienia lub można podawać poszczególne uprawnienia, przykładowo <code>-INSERT +SELECT</code>.
  
 
==== Lista baz i użytkowników ====
 
==== Lista baz i użytkowników ====
Linia 91: Linia 91:
 
  mysql --host mysqlX.mydevil.net --user użytkownik_bazy -p nazwa_bazy < mojakopia.sql
 
  mysql --host mysqlX.mydevil.net --user użytkownik_bazy -p nazwa_bazy < mojakopia.sql
 
Zrzut bazy danych (UTF-8):
 
Zrzut bazy danych (UTF-8):
  mysqldump --host mysqlX.mydevil.net --user użytkownik_bazy -p nazwa_bazy > mojakopia.sql
+
  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):
 
Zrzut bazy danych razem z procedurami składowymi (UTF-8):
  mysqldump --routines --host mysqlX.mydevil.net --user użytkownik_bazy -p nazwa_bazy > mojakopia.sql
+
  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):
 
Zrzut bazy danych (Latin1/cp1252/ISO 8859-1):
  mysqldump --default-character-set=latin1 --host mysqlX.mydevil.net --user użytkownik_bazy -p nazwa_bazy > mojakopia.sql
+
  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):
 
Zrzut bazy danych (Latin2/ISO 8859-2):
  mysqldump --default-character-set=latin2 --host mysqlX.mydevil.net --user użytkownik_bazy -p nazwa_bazy > mojakopia.sql
+
  mysqldump --default-character-set=latin2 --host mysqlX.mydevil.net --user użytkownik_bazy -p nazwa_bazy --no-tablespaces > mojakopia.sql
  
==== Łączenie się do bazy spoza MyDevil ====
+
==== Łączenie się do bazy z zewnętrznego hosta ====
  
Domyślnie host wszystkich użytkowników baz MySQL jest ustawiony na <code>%.devil</code>, co powoduje, że nie można się zalogować do bazy spoza systemów 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.
+
Domyślnie host wszystkich użytkowników baz MySQL jest ustawiony na <code>%.devil</code>, 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.
 
# Dozwolone logowanie się z każdego adresu - <code>devil mysql access add m1000@%</code>
 
# Dozwolone logowanie się z każdego adresu - <code>devil mysql access add m1000@%</code>
 
# Dodanie wszystkich uprawnień do bazy m1000_baza użytkownikowi m1000 zalogowanemu z dowolnego adresu - <code>devil mysql privileges m1000@% m1000_baza +ALL</code>
 
# Dodanie wszystkich uprawnień do bazy m1000_baza użytkownikowi m1000 zalogowanemu z dowolnego adresu - <code>devil mysql privileges m1000@% m1000_baza +ALL</code>

Aktualna wersja na dzień 20:37, 20 gru 2021

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