MySQL
jest to najpopularniejszy system do zarządzania bazą danych o otwartym kodzie źródłowym
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';