3 února, 2022

podpora sítě

nainstalujte server MySQL do operačního systému Ubuntu

Naposledy aktualizováno dne: 2019-12-20

Autor: Jered Heeschen

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

tento článek popisuje základní instalaci databázového serveru MySQL na operačním systému Ubuntu. Možná budete muset nainstalovat další balíčkyaplikace používají MySQL, jako rozšíření pro PHP. Zkontrolujte, zda vaše applicationdocumentation podrobnosti.

nainstalujte MySQL

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

sudo apt-get updatesudo apt-get install mysql-server

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

pokud se nástroj secure installation 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í kořenového hesla mysql a dalších možností souvisejících se zabezpečením, včetně odstranění vzdáleného přístupu uživatele root a nastavení kořenového hesla.

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 v bráně firewall serveru (defaultport je 3306). Nemusíte to dělat, pokud aplikace, která používá MySQLis běží na stejném serveru.

Spusťte následující příkaz a povolte vzdálený přístup k serveru mysql:

sudo ufw enablesudo ufw allow mysql

spusťte službu MySQL

po dokončení instalace můžete spustit databázovou službuspusťte následující příkaz. Pokud je služba již spuštěna, zpráva vás informuje, že služba již běží:

sudo systemctl start mysql

spuštění při restartu

Chcete-li zajistit spuštění databázového serveru po restartu, spusťte následující příkaz:

sudo systemctl enable mysql

konfigurace rozhraní

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

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

spusťte Shell mysql

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

  1. na příkazovém řádku spusťte následující příkaz pro spuštění shellu mysqla zadejte jej jako uživatele 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 jej nenastavili, stiskněte klávesu Enter pro odeslání hesla.

    zobrazí se následující mysql výzva shellu:

    mysql>

nastavte kořenové heslo

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

  1. u verzí starších než MySQL 5.7 zadejte následující příkaz do shellu mysql a nahraďte password novým heslem:

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

    pro verzi MySQL 5.7 a novější zadejte následující příkaz do shellu mysql a nahraďte password 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 all-caps. Pokud je napíšete malými písmeny, budou fungovat. Podle konvence jsou příkazy psány v all-caps, aby vynikly z názvů polí a dalších dat, s nimiž se manipuluje.

pokud potřebujete obnovit kořenové heslo později, viz Obnovit kořenové heslo MySQL.

Zobrazit uživatele

MySQL ukládá informace o uživateli do své vlastní databáze. Název databázeje mysql. Uvnitř této databáze jsou informace o uživateli v tabulce adataset s názvem user. Pokud chcete vidět, co uživatelé nastavují 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:

  • SELECT řekne MySQL, že žádáte o data.
  • uživatel, hostitel, authentication_string řekne MySQL, v jakých polích to chcete hledat. Pole jsou Kategorie Pro data v tabulce. V takovém případě hledáte uživatelské jméno, hostitele přidruženého k uživatelskému jménu a šifrované zadání hesla.
  • z mysql.uživatel “ řekne MySQL, aby získal data z mysqldatabase a uživatelské tabulky.
  • středník (;) ukončí příkaz.

Poznámka: všechny dotazy SQL končí středníkem. MySQL nezpracovává dotazdokud nezadáte středník.

User hosts

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 spojeni s hostitelem, konkrétně s hostitelem, ze kterého se připojují.Uživatel root v tomto příkladu je definován pro localhost, pro adresu IP localhost a název hostitele serveru.Obvykle je třeba nastavit uživatele pouze pro jednoho hostitele, ze kterého se obvykle připojujete.

pokud používáte aplikaci na stejném počítači jako MySQLserver, hostitel, ke kterému se ve výchozím nastavení připojuje, je localhost. Každý novýuživatelé, které vytvoříte, musí mít localhost ve svém hostitelském poli.

pokud se vaše aplikace připojuje vzdáleně, položka hostitele, kterou MySQL hledá, je IP adresa nebo název hostitele DNS vzdáleného počítače(ten, ze kterého přichází klient).

anonymní uživatelé

v ukázkovém výstupu má jedna položka hodnotu hostitele, ale žádné uživatelské jméno nebo heslo.To je anonymní uživatel. 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 ve výchozím nastavení zahrnují jednu. Pokud ji uvidíte, měli byste uživatele buď smazat (viz uživatelské jméno s prázdnými uvozovkami, například“‚), nebo pro něj nastavit heslo.

vytvořte databázi

existuje rozdíl mezi databázovým serverem a databází, i kdyžtyto termíny jsou často používány zaměnitelně. MySQL je databázový server, což znamenásleduje databáze a řídí přístup k nim. Databáze ukládá data aje to databáze, ke které se aplikace snaží přistupovat, když komunikujís MySQL.

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

Chcete-li vytvořit databázi, přihlaste se do shellu mysql a spusťte následující příkaz a nahraďte demodb 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 dotazuseznam všech databází. Následující příklad ukazuje výstup dotazu a příkladu:

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

Přidat uživatele databáze

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

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

    INSERT INTO mysql.user (User,Host,authentication_string,ssl_cipher,x509_issuer,x509_subject)VALUES('demouser','localhost',PASSWORD('demopassword'),'','','');
  2. při provádění změn v uživatelské tabulce v databázi mysql, tellMySQL číst změny vyplavením oprávnění, následovně:

    FLUSH PRIVILEGES;
  3. ověřte, zda 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 oprávnění uživatele databáze

hned po vytvoření nového uživatele nemá žádná oprávnění. Uživatel se může přihlásit, ale nemůže být použit k provedení jakýchkoli změn databáze.

shrnutí

pokud právě vytváříte databázi a uživatele, jste hotovi. Conceptscovered zde by vám měl dát solidní začátek, ze kterého se dozvíte více.

  • nakonfigurujte Server MySQL v operačním systému Ubuntu
  • obnovte kořenové heslo MySQL

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.