sql >> Database >  >> RDS >> Mysql

MySQL installeren op CentOS 7

MySQL is een populair databasebeheersysteem dat wordt gebruikt voor web- en servertoepassingen. MySQL bevindt zich echter niet langer in de repositories van CentOS en MariaDB is het standaard aangeboden databasesysteem geworden. MariaDB wordt beschouwd als adrop-in-vervanging voor MySQL en zou voldoende zijn als u alleen een databasesysteem in het algemeen nodig heeft. Zie onze MariaDB in CentOS 7-handleiding voor installatie-instructies.

Als u toch de voorkeur geeft aan MySQL, wordt in deze handleiding uitgelegd hoe u dit installeert, configureert en beheert op een Linode met CentOS 7.

Grote MySQL-databases kunnen een aanzienlijke hoeveelheid geheugen vergen. Om deze reden raden we aan om een ​​High Memory Linode te gebruiken voor dergelijke opstellingen.

Opmerking Deze handleiding is geschreven voor een niet-rootgebruiker. Opdrachten die verhoogde bevoegdheden vereisen, worden voorafgegaan door sudo . Als je niet bekend bent met de sudo commando, kunt u onze handleiding voor gebruikers en groepen raadplegen.

Voordat u begint

  1. Zorg ervoor dat u de handleidingen Aan de slag en uw server beveiligen hebt gevolgd en dat de hostnaam van Linode is ingesteld.

    Om te controleren of uw hostnaam wordt uitgevoerd:

    hostname
    hostname -f
    

    De eerste opdracht moet uw korte hostnaam tonen en de tweede uw volledig gekwalificeerde domeinnaam (FQDN).

  2. Werk uw systeem bij:

    sudo yum update
    
  3. Je hebt wget . nodig om deze handleiding te voltooien. Het kan als volgt worden geïnstalleerd:

    yum install wget
    

MySQL installeren

MySQL moet worden geïnstalleerd vanuit de community-repository.

  1. Download en voeg de repository toe en update vervolgens.

    wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
    sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
    yum update
    
  2. Installeer MySQL zoals gewoonlijk en start de service. Tijdens de installatie wordt u gevraagd of u de resultaten van de GPG-verificatie van het .rpm-bestand wilt accepteren. Als er geen fout of niet-overeenstemming optreedt, voer dan y . in .

    sudo yum install mysql-server
    sudo systemctl start mysqld
    

MySQL zal standaard binden aan localhost (127.0.0.1). Raadpleeg onze MySQL-handleiding voor externe toegang voor informatie over verbinding maken met uw databases via SSH.

Opmerking Onbeperkte toegang tot MySQL toestaan ​​op een openbaar IP-adres dat niet wordt geadviseerd, maar u kunt het adres waarop het luistert wijzigen door het bind-address aan te passen parameter in /etc/my.cnf . Als u besluit MySQL aan uw openbare IP-adres te binden, moet u firewallregels implementeren die alleen verbindingen van specifieke IP-adressen toestaan.

MySQL-server verharden

  1. Voer de mysql_secure_installation . uit script om verschillende beveiligingsproblemen in een standaard MySQL-installatie aan te pakken.

     sudo mysql_secure_installation
    

U krijgt de keuze om het MySQL-rootwachtwoord te wijzigen, anonieme gebruikersaccounts te verwijderen, rootaanmeldingen buiten localhost uit te schakelen en testdatabases te verwijderen. Het wordt aanbevolen om yes . te antwoorden naar deze opties. U kunt meer lezen over het script in de MySQL Reference Manual.

Opmerking

Als MySQL 5.7 is geïnstalleerd, hebt u het tijdelijke wachtwoord nodig dat tijdens de installatie is aangemaakt. Dit wachtwoord wordt genoteerd in de /var/log/mysql.log bestand, en kan snel worden gevonden met de volgende opdracht.

sudo grep 'temporary password' /var/log/mysqld.log

MySQL gebruiken

De standaard tool voor interactie met MySQL is de mysql client die installeert met de mysql-server pakket. De MySQL-client wordt gebruikt via een terminal.

