sql >> Databáze >  >> RDS >> Mysql

Jak nainstalovat MySQL 8 na Ubuntu 20.04 LTS

MySQL patří mezi oblíbené relační databázové systémy používané jako úložiště dat webových stránek a webových aplikací. Tento tutoriál poskytuje všechny kroky potřebné k instalaci MySQL 8 na Ubuntu 20.04 LTS. Postup by měl být stejný na jiných verzích systémů Ubuntu a Linux. Můžete také sledovat Jak nainstalovat MySQL 8 na Ubuntu 18.04 LTS. Také by vás mohly zajímat další výukové programy specifické pro MySQL včetně Jak nainstalovat MySQL 8 na Windows a Naučte se základní SQL dotazy pomocí MySQL.

Předpoklady

Tento výukový program předpokládá, že jste již nainstalovali Ubuntu 20.04 LTS desktopovou nebo serverovou verzi pro místní nebo produkční použití. Můžete sledovat Instalovat Ubuntu 20.04 LTS Desktop, Instalovat Ubuntu 20.04 LTS na Windows pomocí VMware a Spin Up Ubuntu 20.04 LTS Server na Amazon EC2 a nainstalovat Ubuntu 20.04 LTS. Také předpokládá, že máte buď práva root, nebo běžného uživatele s právy sudo.

Nainstalujte MySQL

Tato část obsahuje příkazy potřebné k instalaci databázového serveru MySQL verze 8 na Ubuntu 20.04 LTS.

# Install MySQL Server 8
sudo apt install mysql-server

# Output
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libaio1 libcgi-fast-perl libcgi-pm-perl libevent-core-2.1-7 libfcgi-perl libhtml-template-perl libmecab2 mecab-ipadic
mecab-ipadic-utf8 mecab-utils mysql-client-8.0 mysql-client-core-8.0 mysql-server-8.0 mysql-server-core-8.0
---
---
Setting up mysql-server-8.0 (8.0.20-0ubuntu0.20.04.1) ...
update-alternatives: using /etc/mysql/mysql.cnf to provide /etc/mysql/my.cnf (my.cnf) in auto mode
Renaming removed key_buffer and myisam-recover options (if present)
mysqld will log errors to /var/log/mysql/error.log
mysqld is running as pid 63195
Created symlink /etc/systemd/system/multi-user.target.wants/mysql.service → /lib/systemd/system/mysql.service.
Setting up mysql-server (8.0.20-0ubuntu0.20.04.1) ...
Processing triggers for systemd (245.4-4ubuntu3) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for libc-bin (2.31-0ubuntu9) ...

Zvýraznil jsem balíčky MySQL, které se nainstalují po provedení instalačního příkazu. Instaluje balíčky jádra MySQL, serveru a klienta. Při psaní tohoto návodu byl také nainstalován server MySQL verze 8.0.20.

Konfigurace a zabezpečení instalace MySQL

Musíme také nakonfigurovat a zabezpečit instalaci pomocí příkazu mysql_secure_installation Jak je ukázáno níže. Požádá vás o nastavení hesla uživatele root a několika bezpečnostních otázek.

Krok 1 - Bezpečná instalace - Spusťte příkaz pro spuštění konfigurace MySQL.

# Secure MySQL
sudo mysql_secure_installation

Krok 2 - Ověření hesla - Požádá o potvrzení použití validátoru hesla k ověření hesla. Při zadávání hesla také zobrazí sílu hesla.

# Password Validator Component
Press y|Y for Yes, any other key for No: y

Pokud vybereme Ne, nebude při přidávání kontrolovat sílu hesla kořenového adresáře MySQL a dalších uživatelů. Pro uživatele MySQL bychom měli používat silné heslo, proto se doporučuje použít komponentu Password Validator.

Krok 3 - Úroveň ověření hesla - Příkaz zabezpečené instalace se zeptá na úroveň ověření hesla a nabízí možnosti výběru mezi Nízká (0), Střední (1) a Silná (2). Doporučuje se používat alespoň Střední úroveň mít silné heslo všech uživatelů MySQL. Pravidla ověřování všech úrovní jsou uvedena níže.

Nízká - Očekává heslo, které má alespoň 8 znaků bez jakéhokoli omezení na znaky.

Střední - Střední úroveň očekává heslo, které má alespoň 8 znaků a povoluje číslice, velká písmena, malá písmena a speciální znaky.

Silný - Silná úroveň očekává heslo, které má alespoň 8 znaků a povoluje číslice, velká písmena, malá písmena a speciální znaky. Umožňuje také soubor slovníku.

# Password Validation Level
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1

Krok 4 - Heslo uživatele root – Výchozí ověřovací plugin používaný MySQL pro uživatele root je auth_socket .

# Password Prompt
New password:<password>
Re-enter new password:<repeat password>

V případě, že jste zvolili použití Password Validator, zobrazí také sílu hesla roota a potvrdí použití daného hesla, jak je uvedeno níže.

# Confirm Password
Estimated strength of the password: 80
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y

Pokud se rozhodneme pro Ne, znovu se zobrazí výzva k zadání hesla.

Krok 5 - Odebrat anonymní uživatele - Po zadání hesla proces zabezpečené instalace požádá o odstranění anonymních uživatelů. MySQL přidává anonymního uživatele při instalaci pro testovací účely a umožňuje komukoli přihlásit se bez hesla. Doporučuje se odebrat anonymního uživatele.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y

