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

Installation af MySQL på CentOS 7

MySQL er et populært databasestyringssystem, der bruges til web- og serverapplikationer. MySQL er dog ikke længere i CentOS's repositories, og MariaDB er blevet standarddatabasesystemet, der tilbydes. MariaDB betragtes som en adrop-in-erstatning for MySQL og ville være tilstrækkelig, hvis du bare har brug for et databasesystem generelt. Se vores MariaDB i CentOS 7-vejledning for installationsinstruktioner.

Hvis du alligevel foretrækker MySQL, vil denne guide introducere, hvordan du installerer, konfigurerer og administrerer det på en Linode, der kører CentOS 7.

Store MySQL-databaser kan kræve en betydelig mængde hukommelse. Af denne grund anbefaler vi at bruge en Linode med høj hukommelse til sådanne opsætninger.

Bemærk Denne guide er skrevet til en ikke-rootbruger. Kommandoer, der kræver forhøjede privilegier, er præfikset med sudo . Hvis du ikke er bekendt med sudo kommando, kan du tjekke vores bruger- og gruppervejledning.

Før du begynder

  1. Sørg for, at du har fulgt guiderne Kom godt i gang og Sikring af din server, og at Linodes værtsnavn er indstillet.

    Sådan tjekker du dit værtsnavn:

    hostname
    hostname -f
    

    Den første kommando skal vise dit korte værtsnavn, og den anden skal vise dit fuldt kvalificerede domænenavn (FQDN).

  2. Opdater dit system:

    sudo yum update
    
  3. Du skal bruge wget for at færdiggøre denne vejledning. Det kan installeres som følger:

    yum install wget
    

Installer MySQL

MySQL skal installeres fra fællesskabslageret.

  1. Download og tilføj lageret, og opdater derefter.

    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. Installer MySQL som normalt og start tjenesten. Under installationen bliver du spurgt, om du vil acceptere resultaterne fra .rpm-filens GPG-verifikation. Hvis der ikke opstår nogen fejl eller uoverensstemmelse, skal du indtaste y .

    sudo yum install mysql-server
    sudo systemctl start mysqld
    

MySQL vil binde til localhost (127.0.0.1) som standard. Se venligst vores MySQL fjernadgangsvejledning for at få oplysninger om tilslutning til dine databaser ved hjælp af SSH.

Bemærk At tillade ubegrænset adgang til MySQL på en offentlig IP anbefales ikke, men du kan ændre adressen, den lytter til ved at ændre bind-address parameter i /etc/my.cnf . Hvis du beslutter dig for at binde MySQL til din offentlige IP, bør du implementere firewall-regler, der kun tillader forbindelser fra specifikke IP-adresser.

Harden MySQL Server

  1. Kør mysql_secure_installation script til at løse flere sikkerhedsproblemer i en standard MySQL-installation.

     sudo mysql_secure_installation
    

Du vil blive givet valget mellem at ændre MySQL root-adgangskoden, fjerne anonyme brugerkonti, deaktivere root-login uden for localhost og fjerne testdatabaser. Det anbefales, at du svarer yes til disse muligheder. Du kan læse mere om scriptet i MySQL Reference Manual.

Bemærk

Hvis MySQL 5.7 blev installeret, skal du bruge den midlertidige adgangskode, der blev oprettet under installationen. Denne adgangskode er noteret i /var/log/mysql.log fil, og kan hurtigt findes ved hjælp af følgende kommando.

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

Brug af MySQL

Standardværktøjet til at interagere med MySQL er mysql klient, som installeres med mysql-server pakke. MySQL-klienten bruges gennem en terminal.

Root-login

  1. Sådan logger du på MySQL som root-bruger:

    mysql -u root -p
    
  2. Når du bliver bedt om det, skal du indtaste den root-adgangskode, du tildelte, da mysql_secure_installation-scriptet blev kørt.

    Du vil derefter blive præsenteret for en velkomstside og MySQL-prompten som vist nedenfor:

     mysql>
    
  3. Indtast \h for at generere en liste over kommandoer til MySQL-prompten . Du vil derefter se:

     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>
    

