meta data for this page
  •  

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Poprzednia rewizja po obu stronachPoprzednia wersja
Nowa wersja
Poprzednia wersja
mysql [2021/02/04 13:48] – [Zarządzanie użytkownikami] Paweł Grygorczukmysql [2025/11/05 09:37] (aktualna) – [MySQL] Paweł Grygorczuk
Linia 1: Linia 1:
 ====== MySQL ====== ====== MySQL ======
  
 +<WRAP center round important 90%>
 +Od wersji Debian 10 MySQL'a nie ma w standardowym repozytorium. Dodanie repozytorium:
 +<code bash>
 +apt-get install gnupg wget lsb-release
 +wget http://repo.mysql.com/mysql-apt-config_0.8.36-1_all.deb
 +dpkg -i mysql-apt-config_0.8.36-1_all.deb
 +</code>
 +Sprawdź jakie jest najnowsze repozytorium na stronie https://dev.mysql.com/downloads/repo/apt/.
 +</WRAP>
 ===== Backup bazy ===== ===== Backup bazy =====
  
Linia 39: Linia 48:
 Nadanie uprawnień dla nowego użytkownika. Nadanie uprawnień dla nowego użytkownika.
  
 +<code mysql>
 +CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
 +GRANT SELECT, INSERT, UPDATE ON baza.tabela TO 'nazwa_użytkownika'@'localhost';
 +</code>
 +
 +Aby nadać wszystkie uprawnienia, można użyć ''GRANT ALL PRIVILEGES''. W starszych wersjach MySQL można było dwa powyższe polecenia zapisać jako jedno poniższe:
 <code mysql> <code mysql>
 GRANT SELECT, INSERT, UPDATE ON baza.tabela TO 'nazwa_użytkownika'@'localhost' IDENTIFIED BY 'hasło'; GRANT SELECT, INSERT, UPDATE ON baza.tabela TO 'nazwa_użytkownika'@'localhost' IDENTIFIED BY 'hasło';
 </code> </code>
  
-Zamiast ''localhost'' możemy podać konkretny adres IP lub ''%'' - jeśli chcemy umożliwić łączenie się z dowolnego adresu. Jeżeli chcesz zezwolić na łączenie się z innych adresów niż localhost, w pliku ''/etc/mysql/my.cnf.migrated'' zakomentuj linię z wpisem ''bing-address = 127.0.0.1''. Poniższym poleceniem sprawdzisz, na jakich adresach nasłuchuje MySQL:+Zamiast ''localhost'' możemy podać konkretny adres IP lub ''%'' - jeśli chcemy umożliwić łączenie się z dowolnego adresu. Jeżeli chcesz zezwolić na łączenie się z innych adresów niż localhost, w pliku ''/etc/mysql/my.cnf.migrated'' zakomentuj linię z wpisem ''bing-address = 127.0.0.1''. Poniższym poleceniem sprawdzisz, na jakich portach nasłuchuje MySQL:
  
 <code bash> <code bash>
 netstat -tupan | grep mysql netstat -tupan | grep mysql
 +</code>
 +
 +Połączenie ze zdalnego hosta:
 +
 +<code bash>
 +mysql -u nazwa_użytkownika -p'hasło' -h adres_ip -D nazwa_bazy
 </code> </code>
  
Linia 56: Linia 77:
 </code> </code>
  
-Odebranie uprawnień+Odebranie uprawnień.
  
 <code mysql> <code mysql>
 DROP USER 'nazwa_użytkownika'@'localhost'; DROP USER 'nazwa_użytkownika'@'localhost';
-</code mysql>+</code> 
 + 
 +Zmiana hasła. 
 + 
 +<code mysql> 
 +ALTER USER 'user'@'localhost' identified by 'new-password'; 
 +</code> 
 +===== Zarządzanie bazą ===== 
 + 
 +Tworzenie nowej bazy danych 
 + 
 +<code mysql> 
 +CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_polish_ci; 
 +USE mydatabase; 
 +</code> 
 + 
 +===== Rotowanie logów ===== 
 + 
 +Domyślnie pliki logów są przechowywane w ''/var/lib/mysql''. Warto regularnie sprawdzić ile zajmują miejsca: ''du -sh /var/lib/mysql/*''
 +Aktualne ustawienia logów sprawdzimy (będąc zalogowanym jako root do MySQL): 
 + 
 +<code mysql> 
 +mysql> show global variables like '%logs%'; 
 ++----------------------------+---------+ 
 +| Variable_name              | Value   | 
 ++----------------------------+---------+ 
 +| binlog_expire_logs_seconds | 2592000 | 
 +| expire_logs_days           | 0       | 
 +| innodb_print_ddl_logs      | OFF     | 
 ++----------------------------+---------+ 
 +</code> 
 +2592000 sekund to 30 dni. Wyczyścić logi możemy następującym poleceniem: 
 + 
 +<code mysql> 
 +PURGE BINARY LOGS BEFORE '2021-03-09 07:30:00'; 
 +</code> 
 + 
 +Zmiany ustawień można dokonać następująco, przykładowo: 
 +<code mysql> 
 +SET GLOBAL binlog_expire_logs_seconds = 259200; 
 +</code>