Co je MySQL?
MySQL je rychlý, spolehlivý, škálovatelný a snadno použitelný relační databázový systém s otevřeným zdrojovým kódem, je podporován společností Oracle. MySQL Server je navržen tak, aby zpracovával kritické produkční aplikace s velkým zatížením. Pokud vyvíjíte webové stránky nebo webové aplikace, je MySQL dobrou volbou. MySQL je základní součástí LAMP stacku, který zahrnuje Linux, Apache, MySQL a PHP.
Proč používat Bitnami MySQL Stack?
Bitnami MySQL Stack je vždy aktuální a bezpečný. Instalace a konfigurace stohu je zcela automatizovaná, takže je snadno zprovozní každý, včetně těch, kteří nejsou příliš techničtí.
Výukové programy a dokumentace Bitnami MySQL
- Stránka Bitnami MySQL
- Uživatelská příručka Bitnami MySQL
- Protokol změn Bitnami MySQL
- Vytvoření databáze MySQL a uživatele
- Upravit heslo správce MySQL
- Zabezpečit MySQL
- Provádění výpisu a obnovení záloh MySQL
- Konfigurace MySQL Workbench
- Kontrola souboru protokolu MySQL
Kde najít kořenové přihlašovací údaje MySQL?
Pověření kořenového adresáře instance/uzlu/počítače budou odeslány na vaši registrovanou e-mailovou adresu, jakmile bude instance MySQL spuštěna.
Pověření MySQL jsou uložena v samostatném souboru. Chcete-li kdykoli získat přihlašovací údaje, postupujte takto:
- Připojte se k instanci/uzlu/stroji prostřednictvím SSH pomocí rootu přihlašovací údaje uživatele.
- Spusťte následující příkaz a získejte přihlašovací údaje aplikace:
cat /home/bitnami/bitnami_credentials
Poznámka:Pro uživatele MySQL je root, shora prosím zkopírujte pouze Heslo
Jak otevřít port MySQL 3306 pomocí brány UFW Firewall
Ve výchozím nastavení je port Bitnami MySQL nakonfigurován tak, aby byl přístupný pouze v localhost. Chcete-li otevřít port MySQL na otevřený internet nebo pouze na konkrétní IP adresy, postupujte podle níže uvedených kroků.
1. Připojte se k instanci/uzlu/stroji přes SSH pomocí rootu přihlašovací údaje uživatele.
Bezpečnostní riziko :Vytvoření tohoto síťového portu databáze na veřejný internet je významným bezpečnostním rizikem. Důrazně se doporučuje otevřít port MySQL pouze pro důvěryhodné adresy IP.
2 (a) Provedením následujícího příkazu otevřete port k Internetu:
ufw allow mysql/tcp
2 (b) Prove te následující příkaz pro otevření portu pro konkrétní IP adresu
ufw allow from IPADDRESS to any port 3306 proto tcp
Jak propojím databázi MySQL?
Jakmile
- Připojte se k instanci/uzlu/stroji prostřednictvím SSH pomocí rootu přihlašovací údaje uživatele.
ssh root@<public IP>
- Spusťte následující příkaz pro přihlášení k databázi mysql
# mysql -u root -p
Budete vyzváni k zadání kořenového adresáře uživatelské heslo…
Jak povolit vzdálený přístup IP adresy MYSQL?
Ve výchozím nastavení MySQL neumožňuje vzdáleným klientům připojení k databázi MySQL. Pokud se snažíte vzdáleně získat přístup k databázi MYSQL vašeho serveru, je nápadné, že dostanete odpověď podobnou této:
“ERROR 1130: Host is not allowed to connect to this MySQL server”
Example:
$ mysql -h XXX.168.X.8 -u root -p
Enter password:
ERROR 1130: Host 'xxx.xx.x.x' is not allowed to connect to this MySQL server
Řešení :
Chcete-li tuto chybu překonat, můžete konkrétnímu klientovi povolit
$ /opt/bitnami/mysql/bin/mysql -u root -p
Enter password:
mysql> use mysql
mysql> GRANT ALL ON *.* to root@'XXX.XXX.X.X' IDENTIFIED BY 'your-root-password';
mysql> FLUSH PRIVILEGES;
Nahraďte „XXX.XXX.X.X“ ve výše uvedeném příkladu svou statickou IP adresou a heslem root namísto „hesla vašeho roota“.
Poznámka:Toto bude fungovat pouze v případě, že provozujete internet na službě založené na statickém IP.
Statická IP adresa je číslo, které je počítači přiděleno poskytovatelem internetových služeb (ISP) jako jeho trvalá adresa na internetu.
Provedení výše uvedených příkazů poskytne přístup k jedné konkrétní statické IP, pomocí které lze vzdáleně přistupovat k MYSQL.
Aktualizujte také pravidla brány firewall, abyste se ujistili, že port č. 3306 v UFW je otevřený na serveru, na kterém běží
Jak optimalizovat výkon MySQL pomocí MySQLTuner
Nástroje, které mohou pomoci optimalizovat MySQL:
Chcete-li zjistit, zda je třeba vaši databázi MySQL překonfigurovat, je nejlepší se podívat na to, jak si nyní vedou vaše zdroje. To lze provést pomocí příkazu top nebo pomocí monitorovací služby E2E. Přinejmenším byste se měli seznámit s využitím paměti RAM a CPU vašeho serveru, které lze zjistit pomocí těchto příkazů:
#echo [PID] [MEM] [PATH] && ps aux | awk '{print $2, $4, $11}' | sort -k2rn | head -n 20
#ps -eo pcpu,pid,user,args | sort -k 1 -r | head -20
MySQLTuner:
Skript MySQLTuner vyhodnotí vaši instalaci MySQL
- Chcete-li nainstalovat
mysqltuner , stáhněte simysqltuner skript .pl. Můžete si jej například stáhnout pomocíwget :
#wget https://raw.github.com/rackerhacker/MySQLTuner-perl/master/mysqltuner.pl
- Chcete-li monitorovat server MySQL nainstalovaný pomocí zásobníku Bitnami, předejte hodnoty připojení přes příkazový řádek, jak je znázorněno níže. Všimněte si, že budete potřebovat Perl nainstalovaný v systému.
#perl mysqltuner.pl --socket /opt/bitnami/mysql/tmp/mysql.sock
- Skript vrátí výsledky podobné výstupu níže:
MySQLTuner nabízí návrhy, jak zlepšit výkon databáze. Pokud jste opatrní při aktualizaci databáze sami, následování návrhů MySQLTuner je jedním z bezpečnějších způsobů, jak zlepšit výkon databáze.
Ladění MySQL:
Při změně konfigurace MySQL dávejte pozor na změny a na to, jak ovlivňují vaši databázi. I když se budete řídit pokyny programů, jako je MySQLTuner, je nejlepší tomuto procesu trochu rozumět.
Konfigurační soubor Bitnami MySQL uložený v následujícím umístění:/opt/bitnami/mysql/my.cnf.
Poznámka:Před aktualizací konfigurace MySQL vytvořte zálohu
# cp /opt/bitnami/mysql/my.cnf ~/my.cnf.backup
Osvědčený postup doporučuje provádět změny, jednu po druhé, a poté po každé změně sledovat server. Po každé změně byste měli restartovat MySQL:
Restartujte server:
# /opt/bitnami/ctlscript.sh restart mysql
Při změně hodnot v souboru my.cnf se ujistěte, že řádek, který měníte, nebyl zakomentován předponou libry (#).
key_buffer
Změna key_buffer alokuje více paměti MySQL, což může podstatně zrychlit vaše databáze, za předpokladu, že máte volnou paměť. Velikost key_buffer by obecně neměla zabírat více než 25 procent systémové paměti při použití tabulkového enginu MyISAM a až 70 procent v případě InnoDB. Pokud je hodnota nastavena příliš vysoko, dochází k plýtvání zdroji.
Podle dokumentace MySQL se pro servery s 256 MB (nebo více) RAM s mnoha tabulkami doporučuje nastavení 64 MB. Servery se 128 MB RAM a méně tabulkami lze nastavit na 16 M, což je výchozí hodnota. Weby s ještě menším počtem zdrojů a tabulek mohou mít tuto hodnotu nastavenou níže.
max_allowed_packet
Tento parametr umožňuje nastavit maximální velikost odesílatelného paketu. Paket je jeden stav SQL, jeden řádek odesílaný klientovi nebo protokol odesílaný z masteru na slave. Pokud víte, že váš server MySQL bude zpracovávat velké pakety, je nejlepší toto zvýšit na velikost vašeho největšího paketu. Pokud je tato hodnota nastavena příliš malá, zobrazí se chyba v protokolu chyb.
thread_stack
Tato hodnota obsahuje velikost zásobníku pro každé vlákno. MySQL považuje výchozí hodnotu proměnné thread_stack za dostatečnou pro běžné použití; pokud by se však zaprotokolovala chyba týkající se zásobníku vláken, lze toto číslo zvýšit.
thread_cache_size
Pokud je thread_cache_size „vypnuto“ (nastaveno na 0), pak každé nově vytvářené připojení vyžaduje vytvoření nového vlákna. Když se spoje rozpojí, závit se zničí. V opačném případě tato hodnota nastavuje počet nepoužívaných vláken, která se mají uložit do mezipaměti, dokud je nebude nutné použít pro připojení. Obecně má toto nastavení malý vliv na výkon, pokud nepřijímáte stovky připojení za minutu, kdy by měla být tato hodnota zvýšena, aby bylo možné většinu připojení vytvořit na vláknech uložených v mezipaměti.
Pool vyrovnávací paměti InnoDB
Vyrovnávací paměť InnoDB je paměťový prostor, který obsahuje mnoho datových struktur InnoDB v paměti, vyrovnávacích pamětí, mezipamětí, indexů a dokonce i řádkových dat. innodb_buffer_pool_size je konfigurační parametr MySQL, který určuje množství paměti alokované do fondu vyrovnávacích pamětí InnoDB pomocí MySQL. Toto je jedno z nejdůležitějších nastavení v konfiguraci hostingu MySQL a mělo by být nakonfigurováno na základě dostupné systémové RAM.
80 % je možná skvělý začátek a pravidlo. Chcete si být jisti, že server má dostatek volné paměti RAM pro operační systém a obvykle neznámé pracovní zatížení. Jak však vidíme níže, čím větší je server, tím je pravděpodobnější, že pravidlo způsobí plýtvání RAM. Myslím si, že pro většinu lidí to začíná a končí podle základního pravidla, většinou proto, že změna fondu vyrovnávací paměti InnoDB vyžaduje restart v aktuálních verzích.
Celkový fond vyrovnávací paměti RAM serveru s pravidlem 80 % zbývající RAM
1G 800 MB 200 MB
16G 13G 3G
32G 26G 6G
64G 51G 13G
128G 102G 26G
256G 205G 51G
512G 409G 103G
1024G 819G 205G
Jaké je tedy lepší pravidlo? Mým pravidlem je, že co největší velikost innodb_buffer_pool_size bez použití swapu, když je v systému spuštěna produkční zátěž. V zásadě to zní dobře, ale opět to vyžaduje spoustu restartů a může být snáze řečeno, než uděláno.
max_connections
Tento parametr nastavuje maximální počet souběžných připojení. Před nastavením tohoto čísla je nejlepší zvážit maximální počet připojení, která jste měli v minulosti, takže mezi tímto horním číslem a hodnotou max_connections budete mít vyrovnávací paměť. Upozorňujeme, že toto neoznačuje maximální počet uživatelů na vašem webu najednou; spíše ukazuje maximální počet uživatelů, kteří podávají požadavky současně.
table_cache
Tato hodnota by měla být vyšší než vaše hodnota open_tables. K určení této hodnoty použijte:
ZOBRAZIT STAV JAKO „otevřeno %“;