Krok 6 - Zakázat vzdálené přihlášení - Proces zabezpečené instalace také vyžaduje potvrzení, zda je povoleno vzdálené přihlášení pro uživatele root. Měli bychom zvolit možnost y, abychom omezili uživatele root na localhost. Vždy můžeme přidat další uživatele, abychom v případě potřeby umožnili vzdálené přihlášení.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y

Krok 7 - Odstranit testovací databázi - MySQL vytvoří testovací databázi při její instalaci. Testovací databázi si můžete ponechat pro účely analýzy a později ji zrušit.

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y

Krok 8 - Znovu načíst tabulky oprávnění - Konečně zabezpečená instalace požádá o opětovné načtení tabulek oprávnění, aby se změny okamžitě uplatnily.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y

Úplné kroky, které následuji při nové instalaci MySQL, jsou uvedeny níže.

# Secure MySQL
sudo mysql_secure_installation

# Configuration
Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

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
Please set the password for root here.

New password:

Re-enter new password:

Estimated strength of the password: 50
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!

Výše uvedené kroky odeberou testovací databázi a anonymní uživatele. Zakazuje také vzdálené přihlášení, aby bylo zajištěno, že server je přístupný místně buď pomocí 127.0.0.1 nebo localhost .

Ověřte instalaci

Instalaci serveru MySQL můžeme ověřit pomocí příkazu uvedeného níže, abychom zkontrolovali, zda server MySQL běží.

# Check MySQL Status
systemctl status mysql

# Output mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-06-05 19:42:35 IST; 9min ago Main PID: 63433 (mysqld) Status: "Server is operational" Tasks: 40 (limit: 4624) Memory: 319.2M CGroup: /system.slice/mysql.service └─63433 /usr/sbin/mysqld Jun 05 19:42:35 bravo systemd[1]: Starting MySQL Community Server... Jun 05 19:42:35 bravo systemd[1]: Started MySQL Community Server.

Zkontrolujte také verzi námi nainstalovaného serveru a ujistěte se, že je server přístupný pomocí námi nakonfigurovaného hesla root.

# Check version
sudo mysql --version

# Output
mysql Ver 8.0.20-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))

# Login
sudo mysql
# OR
sudo mysql -u root

# Quit Database
exit

Můžeme se jednoduše přihlásit do MySQL, jak je uvedeno výše, i když jsme při zabezpečení serveru MySQL poskytli heslo uživatele root. MySQL přímo umožňuje uživateli root, protože používá auth_socket plugin pro uživatele root, který nepotřebuje žádné heslo.

Plugin pro heslo uživatele root

Můžeme změnit heslo plugin uživatele root na caching_sha2_password (preferováno) nebo mysql_native_password umožnit ostatním aplikacím včetně phpMyAdmin přihlásit se k serveru MySQL pomocí uživatele root. To lze provést pomocí příkazů uvedených níže.

# Login to MySQL
sudo mysql

# Check password scheme of root user
SELECT user,authentication_string,plugin,host FROM mysql.user;

# Note the password plugin of root user
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| debian-sys-maint | $A$005$[DA
NP9|K1zAmHe`LVwrhII7zBo5b5xUoPnvOLuCa9CSJVqCn7W1rzOCCyZD | caching_sha2_password | localhost |
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| root | | auth_socket | localhost |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+

# Change to new and recommended password plugin - caching_sha2_password
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '<pw>';

# Apply changes
flush privileges;

# Check password scheme 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 | $A$005$ZtYD-ppbn>iO�"MHhl/0TXh9Qo3xYdWK3ThKPmDB6r.QhVlZY1dcT1LWH0A | caching_sha2_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

# Change password plugin of root user to mysql_native_password - not recommended
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<pw>';

# Apply changes
flush privileges;

# Check password scheme 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 | *E5C4F73D963032BEF9BB4CA799A848C08BADC343 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

# Quit Database
exit

Další uživatelé

Další uživatele můžeme přidat pomocí příkazu CREATE USER, jak je znázorněno níže.

# Login to MySQL - auth_socket
sudo mysql

# OR - Login to MySQL - caching_sha2_password
sudo mysql -u root -p

# Add User
CREATE USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '<pw>';

# Apply changes
flush privileges;

# Quit Database
exit

Můžete také sledovat Naučit se základní dotazy SQL pomocí MySQL a naučit se základní dotazy SQL.

Důležité příkazy

Tato část ukazuje některé důležité příkazy pro spuštění, zastavení a restartování serveru.

# 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
 

Shrnutí

Tento tutoriál poskytuje všechny kroky potřebné k instalaci nejnovější verze serveru MySQL, tj. MySQL 8 na Ubuntu 20.04 LTS. Poskytuje také konfigurační kroky pro další zabezpečení instalace serveru MySQL.

Po dokončení instalace můžete také postupovat podle pokynů Naučit se základní dotazy SQL pomocí MySQL, Průvodce návrhem databáze pro správu blogů v MySQL a Průvodce návrhem databáze pro online nákupní košík v MySQL.


  1. Jak vypočítat věk od data narození v SQL

  2. Osvědčený postup pro volné propojení mezi daty a uživatelským rozhraním v systému Android – Adaptér, Filtr, CursorLoader a ContentProvider

  3. Co mají Poker, Blackjack, Belot a Préférence společného s databázemi?

  4. Funkce IIf() vs. Příkaz IIf().