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
.
-
na příkazovém řádku spusťte následující příkaz pro spuštění shellu
mysql
a zadejte jej jako uživatele root:/usr/bin/mysql -u root -p
-
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.
-
u verzí starších než MySQL 5.7 zadejte následující příkaz do shellu
mysql
a nahraďtepassword
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ďtepassword
novým heslem:UPDATE mysql.user SET authentication_string = PASSWORD('password') WHERE User = 'root';
-
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.
-
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'),'','','');
-
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;
-
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