MySQL 8 Database Server installeren op CentOS 8
MySQL is een gratis, open-source en een van de populairste databasesystemen over de hele wereld. Het is een relationeel databasemanagement platform dat wordt aangedreven door Oracle Cloud. Het gebruikt Structured Query Language om inhoud in een database toe te voegen, te openen en te beheren. Het staat bekend om zijn bewezen betrouwbaarheid, snelle verwerking, gebruiksgemak en flexibiliteit. Er zijn verschillende nieuwe functies die in MySQL 8 zijn toegevoegd, waaronder, JSON ondersteuning, Transactional Data Dictionary, Persistent runtime configuratie, Document Store, Optimizer Hints, SQL rollen, CTEs en Window functies, Onzichtbare indexen en nog veel meer.
Opmerking: Raadpleeg deofficiële documentatie voordat je MySQL 8 installeert,want MySQL 8 heeft enkele nieuwe mogelijkheden en veranderingen waardoor sommige toepassingen niet compatibel zijn met deze versie.
In deze handleiding laten we je zien hoe je een MySQL 8 database op een CentOS 8 server installeert.
Vereisten
- Een server waarop CentOS 8 draait.
- Een root wachtwoord is ingesteld op je server.
Installeer MySQL 8.0 uit de MySQL Repository
Standaard is MySQL 8.0 niet beschikbaar in de CentOS 8 standaard repository. Je zult dus de gemeenschapsrepository van MySQL 8.0 op je systeem moeten installeren. Je kunt het installeren met het volgende commando:
rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
Je zou de volgende uitvoer moeten zien:
Retrieving https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm warning: /var/tmp/rpm-tmp.hF0m5V: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY Verifying... ################################# [100%] Preparing... ################################# [100%] Updating / installing... 1:mysql80-community-release-el8-1 ################################# [100%]
Controleer vervolgens of de MySQL 8.0 repository al dan niet ingeschakeld is met het volgende commando:
dnf repolist all | grep mysql | grep enabled
Je zou de volgende uitvoer moeten zien:
CentOS-8 - AppStream 3.1 MB/s | 6.5 MB 00:02 CentOS-8 - Base 3.0 MB/s | 5.0 MB 00:01 CentOS-8 - Extras 5.3 kB/s | 2.1 kB 00:00 MySQL 8.0 Community Server 24 MB/s | 543 kB 00:00 MySQL Connectors Community 1.9 MB/s | 19 kB 00:00 MySQL Tools Community 677 kB/s | 62 kB 00:00 mysql-connectors-community MySQL Connectors Community enabled: 42 mysql-tools-community MySQL Tools Community enabled: 19 mysql80-community MySQL 8.0 Community Server enabled: 31
Schakel vervolgens de AppStream repository tijdelijk uit en installeer de nieuwste versie van MySQL 8.0 uit de MySQL community repository met het volgende commando:
dnf --disablerepo=AppStream install mysql-community-server -y
Als de installatie met succes voltooid is, kun je de geïnstalleerde versie van MySQL verifiëren met het volgende commando:
mysql -Version
Je zou de volgende uitvoer moeten zien:
mysql Ver 8.0.19 for Linux on x86_64 (MySQL Community Server - GPL)
Start vervolgens de MySQL service en zet hem aan om te starten na een herstart van het systeem met het volgende commando:
systemctl start mysqld
systemctl enable mysqld
Je kunt ook de status van de MySQL controleren met het volgende commando:
systemctl status mysqld
Je zou de volgende uitvoer moeten zien:
? mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2020-03-05 09:37:46 EST; 12s ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 3244 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) Main PID: 3329 (mysqld) Status: "Server is operational" Tasks: 39 (limit: 12537) Memory: 587.7M CGroup: /system.slice/mysqld.service ??3329 /usr/sbin/mysqld Mar 05 09:37:01 centos8 systemd[1]: Starting MySQL Server... Mar 05 09:37:46 centos8 systemd[1]: Started MySQL Server.
Vervolgens is het altijd een goed idee om het script mysql_secure_installation uit te voeren om enkele extra beveiligingsfuncties in te schakelen, waaronder, een nieuw MySQL root wachtwoord instellen, anonieme gebruiker verwijderen en remote login uitschakelen.
Zoek eerst het standaard MySQL root wachtwoord op met het volgende commando:
cat /var/log/mysqld.log | grep -i 'temporary password'
Uitvoer:
2020-03-05T14:37:40.273796Z 5 [Note] [MY-010454] [Server] A temporary password is generated for [email protected]: GN2uNx-vPqwS
Noteer het bovenstaande wachtwoord en verander het met het mysql_secure_installation script.
mysql_secure_installation
Beantwoord alle vragen zoals hieronder aangegeven:
Securing the MySQL server deployment. Enter password for user root: Provide your temporary MySQL root password The existing password for the user account root has expired. Please set a new password. New password: Provide new root password Re-enter new password: Re-enter new root password The 'validate_password' component is installed on the server. The subsequent steps will run with the existing configuration of the component. Using existing password for root. Estimated strength of the password: 100 Change the password for root ? ((Press y|Y for Yes, any other key for No) : N Type N and Enter to continue ... 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!
Installeer MySQL 8.0 uit de AppStream Repository
Je kunt de MySQL 8.0 ook installeren uit de standaard AppStream repository op de CentOS 8. Je kunt het installeren met het volgende commando:
dnf install @mysql -y
Zodra de installatie voltooid is, controleer je de versie van MySQL met het volgende commando:
mysql -Version
Je zou de volgende uitvoer moeten zien:
mysql Ver 8.0.17 for Linux on x86_64 (Source distribution)
Start vervolgens de MySQL service en zet hem aan om te starten na systeem herstart met het volgende commando:
systemctl start mysqld
systemctl enable mysqld
Standaard is het MySQL root wachtwoord niet ingesteld in de CentoS 8. Je zult het dus moeten instellen met het mysql_secure_installation script.
mysql_secure_installation
Beantwoord alle vragen zoals hieronder aangegeven:
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: 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!
Conclusie
In de bovenstaande gids heb je geleerd hoe je MySQL 8 kunt installeren uit de MySQL community repository en uit de AppStream repository op CentOS 8. Je kunt nu beginnen met het aanmaken van een nieuwe database en databasegebruikers.