sql >> Databáze >  >> RDS >> Mysql

Instalace MySQL na CentOS 7

MySQL je populární systém pro správu databází používaný pro webové a serverové aplikace. MySQL však již není v repozitářích CentOS a MariaDB se stala výchozím nabízeným databázovým systémem. MariaDB je považována za adrop-in náhradu za MySQL a byla by dostačující, pokud potřebujete databázový systém obecně. Pokyny k instalaci naleznete v naší příručce MariaDB v příručce CentOS 7.

Pokud přesto dáváte přednost MySQL, tato příručka představí, jak ji nainstalovat, nakonfigurovat a spravovat na Linode se systémem CentOS 7.

Velké databáze MySQL mohou vyžadovat značné množství paměti. Z tohoto důvodu pro taková nastavení doporučujeme použít aHigh Memory Linode.

Poznámka Tato příručka je napsána pro uživatele bez oprávnění root. Příkazy, které vyžadují zvýšená oprávnění, mají předponu sudo . Pokud neznáte sudo můžete se podívat na naši příručku Uživatelé a skupiny.

Než začnete

  1. Ujistěte se, že jste postupovali podle příruček Začínáme a Zabezpečení serveru a že je nastaven hostitelský název Linode.

    Chcete-li zkontrolovat název hostitele, spusťte:

    hostname
    hostname -f
    

    První příkaz by měl zobrazit váš krátký název hostitele a druhý by měl zobrazit váš plně kvalifikovaný název domény (FQDN).

  2. Aktualizujte svůj systém:

    sudo yum update
    
  3. Budete potřebovat wget k dokončení tohoto průvodce. Lze jej nainstalovat následovně:

    yum install wget
    

Instalovat MySQL

MySQL musí být nainstalováno z komunitního úložiště.

  1. Stáhněte a přidejte úložiště a poté aktualizujte.

    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. Nainstalujte MySQL jako obvykle a spusťte službu. Během instalace budete dotázáni, zda chcete přijmout výsledky ověření GPG souboru .rpm. Pokud nedojde k žádné chybě nebo neshodě, zadejte y .

    sudo yum install mysql-server
    sudo systemctl start mysqld
    

MySQL se standardně váže na localhost (127.0.0.1). Informace o připojení k databázím pomocí SSH naleznete v naší příručce pro vzdálený přístup MySQL.

Poznámka Povolení neomezeného přístupu k MySQL na veřejné IP se nedoporučuje, ale adresu, na které poslouchá, můžete změnit úpravou bind-address parametr v /etc/my.cnf . Pokud se rozhodnete svázat MySQL se svou veřejnou IP, měli byste implementovat pravidla brány firewall, která povolují připojení pouze z konkrétních IP adres.

Harden MySQL Server

  1. Spusťte mysql_secure_installation skript, který řeší několik bezpečnostních problémů ve výchozí instalaci MySQL.

     sudo mysql_secure_installation
    

Budete mít možnost změnit heslo root MySQL, odebrat anonymní uživatelské účty, zakázat přihlášení root mimo localhost a odebrat testovací databáze. Doporučuje se odpovědět yes na tyto možnosti. Více o skriptu si můžete přečíst v referenční příručce MySQL.

Poznámka

Pokud byla nainstalována MySQL 5.7, budete potřebovat dočasné heslo, které bylo vytvořeno během instalace. Toto heslo je uvedeno v /var/log/mysql.log soubor a lze jej rychle najít pomocí následujícího příkazu.

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

Používání MySQL

Standardním nástrojem pro interakci s MySQL je mysql klient, který se instaluje pomocí mysql-server balík. Klient MySQL se používá prostřednictvím terminálu.

Přihlášení uživatele root

  1. Chcete-li se přihlásit do MySQL jako uživatel root:

    mysql -u root -p
    
  2. Po zobrazení výzvy zadejte heslo uživatele root, které jste přiřadili při spuštění skriptu mysql_secure_installation.

    Poté se vám zobrazí uvítací hlavička a výzva MySQL, jak je uvedeno níže:

     mysql>
    
  3. Chcete-li vygenerovat seznam příkazů pro výzvu MySQL, zadejte \h . Poté uvidíte:

     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>
    

