sql >> Databasteknik >  >> RDS >> Mysql

Hur man installerar MySQL 8 på Ubuntu 20.04 LTS

MySQL är bland de populära relationsdatabassystemen som används som datalagring av webbplatser och webbapplikationer. Denna handledning innehåller alla steg som krävs för att installera MySQL 8 på Ubuntu 20.04 LTS. Stegen bör vara desamma på andra versioner av Ubuntu och Linux-system. Du kan också följa Hur man installerar MySQL 8 på Ubuntu 18.04 LTS. Du kanske också är intresserad av andra MySQL-specifika handledningar, inklusive hur man installerar MySQL 8 på Windows och lär dig grundläggande SQL-frågor med MySQL.

Förutsättningar

Denna handledning förutsätter att du redan har installerat Ubuntu 20.04 LTS desktop- eller serverversion, antingen för lokal eller produktionsanvändning. Du kan följa Installera Ubuntu 20.04 LTS Desktop, Installera Ubuntu 20.04 LTS på Windows med VMware och Spin Up Ubuntu 20.04 LTS Server på Amazon EC2 för att installera Ubuntu 20.04 LTS. Det förutsätter också att du har antingen root-privilegier eller en vanlig användare med sudo-privilegier.

Installera MySQL

Det här avsnittet innehåller de kommandon som krävs för att installera MySQL Database Server version 8 på 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) ...

Jag har markerat MySQL-paketen som installeras efter att ha utfört installationskommandot. Den installerar MySQL-kärn-, server- och klientpaket. Dessutom installerades MySQL-serverversion 8.0.20 när denna handledning skrevs.

Konfigurera och säkra MySQL-installationen

Vi måste också konfigurera och säkra installationen med kommandot mysql_secure_installation enligt nedanstående. Den kommer att be om att ställa in root-lösenordet och några säkerhetsfrågor.

Steg 1 - Säker installation - Utför kommandot för att starta MySQL-konfigurationen.

# Secure MySQL
sudo mysql_secure_installation

Steg 2 - Lösenordsvalidering - Den ber att bekräfta användningen av lösenordsvalideraren för att validera lösenordet. Det kommer också att visa lösenordets styrka samtidigt som lösenordet anges.

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

Om vi ​​väljer Nej kommer det inte att kontrollera lösenordsstyrkan för MySQL-roten och andra användare när de läggs till. Vi bör använda ett starkt lösenord för MySQL-användare, därför rekommenderas att använda lösenordsvalideringskomponenten.

Steg 3 - Lösenordsvalideringsnivå - Kommandot säker installation frågar lösenordsvalideringsnivån och ger alternativ att välja mellan Låg(0), Medium(1) och Stark(2). Det rekommenderas att du använder minst medelnivå att ha ett starkt lösenord för alla MySQL-användare. Valideringsreglerna för alla nivåer är enligt listan nedan.

Låg - Den förväntar sig ett lösenord med minst 8 tecken utan några begränsningar för tecknen.

Medium - Medelnivån förväntar sig ett lösenord som har minst 8 tecken och tillåter numeriska, versaler, gemener och specialtecken.

Stark - Den starka nivån förväntar sig ett lösenord som har minst 8 tecken och tillåter numeriska, versaler, gemener och specialtecken. Det tillåter också ordboksfilen.

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

Steg 4 - Root-lösenord - Standardinsticksprogrammet för autentisering som används av MySQL för rotanvändaren är auth_socket .

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

Om du har valt att använda Password Validator, kommer det också att visa lösenordets styrka för root-lösenordet och bekräfta att du använder det angivna lösenordet som visas nedan.

# 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

Om vi ​​väljer Nej, kommer det igen att fråga efter lösenordet.

Steg 5 - Ta bort anonyma användare - Efter att ha angett lösenordet ber den säkra installationsprocessen att ta bort de anonyma användarna. MySQL lägger till en anonym användare medan den installeras för teständamål och låter vem som helst logga in utan lösenord. Det rekommenderas att ta bort den anonyma användaren.

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

Steg 6 - Tillåt inte fjärrinloggning - Den säkra installationsprocessen ber också om att bekräfta om fjärrinloggning är tillåten för rotanvändaren. Vi bör välja alternativ y för att begränsa rotanvändaren till lokalvärden. Vi kan alltid lägga till ytterligare användare för att tillåta fjärrinloggning vid behov.

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

Steg 7 - Ta bort testdatabas - MySQL skapar testdatabasen medan den installeras. Du kan behålla testdatabasen för analysändamål och senare släppa den.

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

Steg 8 - Ladda om privilegietabeller - Äntligen ber den säkra installationen att ladda om privilegietabellerna för att omedelbart tillämpa ändringarna.

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

De fullständiga stegen som jag följt av en ny installation av MySQL är som visas nedan.

# 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!

Ovanstående steg tar bort testdatabasen och anonyma användare. Det tillåter också fjärrinloggning för att säkerställa att servern är tillgänglig lokalt antingen med 127.0.0.1 eller localhost .

Verifiera installationen

Vi kan verifiera installationen av MySQL-servern med kommandot som visas nedan för att kontrollera om MySQL-servern körs.

# 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.

Kontrollera också vilken version av servern som är installerad av oss och se till att servern är tillgänglig med det root-lösenord som konfigurerats av oss.

# 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

Vi kan helt enkelt logga in på MySQL som visas ovan, även vi har angett lösenordet för rotanvändaren samtidigt som vi säkrar MySQL-servern. MySQL tillåter rotanvändaren direkt eftersom den använder auth_socket plugin för root-användaren som inte behöver något lösenord.

Root User Password Plugin

Vi kan ändra lösenordsplugin av rotanvändaren till caching_sha2_password (föredraget) eller mysql_native_password för att tillåta andra applikationer inklusive phpMyAdmin att logga in på MySQL-servern med root-användaren. Det kan göras med hjälp av kommandona som visas nedan.

# 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

Ytterligare användare

Vi kan lägga till ytterligare användare med kommandot CREATE USER som visas nedan.

# 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

Du kan också följa Lär dig grundläggande SQL-frågor med MySQL för att lära dig grundläggande SQL-frågor.

Viktiga kommandon

Det här avsnittet visar några av de viktiga kommandona för att starta, stoppa och starta om servern.

# 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
 

Sammanfattning

Denna handledning gav alla steg som krävs för att installera den senaste versionen av MySQL-servern, dvs MySQL 8 på Ubuntu 20.04 LTS. Den gav också konfigurationsstegen för att ytterligare säkra MySQL-serverinstallationen.

Efter att ha slutfört installationen kan du också följa Learn Basic SQL Queries Using MySQL, Guide to Design Database For Blog Management In MySQL, and Guide to Design Database For Online Shopping Cart In MySQL.


  1. Hur man skapar tabeller med hjälp av GUI i SQL Server - SQL Server / T-SQL Tutorial Del 37

  2. skalär underfråga i if-satsen Condition i PL/SQL

  3. Vilka är några sätt att komma åt Microsoft SQL Server från Linux?

  4. Hur du moderniserar ditt företag 2022