Jak zainstalować bazę danych MySQL na Ubuntu 18.04?

Jak zainstalować bazę danych MySQL na Ubuntu 18.04?

Baza danych MySQL jest oprogramowaniem typu open source, które może być wykorzystywane do wielu celów. WordPress domyślne użycie MySQL pod maską do przechowywania wszystkich informacji o treściach bloga. MySQL jest składnikiem stosu aplikacji WWW LAMP (Linux, Apache, MySQL, Perl / PHP / Python).

Instalacja

Przede wszystkim musimy zaktualizować pakiety. W następnym kroku zainstalujemy pakiet mysql-server i na koniec skonfigurujemy instancję bazy danych MySQL. W tym samouczku zainstalujemy bazę danych MySQL w wersji 5.7.

# 1. Zaktualizuj pakiety
sudo apt update
sudo apt upgrade
# 2. Zainstaluj MySQL Server
sudo apt install mysql-server
# 3. Skonfiguruj instancję bazy danych MySQL
sudo mysql_secure_installation

Konfiguracja

Po uruchomieniu bezpiecznej instalacji MySQL postępuj krok po kroku, aby skonfigurować najważniejsze zabezpieczenia naszej bazy danych MySQL. Jednym z najważniejszych kroków (moim zdaniem) jest uniemożliwienie użytkownikowi root logowania się zdalnie. Jeśli tego zrobisz, będziesz mógł zalogować się do MySQL tylko z lokalnego komputera, gdzie baza danych została zainstalowana. Da Ci to dwa poziomy uwierzytelniania. Po pierwsze musisz być zalogowany na zdalnym komputerze, a następnie zalogować się do bazy danych MySQL.

pawel@test:~$ sudo mysql_secure_installation
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?
Press y|Y for Yes, any other key for No: y
There are three levels of password validation policy:
LOW Length = 8
MEDIUM Length = 8, numeric, mixed case, and special characters
STRONG Length = 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0
Please set the password for root here.
New password:
Re-enter new password:
Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
- Dropping test database...
Success.
- Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.
All done!

Zmień metodę uwierzytelniania

Kolejnym ważnym krokiem jest zmiana metody uwierzytelniania. Domyślnie jest to “auth_socket”. Naszym celem jest zmienić go na: “mysql_native_password”. Aby to zmienić, należy:

  1. Zaloguj się do bazy danych MySQL.
  2. Sprawdź aktualne metody uwierzytelniania dla każdego użytkownika.
  3. Ustaw nowe hasło dla użytkownika root.
  4. Uruchom komende: Flush privilidges.
  5. Sprawdź nowy status metod uwierzytelniania.

Krok #1

# Zaloguj się do bazy danych MySQL
sudo mysql

Krok #2

-- Sprawdź aktualne metody uwierzytelniania dla każdego użytkownika.
mysql> SELECT user, plugin FROM mysql.user;

+------------------+-----------------------+
| user             | plugin                |
+------------------+-----------------------+
| root             | auth_socket           |
| mysql.session    | mysql_native_password |
| mysql.sys        | mysql_native_password |
| debian-sys-maint | mysql_native_password |
+------------------+-----------------------+
4 rows in set (0.01 sec)

 Krok #3

Zmieńmy metodę uwierzytelniania i ustawmy hasło:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'my_new_strong_password';

Krok #4

Polecenia “Flush privilidges” przeładują ponownie wszystkie uprawnienia.

mysql> FLUSH PRIVILEGES;

Step #5

Teraz jesteś gotowy, aby zweryfikować, czy nowa metoda uwierzytelniania została pomyślnie zastosowana dla użytkownika root. Ponownie uruchom zapytanie SQL, aby to sprawdzić.

mysql> SELECT user, plugin FROM mysql.user;
+------------------+-----------------------+
| user             | plugin                |
+------------------+-----------------------+
| root             | mysql_native_password |
| mysql.session    | mysql_native_password |
| mysql.sys        | mysql_native_password |
| debian-sys-maint | mysql_native_password |
+------------------+-----------------------+
4 rows in set (0.01 sec)

Wyloguj się z MySQL:

mysql> exit

Zaloguj się za pomocą hasła

Aby przetestować nasze nowe hasło, musimy zalogować się do MySQL za pomocą składni jak poniżej. Po -u umieszczamy nazwę użytkownika. Parametr -p spowoduje, że zostaniemy poproszeni o podanie.

pawel@test:~$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.25-0ubuntu0.18.04.2 (Ubuntu)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

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

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

 MySQL serwer

W przypadku, gdy nie będzie można zalogować się do bazy danych MySQL, sprawdźmy, czy usługa jest uruchomiona. Aby to zrobić, możesz użyć poniższego polecenia.

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 2019-01-26 16:45:43 UTC; 14min ago
  Process: 4202 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid (code=exited, status=0/SUCCESS)
  Process: 4179 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 4204 (mysqld)
    Tasks: 28 (limit: 4708)
   CGroup: /system.slice/mysql.service
           └─4204 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid

Jan 26 16:45:42 test systemd[1]: Starting MySQL Community Server...
Jan 26 16:45:43 test systemd[1]: Started MySQL Community Server.

Uruchomienie usługi

W przypadku, gdy usługa nie jest uruchomiona, uruchom ją za pomocą następującego polecenia:

sudo systemctl start mysql

Jeśli spodobał Ci się ten post to napisz proszę komentarz poniżej oraz udostępnij ten post na swoim Facebook’u, Twitter’ze, LinkedIn lub innej stronie z mediami społecznościowymi.
Z góry dzięki!

Please follow and like us:

Dodaj komentarz

Close Menu
Social media & sharing icons powered by UltimatelySocial

Enjoy this blog? Please spread the word :)