GNU/Linux >> Znalost Linux >  >> Linux

Nakonfigurujte server MariaDB na CentOS

Předchozí článek pojednával o základním nastavení serveru MariaDB® na CentOS Linuxu, včetně nastavení rootpassword, vytvoření databáze a vytvoření uživatele pro databázi. Nyní se podívejme na MariaDB trochu podrobněji, abychom vyladili její konfiguraci a byli připraveni pro případ, že by se něco pokazilo.

Najděte konfigurační soubory

Ve výchozím nastavení najdete konfigurační soubor MariaDB v následujícím umístění:

/etc/my.cnf

Pokud tam není, můžete použít mysqld a vyhledejte konfigurační soubor spuštěním následujícího příkazu:

/usr/libexec/mysqld --help --verbose

Dostanete zpět spoustu textů. První část popisuje možnosti, které můžete odeslat na server při jeho spuštění. Druhou částí jsou všechny konfigurační informace, které byly nastaveny při kompilaci serveru.

Poblíž začátku výstupu najděte několik řádků, které vypadají podobně jako následující řádky:

Default options are read from the following files in the given order:
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf

Server pokračuje v seznamu, dokud nenajde konfigurační soubor.

moje.cnf

Otevřete soubor my.cnf soubor a podívejte se dovnitř.

Libovolné řádky začínající # jsou komentáře a většinou dokumentují, k čemu různá nastavení slouží. Najdete zde podrobnosti, jako je umístění souborů protokolu a umístění databázových souborů.

Skupiny konfigurace

V konfiguračním souboru jsou řádky, které obsahují pouze slovo v hranatých závorkách, například [klient] nebo [mysqld] . To jsou skupiny konfigurace a sdělí programům, které čtou konfigurační soubor, kterým částem by měli věnovat pozornost.

MariaDB je technicky sbírka nástrojů, která zahrnuje server (mysqld ), klient (mysql ) a některé další nástroje. Programy vypadají v my.cnf aby viděli, jak by se měli chovat.

V podstatě mysql konfigurační sekce řídí klienta a mysqld sekce ovládá server.

Soubory protokolu

Pokud se něco pokazí, nejlepším místem pro zahájení odstraňování problémů s jakýmkoli programem jsou jeho protokoly. Ve výchozím nastavení MariaDB ukládá své protokolové soubory do následujícího adresáře:

/var/log/mariadb

Poznámka :Možná budete muset použít sudo získat seznam souborů v tomto adresáři.

Pokud nenajdete protokoly ve výchozím adresáři, musíte zkontrolovat konfiguraci MariaDB. Podívejte se do my.cnf a vyhledejte log_error řádek, jako v:

log_error = /var/log/mariadb/mariadb.log

Pokud takový řádek nevidíte, vytvořte jej v mysqld sekce, takže MariaDB bude používat svůj vlastní protokol chyb. Doporučujeme použít umístění v příkladu a vytvořit /var/log/mariadb adresář, pokud již neexistuje. Aplikujte změnu restartováním MariaDB pomocí následujícího příkazu:

systemctl restart mariadb

Ujistěte se, že do vybraného adresáře protokolu může uživatel, který řídí proces MariaDB, zapisovat.

Nastavení sítě

Může existovat port nastavení v sekcích konfigurace klienta i serveru. Port v sekci server řídí port, na kterém server naslouchá. Ve výchozím nastavení je to 3306, ale můžete jej změnit na cokoli.

Port v klientské části sděluje klientovi port, ke kterému se má standardně připojit. Obecně chcete, aby se nastavení dvou portů shodovalo.

Pokud v konfiguračním souboru nevidíte položky portů, znamená to, že porty používají výchozí nastavení. Pokud chcete změnit port, přidejte řádky do příslušných kategorií, jak ukazuje následující příklad:

[client]
port = 3306

[mysqld]
port = 3306

Dalším síťovým nastavením, které je třeba hledat, je bind-address hodnota. Obvykle je nastavena na adresu pro localhost, 127.0.0.1. Navázáním tolocalhost server zajišťuje, že se k němu nikdo nemůže připojit zvenčí místního počítače.

Pokud provozujete server MariaDB na jiném počítači, než je vaše aplikace, chcete se svázat se vzdáleně dostupnou adresou namísto localhost. Změňte bind-address nastavení tak, aby odpovídalo vaší veřejné IP adrese (nebo ještě lépe backendové IP adrese v síti, ke které má přístup méně strojů).

