GNU/Linux >> Znalost Linux >  >> Linux

Nainstalujte MySQL Server na operační systém Ubuntu

MySQL je open-source relační databáze, která je zdarma a široce používaná. Je to dobrá volba, pokud víte, že potřebujete databázi, ale nevíte mnoho o všech dostupných možnostech.

Tento článek popisuje základní instalaci databázového serveru MySQL na operační systém Ubuntu. Možná budete muset nainstalovat další balíčky, aby aplikace mohly používat MySQL, jako jsou rozšíření pro PHP. Podrobnosti naleznete v dokumentaci aplikace.

Instalovat MySQL

Nainstalujte server MySQL pomocí správce balíčků operačního systému Ubuntu:

sudo apt-get update
sudo apt-get install mysql-server

Instalační program nainstaluje MySQL a všechny závislosti.

Pokud se nástroj pro zabezpečenou instalaci nespustí automaticky po dokončení instalace, zadejte následující příkaz:

sudo mysql_secure_installation utility

Tento nástroj vás vyzve k definování hesla root mysql a dalších možností souvisejících se zabezpečením, včetně odebrání vzdáleného přístupu uživateli root a nastavení hesla root.

Povolit vzdálený přístup

Pokud máte povoleno iptables a chcete se připojit k databázi MySQL z jiného počítače, musíte otevřít port ve bráně firewall vašeho serveru (výchozí port je 3306). Nemusíte to dělat, pokud aplikace, která používá MySQL, běží na stejném serveru.

Spuštěním následujícího příkazu povolte vzdálený přístup k serveru mysql:

sudo ufw enable
sudo ufw allow mysql

Spusťte službu MySQL

Po dokončení instalace můžete spustit databázovou službu spuštěním následujícího příkazu. Pokud je služba již spuštěna, zobrazí se zpráva s informací, že služba již běží:

sudo systemctl start mysql

Spustit při restartu

Chcete-li zajistit, aby se databázový server po restartu spustil, spusťte následující příkaz:

sudo systemctl enable mysql

Konfigurovat rozhraní

MySQL ve výchozím nastavení již není vázáno (naslouchá na ) žádným vzdáleně přístupným rozhraním. Upravte direktivu „bind-address“ v /etc/mysql/mysql.conf.d/mysqld.cnf:

bind-address		= 127.0.0.1 ( The default. )
bind-address		= XXX.XXX.XXX.XXX ( The ip address of your Public Net interface. )
bind-address		= ZZZ.ZZZ.ZZZ.ZZZ ( The ip address of your Service Net interface. )
bind-address		= 0.0.0.0 ( All ip addresses. )

Restartujte službu mysql.

sudo systemctl restart mysql

Spustit prostředí mysql

Existuje více než jeden způsob práce se serverem MySQL, ale tento článek se zaměřuje na nejzákladnější a nejkompatibilnější přístup, mysql shell.

  1. Na příkazovém řádku spusťte následující příkaz a spusťte mysql shell a zadejte jej jako uživatel root:

    /usr/bin/mysql -u root -p
    
  2. Až budete vyzváni k zadání hesla, zadejte heslo, které jste nastavili v době instalace, nebo pokud jste žádné nenastavili, stiskněte Enter odeslat žádné heslo.

    Následující mysql měla by se objevit výzva shellu:

    mysql>
    

Nastavte heslo uživatele root

Pokud jste se přihlásili zadáním prázdného hesla nebo pokud chcete změnit nastavené heslo root, můžete heslo vytvořit nebo změnit.

  1. Pro verze starší než MySQL 5.7 zadejte do mysql následující příkaz shell, nahraďte password s vaším novým heslem:

    UPDATE mysql.user SET Password = PASSWORD('password') WHERE User = 'root';
    

    Pro verzi MySQL 5.7 a novější zadejte do mysql následující příkaz shell, nahrazující password s vaším novým heslem:

    UPDATE mysql.user SET authentication_string = PASSWORD('password') WHERE User = 'root';
    
  2. Aby se změna projevila, znovu načtěte uložené informace o uživateli pomocí následujícího příkazu:

    FLUSH PRIVILEGES;
    

    Poznámka :Pro příkazy SQL používáme velká písmena. Pokud tyto příkazy zadáte malými písmeny, budou fungovat. Podle konvence jsou příkazy psány velkými písmeny, aby se odlišily od názvů polí a dalších dat, se kterými se manipuluje.

