sql >> Database teknologi >  >> RDS >> Mysql

Sådan installeres MySQL 8 på Ubuntu 20.04 LTS

MySQL er blandt de populære relationelle databasesystemer, der bruges som datalagring af websteder og webapplikationer. Denne vejledning indeholder alle de nødvendige trin for at installere MySQL 8 på Ubuntu 20.04 LTS. Trinnene bør være de samme på andre versioner af Ubuntu og Linux-systemer. Du kan også følge Sådan installeres MySQL 8 på Ubuntu 18.04 LTS. Du kan også være interesseret i andre MySQL-specifikke selvstudier, herunder hvordan du installerer MySQL 8 på Windows og lærer grundlæggende SQL-forespørgsler ved hjælp af MySQL.

Forudsætninger

Denne vejledning antager, at du allerede har installeret Ubuntu 20.04 LTS desktop- eller serverversion enten til lokal eller produktionsbrug. Du kan følge Installer Ubuntu 20.04 LTS Desktop, Installer Ubuntu 20.04 LTS på Windows ved hjælp af VMware og Spin Up Ubuntu 20.04 LTS Server på Amazon EC2 for at installere Ubuntu 20.04 LTS. Det forudsætter også, at du enten har root-rettigheder eller en almindelig bruger med sudo-privilegier.

Installer MySQL

Dette afsnit indeholder de kommandoer, der kræves for at installere 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) ...

Jeg har fremhævet de MySQL-pakker, der bliver installeret efter at have udført installationskommandoen. Den installerer MySQL-kerne-, server- og klientpakker. MySQL-serverversion 8.0.20 blev også installeret, mens denne øvelse blev skrevet.

Konfigurer og sikker MySQL-installation

Vi skal også konfigurere og sikre installationen ved hjælp af kommandoen mysql_secure_installation som vist nedenfor. Det vil bede om at indstille root-adgangskoden og et par sikkerhedsspørgsmål.

Trin 1 - Sikker installation - Udfør kommandoen for at starte MySQL-konfigurationen.

# Secure MySQL
sudo mysql_secure_installation

Trin 2 - Adgangskodevalidering - Den beder om at bekræfte brugen af ​​adgangskodevalidatoren for at validere adgangskoden. Det vil også vise adgangskodens styrke, mens adgangskoden angives.

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

Hvis vi vælger Nej, vil den ikke kontrollere adgangskodestyrken for MySQL-roden og andre brugere, mens de tilføjes. Vi bør bruge en stærk adgangskode til MySQL-brugerne, derfor anbefales det at bruge adgangskodevalideringskomponenten.

Trin 3 - Adgangskodevalideringsniveau - Kommandoen sikker installation spørger om adgangskodevalideringsniveauet og giver muligheder for at vælge mellem Lav(0), Medium(1) og Stærk(2). Det anbefales at bruge mindst Mellem niveau at have en stærk adgangskode til alle MySQL-brugere. Valideringsreglerne for alle niveauer er som angivet nedenfor.

Lav - Den forventer en adgangskode med mindst 8 tegn uden nogen begrænsning på tegnene.

Medium - Mellemniveauet forventer en adgangskode, der har mindst 8 tegn og tillader numeriske, store bogstaver, små bogstaver og specialtegn.

Stærk - The Strong Level forventer en adgangskode, der har mindst 8 tegn og tillader numeriske, store bogstaver, små bogstaver og specialtegn. Det tillader også ordbogsfilen.

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

Trin 4 - Root-adgangskode - Standardgodkendelsesplugin'et brugt af MySQL til root-brugeren er auth_socket .

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

Hvis du har valgt at bruge Password Validator, vil den også vise adgangskodens styrke for root-adgangskoden og bekræfte at bruge den givne adgangskode som vist nedenfor.

# 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

Hvis vi vælger Nej, vil det igen bede om adgangskoden.

Trin 5 - Fjern anonyme brugere - Efter at have angivet adgangskoden, beder den sikre installationsproces om at fjerne de anonyme brugere. MySQL tilføjer en anonym bruger, mens den installeres til testformål og giver alle mulighed for at logge ind uden en adgangskode. Det anbefales at fjerne den anonyme bruger.

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

Trin 6 - Tillad fjernlogin - Den sikre installationsproces beder også om at bekræfte, om fjernlogin er tilladt for root-brugeren. Vi bør vælge mulighed y for at begrænse root-brugeren til den lokale vært. Vi kan altid tilføje yderligere brugere for at tillade fjernlogin, når det er nødvendigt.

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

Trin 7 - Fjern testdatabase - MySQL opretter testdatabasen, mens den installeres. Du kan beholde testdatabasen til analyseformål og senere droppe den.

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

Trin 8 - Genindlæs privilegietabeller - Endelig beder den sikre installation om at genindlæse privilegietabellerne for straks at anvende ændringerne.

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

De komplette trin, jeg fulgte på en ny installation af MySQL, er som vist nedenfor.

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

Ovenstående trin fjerner testdatabasen og anonyme brugere. Det tillader også fjernlogin for at sikre, at serveren er tilgængelig lokalt enten ved hjælp af 127.0.0.1 eller localhost .

Bekræft installationen

Vi kan bekræfte installationen af ​​MySQL-serveren ved at bruge kommandoen som vist nedenfor for at kontrollere, om MySQL-serveren kører.

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

Tjek også versionen af ​​serveren, der er installeret af os, og sørg for, at serveren er tilgængelig ved hjælp af root-adgangskoden, som er konfigureret af os.

# 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 blot logge ind på MySQL som vist ovenfor, selv vi har angivet adgangskoden til root-brugeren, mens vi sikrer MySQL-serveren. MySQL tillader root-brugeren direkte, da den bruger auth_socket plugin til root-brugeren, som ikke behøver nogen adgangskode.

Root User Password Plugin

Vi kan ændre adgangskode-plugin'et af root-brugeren til caching_sha2_password (foretrukket) eller mysql_native_password for at tillade de andre applikationer inklusive phpMyAdmin at logge ind på MySQL-serveren ved hjælp af root-brugeren. Det kan gøres ved hjælp af kommandoerne som vist nedenfor.

# 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

Yderligere brugere

Vi kan tilføje yderligere brugere ved at bruge kommandoen CREATE USER som vist nedenfor.

# 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 også følge Lær grundlæggende SQL-forespørgsler ved hjælp af MySQL for at lære grundlæggende SQL-forespørgsler.

Vigtige kommandoer

Dette afsnit viser nogle af de vigtige kommandoer til at starte, stoppe og genstarte serveren.

# 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
 

Oversigt

Denne vejledning indeholdt alle de nødvendige trin for at installere den seneste version af MySQL-serveren, dvs. MySQL 8 på Ubuntu 20.04 LTS. Det indeholdt også konfigurationstrinnene for yderligere at sikre MySQL-serverinstallationen.

Efter at have fuldført installationen kan du også følge Lær grundlæggende SQL-forespørgsler ved hjælp af MySQL, Guide til designdatabase til blogstyring i MySQL og guide til designdatabase til online indkøbskurv i MySQL.


  1. Sådan opdaterer du rækker med en tilfældig dato

  2. SQLite JSON_REPLACE()

  3. Simpel rekursiv forespørgsel i Oracle

  4. Sådan opretter du ordenstal i PostgreSQL