Opret en ny MySQL-bruger og -database

  1. I eksemplet nedenfor, testdb er navnet på databasen, testuser er brugeren og password er brugerens adgangskode.

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

    Du kan forkorte denne proces ved at oprette brugeren mens tildeling af databasetilladelser:

     create database testdb;
     grant all on testdb.* to 'testuser' identified by 'password';
    
  2. Afslut derefter MySQL.

    exit
    

Opret en prøvetabel

  1. Log ind igen som testuser .

    mysql -u testuser -p
    
  2. Opret en eksempeltabel kaldet kunder . Dette opretter en tabel med et kunde-id-felt af typen INT for heltal (automatisk inkrementeret for nye poster, brugt som primærnøgle), samt to felter til lagring af kundens navn.

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

    exit
    

Nulstil MySQL-rodadgangskoden

Hvis du glemmer din root MySQL adgangskode, kan den nulstilles.

  1. Stop den aktuelle MySQL-serverinstans, og genstart den derefter med en mulighed for ikke at bede om en adgangskode.

    sudo systemctl stop mysqld
    sudo mysqld_safe --skip-grant-tables &
    
  2. Genopret forbindelse til MySQL-serveren med MySQL-rodkontoen.

    mysql -u root
    
  3. Brug følgende kommandoer til at nulstille roots adgangskode. Erstat password med en stærk adgangskode.

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

    sudo systemctl start mysqld
    

Indstil MySQL

MySQL Tuner er et Perl-script, der forbinder til en kørende forekomst af MySQL og giver konfigurationsanbefalinger baseret på arbejdsbelastning. Ideelt set skulle MySQL-instansen have været i drift i mindst 24 timer, før tuneren blev kørt. Jo længere instansen har kørt, jo bedre råd vil MySQL Tuner give.

  1. Download MySQL Tuner til din hjemmemappe.

    wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl
    
  2. For at køre det:

    perl ./mysqltuner.pl
    

    Du bliver bedt om MySQL root-brugerens navn og adgangskode. Outputtet vil vise to interesseområder:Generelle anbefalinger og Variabler, der skal justeres.

MySQL Tuner er et glimrende udgangspunkt for at optimere en MySQL-server, men det ville være klogt at udføre yderligere forskning for konfigurationer, der er skræddersyet til den eller de applikationer, der bruger MySQL på din Linode.

Har du stadig et par spørgsmål?

Tilmeld dig vores fællesskab og stil dine spørgsmål til andre Linode- og Linux-entusiaster for at hjælpe dig.

Relaterede spørgsmål:
  • Sådan installeres phpMyAdmin på Centos7
  • Hvordan kan jeg konfigurere en LAMPE/LEMP-stak på min Linode?
  • Hvordan kører jeg både MySQL og MongoDB?

Flere oplysninger

Du ønsker måske at konsultere følgende ressourcer for yderligere oplysninger om dette emne. Selvom disse leveres i håb om, at de vil være nyttige, bemærk venligst, at vi ikke kan stå inde for nøjagtigheden eller aktualiteten af ​​eksternt hostede materialer.

  • MySQL 5.6 Referencemanual
  • PHP MySQL-manual
  • Perl DBI-eksempler for DBD::mysql
  • MySQLdb Brugervejledning
  • MySQL Tuner Tutorial

  1. Opdatering af databaserækker uden at låse tabellen i PostgreSQL 9.2

  2. Kørsel af Big Data Analytics-forespørgsler ved hjælp af SQL og Presto

  3. PostgreSQL 8.4 giver DML-privilegier på alle tabeller til en rolle

  4. Hvad er den bedste praksis for at indsætte en post, hvis den ikke allerede eksisterer?