Pokud nevidíte bind-address měli byste jeden vložit do mysqld kategorie, která vám pomůže řídit přístup k serveru, podobně jako v následujícím příkladu:

[mysqld]
bind-address = 127.0.0.1

Nezapomeňte vzít v úvahu název hostitele klienta při nastavování uživatelů databáze a nakonfigurujte firewall, pokud používáte iptables.

mysqld a mysqld_safe

V zákulisí jsou ve skutečnosti dvě verze serveru MariaDB,mysqld a mysqld_safe . Oba čtou stejné části konfigurace. Hlavní rozdíl je v tom, že mysqld_safe spouští se s několika povolenými bezpečnostními prvky, které usnadňují zotavení z havárie nebo jiného problému.

Oba mysqld a mysqld_safe přečte konfigurační položky v mysqld sekce. Pokud zahrnete mysqld_safe sekce, pak pouze mysqld_safe přečte tyto hodnoty.

Ve výchozím nastavení mysql služba spouští mysqld_safe . Toto byste měli změnit pouze tehdy, pokud jste si skutečně jisti tím, co děláte.

mysqladmin

mysqladmin umožňuje provádět některé administrativní funkce z příkazového řádku. Tento nástroj není zahrnut v tomto článku, protože tento článek popisuje základy, které vám pomohou zprovoznit a spustit. Tento nástroj si můžete později prohlédnout podrobněji, abyste viděli, co dokáže, zejména pokud potřebujete vytvořit skripty, které provádějí funkce, jako je kontrola stav serveru nebo vytváření a rušení databází.

Zálohy

Pokud jde o vytváření záloh vašich databází (kromě přístupu k zálohování celého stroje), máte několik možností. Hlavní možnosti jsou kopírování databázových souborů a použití mysqldump .

Kopírování souboru

Ve výchozím nastavení MariaDB vytvoří pro každou databázi ve svém datovém adresáři adresář, který vypadá podobně jako v následujícím příkladu:

/var/lib/mysql

Poté, co najdete datový adresář, nevytvářejte jeho kopii okamžitě. Když je databázový server aktivní, může kdykoli zapisovat nové hodnoty do tabulek. Pokud v polovině vaší kopie zapíše do tabulky, některé soubory se změní a povedou k poškozené záloze. Pokud se snažíte naplánovat obnovu po havárii, není to dobré.

Abyste se ujistili, že databázové soubory jsou zkopírovány čistě, před kopírováním zcela vypněte server MariaDB. To je bezpečné, ale není to vždy ideální.

Dalším přístupem, který můžete použít, je uzamknout databázi jako pouze pro čtení po dobu trvání kopie. Až budete hotovi, uvolněte zámek. Vaše aplikace tak mohou stále číst data, zatímco zálohujete soubory.

Zamkněte databáze pouze pro čtení spuštěním následujícího příkazu z příkazového řádku:

mysql -u root -p -e "FLUSH TABLES WITH READ LOCK;"

Chcete-li po dokončení odemknout databázi, spusťte tento příkaz:

mysql -u root -p -e "UNLOCK TABLES;"

Možnosti -e pomocí mysql klient říká klientovi, aby spustil dotaz v uvozovkách, jako by byl zadán pomocí mysql shell.

Pokud tyto příkazy nastavujete ve skriptu, můžete heslo vložit do uvozovek hned za -p bez mezery mezi nimi, jako v následujícím příkladu:

mysql -u root -p"password" -e "FLUSH TABLES WITH READ LOCK;"
mysql -u root -p"password" -e "UNLOCK TABLES;"

Poznámka: Ujistěte se, že jste nastavili oprávnění k tomuto souboru, abyste omezili přístup pro čtení, abyste chránili heslo.

mysqldump

Dalším přístupem k zálohování databáze je použití mysqldump nástroj. Místo přímého kopírování souborů databáze mysqldump vygeneruje textový soubor, který představuje databázi. Ve výchozím nastavení textový soubor obsahuje seznam příkazů SQL, které byste použili k opětovnému vytvoření databáze, ale můžete také exportovat databázi v jiném formátu, jako je CSV nebo XML. Můžete si přečíst mysqldump manuálovou stránku zobrazíte všechny její možnosti.