Pokud budete později potřebovat resetovat heslo root, přečtěte si téma Resetování hesla root MySQL.

Zobrazit uživatele

MySQL ukládá informace o uživateli ve své vlastní databázi. Název databáze je mysql . Uvnitř této databáze jsou informace o uživateli v tabulce adataset s názvem user . Pokud chcete vidět, jací uživatelé jsou nastaveni v tabulce MySQLuser, spusťte následující příkaz:

SELECT User, Host, authentication_string FROM mysql.user;

Následující seznam popisuje části tohoto příkazu:

  • VYBRAT říká MySQL, že žádáte o data.
  • Uživatel , Hostitel , autentizační_řetězec říká MySQL, do jakých polí má nahlížet. Pole jsou kategorie pro data v tabulce. V tomto případě hledáte uživatelské jméno, hostitele spojeného s uživatelským jménem a zašifrované heslo.
  • Z mysql.user “ říká MySQL, aby získala data z mysql databázi a uživatele stůl.
  • Středník (;) ukončuje příkaz.

Poznámka :Všechny SQL dotazy končí středníkem. MySQL nezpracuje dotaz, dokud nezadáte středník.

Uživatelští hostitelé

Následující příklad je výstupem pro předchozí dotaz:

SELECT User, Host, authentication_string FROM mysql.user;
+------------------+-----------+-------------------------------------------+
| User             | Host      | authentication_string                     |
+------------------+-----------+-------------------------------------------+
| root             | localhost | *756FEC25AC0E1823C9838EE1A9A6730A20ACDA21 |
| mysql.session    | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys        | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| debian-sys-maint | localhost | *27E7CA2445405AB10C656AFD0F86AF76CCC57692 |
+------------------+-----------+-------------------------------------------+

Uživatelé jsou přidruženi k hostiteli, konkrétně k hostiteli, ze kterého se připojují. Uživatel root je v tomto příkladu definován jako localhost , pro IP adresu místního hostitele a název hostitele serveru. Obvykle potřebujete nastavit uživatele pouze pro jednoho hostitele, toho, ze kterého se obvykle připojujete.

Pokud aplikaci spouštíte na stejném počítači jako MySQLserver, hostitel, ke kterému se připojuje, je ve výchozím nastavení localhost . Všichni noví uživatelé, které vytvoříte, musí mít localhost v jejich hostiteli pole.

Pokud se vaše aplikace připojuje vzdáleně, hostitel záznam, který MySQL hledá, je IP adresa nebo název hostitele DNS vzdáleného počítače (toho, ze kterého klient přichází).

Anonymní uživatelé

V ukázkovém výstupu má jeden záznam hodnotu hostitele, ale žádné uživatelské jméno ani heslo. Jedná se o anonymního uživatele . Když se klient připojí bez zadaného uživatelského jména, pokouší se připojit jako anonymní uživatel.

Obvykle nechcete žádné anonymní uživatele, ale některé instalace MySQL jednoho ve výchozím nastavení obsahují. Pokud nějaký uvidíte, měli byste uživatele buď smazat (uživatelské jméno označte prázdnými uvozovkami, např. „ “), nebo pro něj nastavit heslo.

Vytvořte databázi

Mezi databázovým serverem je rozdíl a databázi , dokonce i myšlenkové termíny se často používají zaměnitelně. MySQL je databázový server, což znamená, že sleduje databáze a řídí přístup k nim. Databáze uchovává data a je to databáze, ke které se aplikace pokoušejí přistupovat při interakci s MySQL.

Některé aplikace vytvářejí databázi jako součást procesu nastavení, ale jiné vyžadují, abyste si databázi vytvořili sami a řekli o ní aplikaci.

Chcete-li vytvořit databázi, přihlaste se do mysql shell a spusťte následující příkaz, kterým nahradíte demodb s názvem databáze, kterou chcete vytvořit:

CREATE DATABASE demodb;

Po vytvoření databáze můžete ověřit její vytvoření spuštěním dotazu se seznamem všech databází. Následující příklad ukazuje dotaz a příklad výstupu:

SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| demodb             |
| mysql              |
+--------------------+
3 rows in set (0.00 sec)

Přidat uživatele databáze

Když se aplikace připojují k databázi pomocí uživatele root, mají obvykle více oprávnění, než potřebují. Můžete přidat uživatele, které mohou aplikace používat k připojení k nové databázi. V následujícím příkladu uživatel s názvem demouser je vytvořen.

  1. Chcete-li vytvořit nového uživatele, spusťte následující příkaz v mysql shell:

    INSERT INTO mysql.user (User,Host,authentication_string,ssl_cipher,x509_issuer,x509_subject)
    VALUES('demouser','localhost',PASSWORD('demopassword'),'','','');
    
  2. Když provedete změny u uživatele tabulky v mysql databáze, řekněte MySQL, aby přečetlo změny vyprázdněním oprávnění, a to následovně:

    FLUSH PRIVILEGES;
    
  3. Ověřte, že byl uživatel vytvořen opětovným spuštěním dotazu SELECT:

    SELECT User, Host, authentication_string FROM mysql.user;
    
    +------------------+-----------+-------------------------------------------+
    | User             | Host      | Password                                  |
    +------------------+-----------+-------------------------------------------+
    | root             | localhost | *756FEC25AC0E1823C9838EE1A9A6730A20ACDA21 |
    | mysql.session    | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
    | mysql.sys        | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
    | debian-sys-maint | localhost | *27E7CA2445405AB10C656AFD0F86AF76CCC57692 |
    | demouser         | localhost | *0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6 |
    +------------------+-----------+-------------------------------------------+
    

Udělit uživatelská oprávnění databáze

Ihned po vytvoření nového uživatele nemá žádná oprávnění. Uživatel se může přihlásit, ale nelze jej použít k provádění jakýchkoli změn v databázi.

  1. Udělte uživateli plná oprávnění pro vaši novou databázi spuštěním následujícího příkazu:

    GRANT ALL PRIVILEGES ON demodb.* to demouser@localhost;
    
  2. Vyprázdněte oprávnění, aby byla změna oficiální, spuštěním následujícího příkazu:

    FLUSH PRIVILEGES;
    
  3. Chcete-li ověřit, zda jsou tato oprávnění nastavena, spusťte následující příkaz:

    SHOW GRANTS FOR 'demouser'@'localhost';
    2 rows in set (0.00 sec)
    

    MySQL vrací příkazy potřebné k reprodukci oprávnění daného uživatele, pokud byste server přestavěli. USAGE on \*.\* znamená, že uživatelé ve výchozím nastavení nemají žádná oprávnění. Tento příkaz je přepsán druhým příkazem, což je povolení, které jste spustili pro novou databázi.

    +-----------------------------------------------------------------------------------------------------------------+
    | Grants for demouser@localhost                                                                                   |
    +-----------------------------------------------------------------------------------------------------------------+
    | GRANT USAGE ON *.* TO 'demouser'@'localhost' IDENTIFIED BY PASSWORD '*0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6' |
    | GRANT ALL PRIVILEGES ON `demodb`.* TO 'demouser'@'localhost'                                                    |
    +-----------------------------------------------------------------------------------------------------------------+
    2 rows in set (0.00 sec)
    

Přehled

Pokud právě vytváříte databázi a uživatele, máte hotovo. Zde uvedené pojmy by vám měly poskytnout solidní začátek, ze kterého se dozvíte více.

  • Nakonfigurujte server MySQL v operačním systému Ubuntu
  • Resetujte kořenové heslo MySQL

Linux
  1. Jak nainstalovat MySQL Server na Ubuntu 16.04

  2. Nakonfigurujte server MySQL na operačním systému Ubuntu

  3. Naplánujte restartování v operačním systému Ubuntu

  1. Jak nainstalovat MySQL Server na Ubuntu 17.04

  2. Jak nainstalovat webový server Apache na Ubuntu

  3. Jak nainstalovat MySQL na Ubuntu 16.04

  1. Jak nainstalovat MySQL na Ubuntu 18.04

  2. Nainstalujte IMAP pro PHP 7.1 na operační systém Ubuntu

  3. Jak nainstalovat MySQL na Ubuntu 22.04