Ten samouczek zawiera wszystkie kroki wymagane do zainstalowania MySQL 8 na Ubuntu 18.04 LTS. Te same kroki można wykonać dla innych wersji Ubuntu.
Notatki :Aby śledzić ten post, musisz całkowicie usunąć poprzednią instalację serwera MySQL zainstalowaną za pomocą instalatora, jeśli jest już zainstalowany w systemie. Możesz śledzić Jak całkowicie usunąć MySQL z Ubuntu, aby całkowicie usunąć poprzednią instalację wykonaną za pomocą instalatora.
Możesz być również zainteresowany innymi samouczkami dotyczącymi MySQL, w tym Jak zainstalować MySQL 8 na
Krok 1 — Pobierz repozytorium MySQL APT
Od MySQL 8 nie znajduje się w oficjalnych repozytoriach Ubuntu 18.04 , musimy pobrać jego pakiet Debiana . Aktualna oficjalnie dostępna wersja MySQL w dniu Ubuntu 18.04 to 5.7.26 . Użyj poniższego polecenia, aby pobrać najnowsze repozytorium APT.
# Download MySQL APT Repository
wget –c https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.deb
Pobierze oficjalny pakiet Debiana, aby zainstalować MySQL 8.
Krok 2 - Zainstaluj repozytorium MySQL
Użyj poniższego polecenia, aby rozpocząć instalację repozytorium MySQL przy użyciu repozytorium pobranego przez nas w poprzednim kroku.
sudo dpkg -i mysql-apt-config_0.8.13-1_all.deb
Poprosi o wybranie spośród dostępnych opcji, jak pokazano na rys. 1. Zachowaj domyślną opcję zaznaczoną i naciśnij klawisz Enter, aby rozpocząć instalację.
Rys. 1
Na następnym ekranie instalator poprosi o wybranie wersji MySQL do zainstalowania, jak pokazano na rys. 2. Zachowaj mysql-8 zaznaczony i naciśnij klawisz Enter.
Rys. 2
Wyświetli się pierwszy ekran z wybraną wersją MySQL. Teraz naciśnij klawisz strzałki w dół i następny klawisz strzałki, aby przejść do opcji OK, jak pokazano na rys. 3.
Rys. 3
Naciśnij klawisz Enter, aby rozpocząć instalację. Po zakończeniu instalacji wyświetli wymienione poniżej komunikaty.
bravo@pc1:/setups/database$ sudo dpkg -i mysql-apt-config_0.8.13-1_all.deb
Selecting previously unselected package mysql-apt-config.
(Reading database ... 200223 files and directories currently installed.)
Preparing to unpack mysql-apt-config_0.8.13-1_all.deb ...
Unpacking mysql-apt-config (0.8.13-1) ...
Setting up mysql-apt-config (0.8.13-1) ...
Warning: apt-key should not be used in scripts (called from postinst maintainerscript of the package mysql-apt-config)
Krok 3 — Odśwież repozytoria systemowe
Teraz odśwież repozytoria systemowe za pomocą polecenia, jak wspomniano poniżej.
sudo apt-get update
# It must show MySQL 8 repos
bravo@pc1:/setups/database$ sudo apt-get update
Hit:1 http://repo.mysql.com/apt/ubuntu bionic InRelease
Hit:2 http://in.archive.ubuntu.com/ubuntu bionic InRelease
Hit:3 http://in.archive.ubuntu.com/ubuntu bionic-updates InRelease
Hit:4 http://in.archive.ubuntu.com/ubuntu bionic-backports InRelease
Hit:5 http://security.ubuntu.com/ubuntu bionic-security InRelease
Get:6 http://repo.mysql.com/apt/ubuntu bionic/mysql-8.0 Sources [962 B]
Get:7 http://repo.mysql.com/apt/ubuntu bionic/mysql-8.0 i386 Packages [7,472 B]
Get:8 http://repo.mysql.com/apt/ubuntu bionic/mysql-8.0 amd64 Packages [7,463 B]
Fetched 15.9 kB in 3s (5,556 B/s)
Reading package lists... Done
Odświeży pamięć podręczną systemu, aby uzyskać aktualizacje o najnowszych wersjach dostępnych pakietów.
Krok 4 — Zainstaluj serwer MySQL
Po zaktualizowaniu pamięci podręcznej systemu możemy rozpocząć instalację serwera i klienta MySQL za pomocą polecenia, jak wspomniano poniżej.
# Install MySQL Server 8
sudo apt-get install mysql-server mysql-client
Naciśnij Y, aby potwierdzić i kontynuować instalację. Dzięki temu MySQL zostaje zainstalowany, tak jak robimy to z domyślnym pakietem dostępnym w repozytoriach Ubuntu. Instalacja poprosi również o wybranie
Rys. 4
Rys. 5
Rys. 6
Krok 5 — Bezpieczna instalacja MySQL
Musimy również zabezpieczyć instalację za pomocą polecenia, jak wspomniano poniżej.
sudo mysql_secure_installation
Poprosi o ustawienie hasła roota i kilka pytań bezpieczeństwa. Pełne kroki, które wykonałem, są pokazane poniżej.
bravo@pc1:/setups/database$ sudo mysql_secure_installation
Securing the MySQL server deployment.
Enter password for user root:
VALIDATE PASSWORD COMPONENT 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 component?
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: 1
Using existing password for root.
Estimated strength of the password: 25
Change the password for root ? ((Press y|Y for Yes, any other key for No) : n
... skipping.
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!
bravo@pc1:/setups/database$
Powyższe kroki usuwają testową bazę danych i anonimowych użytkowników. Nie zezwala również na zdalne logowanie, aby upewnić się, że serwer jest dostępny lokalnie przy użyciu 127.0.0.1 lub host lokalny .
Użyj poniższego polecenia, aby sprawdzić, czy serwer MySQL jest uruchomiony.
bravo@pc1:/setups/database$ systemctl status mysql
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-08-15 10:40:47 IST; 4min 45s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 28669 ExecStartPre=/usr/share/mysql-8.0/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 28708 (mysqld)
Status: "Server is operational"
Tasks: 38 (limit: 4915)
CGroup: /system.slice/mysql.service
└─28708 /usr/sbin/mysqld
Aug 15 10:40:45 bravo systemd[1]: Starting MySQL Community Server...
Aug 15 10:40:47 bravo systemd[1]: Started MySQL Community Server.
Krok 6 — Sprawdź wersję i dostęp
Sprawdź zainstalowaną przez nas wersję serwera, a także upewnij się, że serwer jest dostępny za pomocą skonfigurowanego przez nas hasła root.
# Check version
sudo mysql --version
mysql Ver 8.0.17 for Linux on x86_64 (MySQL Community Server - GPL)
# Login
sudo mysql -u root -p
Krok 7 – Ważne polecenia
Ta sekcja pokazuje niektóre z ważnych poleceń uruchamiania, zatrzymywania i restartowania serwera.
# Check server status
sudo service mysql status
# Stop server
sudo service mysql stop
# Start server
sudo service mysql start
# Restart server
sudo service mysql restart
Krok 8 – Korzystanie z wtyczek haseł
W przypadku wybrania opcji wtyczki hasła dla kompatybilności wstecznej z wersją 5.7, może być wymagane połączenie z serwerem MySQL przy użyciu konta z
# Login to MySQL
# Check password plugin of root user
SELECT user,authentication_string,plugin,host FROM mysql.user;
# Note the password plugin of root user
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | | auth_socket | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
# Change password plugin of root user to native
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<pw>';
# Apply changes
flush privileges;
# Check password scheme of user
SELECT user,authentication_string,plugin,host FROM mysql.user;
# Note the password plugin of root user
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | *E5C4F73D963132CEF9BB4PA79LA818C08BAQC300 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
# Change to new and recommended password plugin
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '<pw>';
# Apply changes
flush privileges;
# Check password scheme of user
SELECT user,authentication_string,plugin,host FROM mysql.user;
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| root | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
W ten sposób możemy zainstalować najnowszą wersję serwera MySQL, czyli MySQL 8 na Ubuntu 18.04 LTS.