Příkazy generované mysqldump přejděte na standardní výstup. Chcete určit soubor, na který se má výstup při spuštění přesměrovat. Například:

mysqldump -u root -p demodb > dbbackup.sql

Tento příkaz říká mysqldump znovu vytvořit demodb databázové inSQL příkazy a zapsat je do souboru dbbackup.sql . Pamatujte, že možnosti uživatelského jména a hesla fungují stejně jako mysql klient, takže heslo můžete vložit přímo za -p ve skriptu.

Obnovit z mysqldump

Obnovení databáze zkopírované pomocí mysqldump vypadá podobně jako to, co bylo použito k jeho vytvoření, ale používáte mysql místo mysqldump , jak je znázorněno v následujícím příkazu:

mysql -u root -p demodb < dbbackup.sql

Přejdete také z používání znaménka větší-než na menší-než, čímž se příkaz přepne z přesměrování jeho výstupu na příkaz, aby četl svůj vstup z existujícího souboru. Vstup je odeslán do mysql commandand způsobí instrukce v kopii vytvořené pomocí mysqldump znovu vytvořit databázi.

Ve výchozím nastavení se generované příkazy SQL přidávají k existujícím databázovým tabulkám, aniž by je přepisovaly. Pokud obnovujete zálohu přes existující databázi, měli byste nejprve zrušit tabulky databáze nebo zrušit a znovu vytvořit samotnou databázi. Toto chování můžete změnit pomocí –add-drop-table pomocí příkazu, který vytvoří mysqldump . Pokud tak učiníte, způsobí to mysqldump přidat do záložních souborů, které zapisuje, příkaz, který zruší tabulky před jejich opětovným vytvořením.

Databázový modul

Posledním konceptem, kterému se tento článek věnuje, je databázový stroj .Motor je proces, který běží v zákulisí, zapisuje do souborů a čte ze souborů. Obvykle nepotřebujete vědět nic jiného, ​​než že to tam je, ale někdy chcete spustit aplikaci, která byla optimalizována pro konkrétní databázový stroj.

Typ motoru se nastavuje při vytvoření tabulky. Tabulky obvykle vytváří aplikace, která je bude používat.

Chcete-li zobrazit stroj používaný tabulkami vaší databáze, můžete spustit následující příkaz v prostředí MariaDB a změnit demodb na název vaší databáze:

SHOW TABLE STATUS FROM demodb;

Výběr motoru

V ideálním případě nebudete muset vybírat motor. Pokud nejste příliš obeznámeni s MariaDB, je to nejbezpečnější způsob. Nechte aplikaci, aby to zvládla, a pokud aplikaci píšete, používejte výchozí modul, dokud se nebudete lépe orientovat ve svých možnostech.

Databázové stroje používané s MariaDB nejčastěji jsou MyISAM aInnoDB .

MyISAM

Protože MyISAM byl nějakou dobu výchozí v MySQL, je nejvíce kompatibilní s MariaDB. Některé typy vyhledávání fungují lépe na MyISAM než InnoDB. To, že je starší z těchto dvou, neznamená, že nemůže být pro daný typ aplikace nejlepší.

InnoDB

InnoDB je odolnější vůči chybám než MyISAM a zvládá pády a obnovu s mnohem menší pravděpodobností poškození databáze. To je dobrá věc.

Pro nejlepší výkon však InnoDB vyžaduje mnoho úprav vašeho prostředí a přístupových vzorců. Pokud máte ADBA, tato práce nemusí být problém. Ale pokud jste vývojář, který chce zprovoznit databázi pro testovací server, pravděpodobně se nebudete chtít zabývat laděním InnoDB.

Přehled

V tomto bodě byste měli dobře rozumět MariaDB. Další informace najdete na webu dokumentace MariaDB.


Linux
  1. Instalace MariaDB na CentOS 7

  2. Nainstalujte MariaDB 10.0 na CentOS 6

  3. CentOS / RHEL :Jak nakonfigurovat server DHCP

  1. Instalace MariaDB na CentOS 7 Server – proces krok za krokem?

  2. Nainstalujte server MariaDB na CentOS

  3. Centos 7:Instalace, konfigurace, správa

  1. Nainstalujte MariaDB na CentOS 7

  2. Jak nainstalovat MariaDB na CentOS 8

  3. Centos 7 :Konfigurace serveru DNS