facebook-ictlaboratory.com

Wybierz swój język

MySQL

jest to najpopularniejszy system do zarządzania bazą danych o otwartym kodzie źródłowym


https://www.mysql.com/

Sprawdź

Sprawdź, czy nie masz już zainstalowanego MySQL. Najprawdopodobniej jeszcze nie masz uruchomionego.

$ systemctl status mysql.service
Unit mysql.service could not be found.

Natomiast gdy ktoś wcześniej zainstalował ten serwer i jest uruchomiony to zobaczysz:

$ systemctl status mysql.service
● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-02-20 16:17:48 GMT; 1h 58min ago
   Main PID: 55389 (mysqld)
     Status: "Server is operational"
      Tasks: 39 (limit: 18900)
     Memory: 335.2M
     CGroup: /system.slice/mysql.service
             └─55389 /usr/sbin/mysqld

Feb 20 16:17:47 server systemd[1]: Starting MySQL Community Server...
Feb 20 16:17:48 server systemd[1]: Started MySQL Community Server.

Zainstaluj

$ sudo apt install mysql-server

Następnie musimy skonfigurować ten system. Najlepiej zrobić to wywołując skrypt:

$ sudo mysql_secure_installation

Najpierw hasło czy chcemy utworzyć. Odpowiedz 'y'

Następnie wybierz poziom skomplikowania hasła 0 - najłatwiejsze, 1 - trudne i 2 - najtrudniejsze. Proponuję abyś wybrał '0' - a system nie będzie robił tobie problemów przy twożeniu hasła.

Jeśli hasło będzie za słabe - system zapyta się czy chcesz ustawić takie łatwe hasło - wybierz 'y'

Podczas instalacji tworzony jest użytkownik anonimowy - system proponuje jego usunięcie - 'y'

Urzytkownik root - ma możliwość zdalnego połączenia się z bazą danych. Jest to sytuacja niebezpieczna, bo każdy z poza sieci kto złamie hasło będzie mógł połączyć się z bazą i popsuć.Dlatego system proponuje aby wyłączyć taką możliwość : 'y'

w kolejnym kroku usuń testową bazę danych tworzoną podczas instalacji : 'y'

Następnie przeładuj uprawnienia: 'y'

All done!

Kolejny krok to utworzenie użytkownika który będzie miał pełny dostęp do wszystkich baz danych. służy do tego polecenie:

CREATE USER 'username'@'host' IDENTIFIED WITH authentication_plugin BY 'password';
GRANT PRIVILEGE ON database.table TO 'username'@'host';

gdzie:

  • username - nazwa użytkownika
  • hosts - w naszym przypadku będzie to 'localhost'
  • database.table - jakie bazy danych mają mieć zmienione uprawnienia. My wybierzemy wszystkie: '*.*'
  • password - wybierz sobie hasło

W twoim przypadku będzie to wyglądać tak:

$ sudo mysql
        CREATE USER 'ict'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';
        GRANT ALL PRIVILEGES ON *.* TO 'ict'@'localhost' WITH GRANT OPTION;
        FLUSH PRIVILEGES;
        exit

Po tym zabiegu mamy utworzonego użytkownika z pełnym dostępem do bazy danych. Możesz to sprawdzić uruchamiając terminal systemu MySQL:

$ mysql -u ict -p

Lub sprawdzając wersję i statystykę:

$ mysqladmin -p -u ict version
Enter password:
mysqladmin  Ver 8.0.23-0ubuntu0.20.10.1 for Linux on x86_64 ((Ubuntu))
Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version          8.0.23-0ubuntu0.20.10.1
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/run/mysqld/mysqld.sock
Uptime:                 2 hours 37 sec

Threads: 2  Questions: 27  Slow queries: 0  Opens: 180  Flush tables: 3  Open tables: 99  Queries per second avg: 0.003

Dodatkowe opcje

Proponuje abys nadal haslo dla uzytkownika root:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';

Kilka polecen MySQL

Lista baz danych:

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

Lista uzytkownikow

mysql> SELECT user FROM mysql.user;
+------------------+
| user             |
+------------------+
| debian-sys-maint |
| ict              |
| mysql.infoschema |
| mysql.session    |
| mysql.sys        |
| root             |
+------------------+
6 rows in set (0.00 sec)

Wyświetlenie aktualnego użytkownika:

SELECT CURRENT_USER();

Tworzenie użytkownika:

CREATE USER 'new_user'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';

Kasowanie użytkownika. Uwaga - musisz być zalogowany jako root.

DROP USER 'user_name'@'localhost';

Przyznanie uprawnień użytkownikowi:

GRANT ALL PRIVILEGES ON *.* TO 'user_name'@'localhost' WITH GRANT OPTION;

Musisz jeszcze przeładować uprawnienia

FLUSH PRIVILEGES;

Zmiany w ustawieniach użytkownika. Np. zmiana hasła:

ALTER USER 'user_name'@'localhost' IDENTIFIED BY 'password';

Wyświetl ustawienia użytkownika:,/p>

SHOW GRANTS FOR 'user_name'@'localhost';