Root Login

  1. Aanmelden bij MySQL als rootgebruiker:

    mysql -u root -p
    
  2. Voer desgevraagd het root-wachtwoord in dat u hebt toegewezen toen het mysql_secure_installation-script werd uitgevoerd.

    U krijgt dan een welkomstkoptekst en de MySQL-prompt te zien, zoals hieronder weergegeven:

     mysql>
    
  3. Om een ​​lijst met opdrachten voor de MySQL-prompt te genereren, typt u \h . Je ziet dan:

     List of all MySQL commands:
     Note that all text commands must be first on line and end with ';'
     ?         (\?) Synonym for `help'.
     clear     (\c) Clear command.
     connect   (\r) Reconnect to the server. Optional arguments are db and host.
     delimiter (\d) Set statement delimiter. NOTE: Takes the rest of the line as new delimiter.
     edit      (\e) Edit command with $EDITOR.
     ego       (\G) Send command to mysql server, display result vertically.
     exit      (\q) Exit mysql. Same as quit.
     go        (\g) Send command to mysql server.
     help      (\h) Display this help.
     nopager   (\n) Disable pager, print to stdout.
     notee     (\t) Don't write into outfile.
     pager     (\P) Set PAGER [to_pager]. Print the query results via PAGER.
     print     (\p) Print current command.
     prompt    (\R) Change your mysql prompt.
     quit      (\q) Quit mysql.
     rehash    (\#) Rebuild completion hash.
     source    (\.) Execute an SQL script file. Takes a file name as an argument.
     status    (\s) Get status information from the server.
     system    (\!) Execute a system shell command.
     tee       (\T) Set outfile [to_outfile]. Append everything into given outfile.
     use       (\u) Use another database. Takes database name as argument.
     charset   (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
     warnings  (\W) Show warnings after every statement.
     nowarning (\w) Don't show warnings after every statement.
    
     For server side help, type 'help contents'
    
     mysql>
    

Maak een nieuwe MySQL-gebruiker en database

  1. In het onderstaande voorbeeld testdb is de naam van de database, testuser is de gebruiker, en password is het wachtwoord van de gebruiker.

     create database testdb;
     create user 'testuser'@'localhost' identified by 'password';
     grant all on testdb.* to 'testuser' identified by 'password';
    

    U kunt dit proces verkorten door de gebruiker terwijl . aan te maken databaserechten toewijzen:

     create database testdb;
     grant all on testdb.* to 'testuser' identified by 'password';
    
  2. Sluit vervolgens MySQL af.

    exit
    

Maak een voorbeeldtabel

  1. Log opnieuw in als testuser .

    mysql -u testuser -p
    
  2. Maak een voorbeeldtabel met de naam klanten . Dit creëert een tabel met een klant-ID-veld van het type INT voor integer (automatisch verhoogd voor nieuwe records, gebruikt als de primaire sleutel), evenals twee velden voor het opslaan van de naam van de klant.

    use testdb;
    create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
    
  3. Sluit vervolgens MySQL af.

    exit
    

Reset het MySQL-rootwachtwoord

Als u uw root MySQL-wachtwoord bent vergeten, kan het opnieuw worden ingesteld.

  1. Stop de huidige MySQL-serverinstantie en start deze opnieuw met een optie om niet om een ​​wachtwoord te vragen.

    sudo systemctl stop mysqld
    sudo mysqld_safe --skip-grant-tables &
    
  2. Maak opnieuw verbinding met de MySQL-server met het MySQL-rootaccount.

    mysql -u root
    
  3. Gebruik de volgende opdrachten om het wachtwoord van root opnieuw in te stellen. Vervang password met een sterk wachtwoord.

    use mysql;
    update user SET PASSWORD=PASSWORD("password") WHERE USER='root';
    flush privileges;
    exit
    
  4. Start vervolgens MySQL opnieuw.

    sudo systemctl start mysqld
    

Tune MySQL

MySQL Tuner is een Perl-script dat verbinding maakt met een actief exemplaar van MySQL en configuratieaanbevelingen geeft op basis van de werkbelasting. Idealiter zou de MySQL-instantie ten minste 24 uur moeten hebben gewerkt voordat de tuner werd uitgevoerd. Hoe langer de instantie actief is, hoe beter het advies dat MySQL Tuner zal geven.

  1. Download MySQL Tuner naar uw thuismap.

    wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl
    
  2. Om het uit te voeren:

    perl ./mysqltuner.pl
    

    U wordt gevraagd om de gebruikersnaam en het wachtwoord van de MySQL-root. De output zal twee interessegebieden tonen:algemene aanbevelingen en variabelen om aan te passen.

MySQL Tuner is een uitstekend startpunt om een ​​MySQL-server te optimaliseren, maar het zou verstandig zijn om aanvullend onderzoek te doen naar configuraties die zijn afgestemd op de toepassing(en) die MySQL op uw Linode gebruiken.

Heeft u nog een paar vragen?

Word lid van onze community en stel uw vragen zodat andere Linode- en Linux-enthousiastelingen u kunnen helpen.

Verwante vragen:
  • Hoe installeer ik phpMyAdmin op Centos7
  • Hoe kan ik een LAMP/LEMP-stack instellen op mijn Linode?
  • Hoe voer ik zowel MySQL als MongoDB uit?

Meer informatie

U kunt de volgende bronnen raadplegen voor aanvullende informatie over dit onderwerp. Hoewel deze worden verstrekt in de hoop dat ze nuttig zullen zijn, houd er rekening mee dat we niet kunnen instaan ​​voor de nauwkeurigheid of tijdigheid van extern gehost materiaal.

  • MySQL 5.6-referentiehandleiding
  • PHP MySQL-handleiding
  • Perl DBI-voorbeelden voor DBD::mysql
  • Gebruikershandleiding voor MySQLdb
  • MySQL Tuner-zelfstudie

  1. @@ERROR en/of TRY - CATCH

  2. Een databasediagram maken in MySQL Workbench

  3. Selecteer rijnummer in postgres

  4. Schrijfoptimalisaties voor Qualcomm Centriq 2400 in MariaDB 10.3.5 Release Candidate