Vytvoření nového uživatele a databáze MySQL

  1. V níže uvedeném příkladu testdb je název databáze, testuser je uživatel a password je heslo uživatele.

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

    Tento proces můžete zkrátit vytvořením uživatele zatímco přiřazení oprávnění k databázi:

     create database testdb;
     grant all on testdb.* to 'testuser' identified by 'password';
    
  2. Poté ukončete MySQL.

    exit
    

Vytvoření ukázkové tabulky

  1. Přihlaste se zpět jako testuser .

    mysql -u testuser -p
    
  2. Vytvořte vzorovou tabulku s názvem zákazníci . Tím se vytvoří tabulka s polem ID zákazníka typu INT pro celé číslo (automaticky inkrementováno pro nové záznamy, používá se jako primární klíč) a také dvěma poli pro uložení jména zákazníka.

    use testdb;
    create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
    
  3. Poté ukončete MySQL.

    exit
    

Obnovení hesla kořenového adresáře MySQL

Pokud zapomenete své kořenové heslo pro MySQL, lze jej resetovat.

  1. Zastavte aktuální instanci serveru MySQL a poté ji restartujte s možností nepožadovat heslo.

    sudo systemctl stop mysqld
    sudo mysqld_safe --skip-grant-tables &
    
  2. Znovu se připojte k serveru MySQL pomocí kořenového účtu MySQL.

    mysql -u root
    
  3. Pro resetování hesla roota použijte následující příkazy. Nahraďte password se silným heslem.

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

    sudo systemctl start mysqld
    

Vylaďte MySQL

MySQL Tuner je skript v Perlu, který se připojuje k běžící instanci MySQL a poskytuje doporučení pro konfiguraci na základě pracovního vytížení. V ideálním případě by instance MySQL měla být v provozu alespoň 24 hodin před spuštěním tuneru. Čím déle instance běží, tím lepší rady vám MySQL Tuner poskytne.

  1. Stáhněte si MySQL Tuner do svého domovského adresáře.

    wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl
    
  2. Chcete-li jej spustit:

    perl ./mysqltuner.pl
    

    Budete požádáni o jméno a heslo uživatele root MySQL. Výstup zobrazí dvě oblasti zájmu:Obecná doporučení a Proměnné k úpravě.

MySQL Tuner je vynikajícím výchozím bodem pro optimalizaci serveru MySQL, ale bylo by rozumné provést další průzkum konfigurací přizpůsobených aplikacím využívajícím MySQL na vašem Linode.

Máte ještě několik otázek?

Připojte se k naší komunitě a zveřejněte své otázky pro ostatní nadšence pro Linode a Linux, aby vám pomohli.

Související otázky:
  • Jak nainstalovat phpMyAdmin na Centos7
  • Jak mohu na svém Linode nastavit zásobník LAMP/LEMP?
  • Jak spustím MySQL i MongoDB?

Další informace

Další informace o tomto tématu můžete získat v následujících zdrojích. Přestože jsou poskytovány v naději, že budou užitečné, vezměte prosím na vědomí, že nemůžeme ručit za přesnost nebo aktuálnost externě hostovaných materiálů.

  • Referenční příručka MySQL 5.6
  • Příručka PHP MySQL
  • Příklady DBI v Perlu pro DBD::mysql
  • Uživatelská příručka MySQLdb
  • Výukový program MySQL Tuner

  1. Oprava Msg 8116 „Datový typ argumentu varchar je neplatný pro argument 1 funkce session_context“ v SQL Server

  2. Získejte název zdrojové tabulky řádku při dotazu na nadřazený řádek, od kterého dědí

  3. Jak nahradit NULL jinou hodnotou v SQL Server – ISNULL()

  4. SELECT z tabulky se seznamem Varying IN v klauzuli WHERE