Příklady příkazového řádku Mysql. Práce s MySQL z příkazové řádky

Níže je uveden seznam nejužitečnějších a často používaných příkazů MySQL s příklady.

mysql na začátku řádku znamená, že se příkaz provede po přihlášení MySQL.

Symbol # nebo $ na začátku řádku znamená, že příkaz je spuštěn z příkazového řádku.

Chcete-li zkontrolovat stav serveru MYSQL dělat:

Pro FreeBSD:

# stav služby mysql-server

PROTI CentOS/RHEL:

# stav služby mysqld

MySQL z konzole, pokud je server MySQL je na stejném hostiteli:

Pro připojení k serveru MySQL z konzole, pokud je server MySQL je umístěn na vzdáleném hostiteli db1.example.com:

$ mysql -u uživatelské jméno -p -h db1.example.com

Práce s databázemi a tabulkami - prohlížení, mazání, editace záznamů. Řídicí panel

Vytvořte databázi na MySQL server:

Mysql vytvořit databázi

Zobrazit seznam všech databází na serveru MySQL:

použití mysql;

Zobrazit všechny tabulky v databázi:

Mysql zobrazit tabulky;

Zobrazení formátu tabulky v databázi:

mysql popsat;

Smazat databázi:

Mysql drop databáze;

Odstranit tabulku z databáze:

Mysql drop tabulka;

Zobrazit veškerý obsah tabulky:

Mysql SELECT * FROM;

Zobrazit sloupce a obsah sloupců ve vybrané tabulce:

Mysql zobrazit sloupce od ;

Zobrazit řádky v konkrétní tabulce obsahující „cokoli“:

Mysql SELECT * FROM WHERE = "cokoliv";

Zobrazit všechny záznamy v konkrétní tabulce obsahující "Bob" a telefonní číslo "3444444:

Mysql SELECT * FROM WHERE jméno = "Bob" AND phone_number = "3444444";

Zobrazit všechny záznamy, NE obsahující jméno „Bob“ a telefonní číslo „3444444“, seřazené podle pole phone_number:

Mysql SELECT * FROM WHERE jméno != " Bob " AND phone_number = " 3444444 " objednávka podle phone_number;

Zobrazit všechny položky začínající na „bob“ a telefonní číslo"3444444" v konkrétní tabulce:

Mysql SELECT * FROM WHERE jméno jako "Bob %" AND phone_number = "3444444";

Zobrazit všechny položky začínající písmeny „bob“ a telefonním číslem „3444444“, omezení položek 1 až 5:

Mysql SELECT * FROM WHERE jméno jako "Bob %" AND phone_number = "3444444" limit 1,5;

Použití regulárních výrazů ("REGEXP BINARY") k vyhledávání záznamů. Například pro vyhledávání bez rozlišení velkých a malých písmen najděte všechny záznamy začínající písmenem A:

Mysql SELECT * FROM WHERE rec RLIKE "^a";

Zobrazit všechny jedinečné položky:

Mysql SELECT DISTINCT FROM ; mysql SELECT , FROM ORDER BY DESC;

Ukažte počet řádků v tabulce:

Mysql SELECT COUNT(*) FROM ;

Mysql SELECT SUM(*) FROM ;

Odstranění sloupce:

Mysql alter table drop column;

Přidání sloupce do databáze:

Mysql alter table přidat sloupec varchar(20);

Změna názvu sloupce:

Změna tabulky Mysql varchar(50);

Vytvořte sloupec s jedinečným názvem, abyste se vyhnuli duplicitním názvům:

Mysql alter table add unique();

Změna velikosti sloupce:

Mysql změnit tabulku upravit VARCHAR(3);

Odstranění sloupce z tabulky:

Mysql alter table drop index ;

Mysql LOAD DATA INFILE " /tmp/filename.csv " nahradit DO POLE TABULKY UKONČENO "," ŘÁDKY UKONČENÉ "n" (pole1,pole2,pole3);

Uživatelé serveru MySQL, hesla - přidávání, změna uživatelů a hesel. Řídicí panel

Vytvoření nového uživatele - připojení k serveru MySQL jako root, přepnout do databáze, přidat uživatele, aktualizovat oprávnění:

# mysql -u root -p mysql použití mysql; mysql INSERT INTO uživatel (hostitel, uživatel, heslo) VALUES("%"," uživatelské jméno ", PASSWORD(" heslo ")); oprávnění mysql flush;

Změna hesla uživatele z konzoly na vzdáleném hostiteli db1.example.org:

# mysqladmin -u uživatelské jméno -h db1.example.org -p heslo " nové-heslo "

Změna hesla uživatele z konzole MySQL- připojit se jako root, aktualizovat heslo, aktualizovat oprávnění:

# mysql -u root -p mysql NASTAVIT HESLO PRO " uživatele "@" název hostitele " = PASSWORD(" heslo zde "); oprávnění mysql flush;

Obnovení/změna hesla kořenového serveru MySQL- stop MySQL, spusťte bez tabulek oprávnění, připojte se jako root, nastavte nové heslo, ukončete a restartujte MySQL.

# /etc/init.d/mysql stop # mysqld_safe -skip-grant-tables & # mysql -u root mysql use mysql; mysql update user set password=PASSWORD(" newrootpassword ") where User="root"; mysql; flush oprávnění; mysql quit # /etc/init.d/mysql stop # /etc/init.d/mysql start

Nastavte heslo root, pokud existuje heslo root.

# mysqladmin -u root heslo nové heslo

Aktualizovat heslo root:

# mysqladmin -u root -p staré heslo nové heslo

Nastavení práva připojit se k serveru z hostitele localhost heslem "passwd" - připojení k subrootu, přepnutí do databáze, nastavení oprávnění, aktualizace oprávnění:

# mysql -u root -p mysql použití mysql; mysql grant použití na *.* bob @localhost identifikovaný " passwd "; oprávnění mysql flush;

Nastavení uživatelských oprávnění k používání databáze - připojení jako root, přepnutí do databáze, nastavení oprávnění, aktualizace oprávnění:

# mysql -u root -p mysql použití mysql; mysql INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) VALUES ("%","databasename","username","Y","Y","Y"," Y","Y","N"); oprávnění mysql flush;

Mysql udělte všechna oprávnění pro název databáze .* uživatelskému jménu @localhost; oprávnění mysql flush;

Aktualizace informací v databázi:

Mysql UPDATE SET Select_priv = "Y",Insert_priv = "Y",Update_priv = "Y" kde = uživatel";

Smazání řádku v tabulce:

Mysql DELETE from where = "cokoliv";

Aktualizace oprávnění v databázi:

Mysql flush oprávnění;

Zálohy - vytváření, obnova databází. Řídicí panel

Vytvořit záložní kopie(vypsat) všechny databáze do souboru alldatabases.sql:

# mysqldump -u root -p heslo -opt ; /tmp/alldatabases.sql

Zálohujte jednu databázi do souboru databasename.sql:

# mysql dump -u uživatelské jméno -p heslo -databáze název databáze ; /tmp/název databáze.sql

Zálohujte jednu tabulku do souboru název_databáze.název_tabulky.sql:

# mysql dump -c -u uživatelské jméno -p heslo název databáze název_tabulky ; /tmp/název databáze.název_tabulky.sql

Obnovení databáze (nebo tabulky) ze zálohy:

# mysql -u uživatelské jméno -p heslo název databáze< /tmp/databasename.sql

Tvorba databázových tabulek. Řídicí panel

názvy sloupců jsou uvedeny malými písmeny;
VELKÁ písmena - typy a atributy sloupců;
v (závorky) - hodnota typu sloupce.

Vytvořte tabulku, příklad 1:

mysql CREATE TABLE (křestní jméno VARCHAR(20), střední počáteční VARCHAR(3), příjmení VARCHAR(35), přípona VARCHAR(3), officeid VARCHAR(10), uživatelské jméno VARCHAR(15), uživatelské jméno VARCHAR(8), email VARCHAR(35 ), telefon VARCHAR(25), skupiny VARCHAR(15), datumové razítko DATE, časové razítko TIME, pgpemail VARCHAR(255));

Vytvořte tabulku, příklad 2:

Mysql vytvořit tabulku (osoba INT(50) NOT NULL AUTO_INTCREMENT PRIMARY KEY, jméno VARCHAR(35), prostřední jméno VARCHAR(50), příjmení VARCHAR(50) výchozí "bato");

Je to možné nejen přes PHP. MySQL je dodáván s konzolovým klientem pro připojení k serveru MySQL. Konzole – to znamená, že program nemá rozhraní okna, ale pouze rozhraní příkazového řádku, ve kterém se přistupuje k databázím pomocí SQL dotazů.

Příkazy pro připojení k MySQL příkazový řádek a ještě více oni sami SQL dotazy identické pro . V následujícím textu budu pro stručnost psát „MySQL“, ale v celém textu mám na mysli „MySQL nebo MariaDB“, protože v v tomto případě není mezi nimi žádný rozdíl.

Připojením přes příkazový řádek k MySQL DBMS můžete provádět různé úkoly: prohlížet databáze a jejich tabulky, odesílat dotazy do databází a přijímat výsledky provádění těchto dotazů.

Chcete-li se připojit k serveru MySQL, použijte příkaz klientského programu s názvem mysql.exe. Musí být spuštěn, ale musí to být provedeno ne dvojitým kliknutím, jako běžný program, ale z příkazové řádky.

Začněme stisknutím klávesové zkratky Win+r a pojďme na to

Otevře se příkazový řádek.

Nyní musíme přejít do složky se souborem mysql.exe. Tato složka zásobník v adresáři, kde je nainstalován váš MySQL DBMS. Mám například MariaDB, která je nainstalována ve složce C:\Server\bin\mariadb\. Proto se soubor, který nás zajímá, nachází v adresáři C:\Server\bin\mariadb\bin\. Chcete-li přejít do tohoto adresáře, použijte příkaz CD následujícím způsobem:

Cd C:\Server\bin\mariadb\bin\

V tomto příkazu nahraďte C:\Server\bin\mariadb\bin\ správnou cestou pro váš systém

Nyní spustíme soubor mysql.exe. Není nutné zadávat příponu souboru.exe - systém sám uhodne, co máme na mysli. Musíme také využít možnosti -u A -p. Po první možnosti musíte zadat uživatelské jméno - vykořenit. Po druhé možnosti je heslo pro uživatele. V mém případě není heslo nastaveno, takže běžím bez možnosti -p:

Mysql -u root

Může se zdát, že se toho moc nezměnilo, ale nový příkazový řádek

MariaDB [(žádné)]>

označuje, že jsme připojeni k serveru MySQL. Přesněji řečeno, v mém případě jsme připojeni k serveru MariaDB.

Chcete-li zobrazit seznam databází, zadejte příkaz:

ZOBRAZIT DATABÁZE;

Chcete-li odeslat následné dotazy do určité databáze (například test), použijte příkaz POUŽITÍ:

USE test;

Chcete-li zobrazit tabulky ve vybrané databázi, spusťte příkaz:

ZOBRAZIT TABULKY;

Vytvoříme nějakou tabulku:

CREATE TABLE AuthorsTBL (AuthorID INT NOT NULL AUTO_INCREMENT, AuthorName VARCHAR(100), PRIMARY KEY(AuthorID));

Podívejme se znovu na obsah testovací databáze.


Server mysqld může spustit a provozovat každý uživatel. Chcete-li nakonfigurovat mysqld tak, aby běžel pod uživatelským_jménem uživatele Unix, musíte provést následující:

    Pokud server běží, zastavte jej (použijte vypnutí mysqladmin).

    Změňte adresáře a databázové soubory tak, aby uživatelské_jméno mělo oprávnění číst a zapisovat soubory v těchto adresářích (může to být nutné provést z kořenového účtu Unixu):

    Shell> chown -R uživatelské_jméno /cesta/k/mysql/datadir

    Pokud mezi adresáři nebo soubory v adresáři Data MySQL Pokud existují symbolické odkazy, budete také muset následovat tyto odkazy a změnit adresáře a soubory, na které odkazují. chown -R nemusí zpracovávat symbolické odkazy.

    Spusťte server jako uživatelské_jméno nebo, pokud máte MySQL 3.22 nebo vyšší, spusťte mysqld jako root Unixový účet a použijte volbu --user=uživatelské_jméno. mysqld se přepne na spuštění v kontextu uživatelského_jména uživatele Unixu, než začne obsluhovat požadavky na připojení.

    Chcete-li server spustit automaticky jako daný uživatel při spuštění systému, přidejte uživatele řádku s uvedením jména uživatele do skupiny souborů voleb /etc/my.cnf nebo do souboru voleb my.cnf z datového adresáře serveru. Například:

    Uživatel=uživatelské_jméno

V tomto okamžiku by proces mysqld měl běžet hladce pod uživatelským jménem Unix user_name . Obsah tabulek oprávnění se však nemění. Ve výchozím nastavení (ihned po spuštění instalačního skriptu tabulky oprávnění mysql_install_db) je root uživatele MySQL jediným uživatelem s právy pro přístup k databázi mysql a také pro vytváření a mazání databází. Pokud jste tato oprávnění nezměnili, jsou stále platná. Přihlášení jako uživatel Unixu jiný než root vám nebrání v přístupu k MySQL jako root uživatel MySQL; stačí zadat klientskému programu volbu -u root.

Všimněte si, že pracovat s MySQL jako kořenový adresář MySQL zadáním -u root na příkazovém řádku nemá nic společného spuštění MySQL pod uživatelským kořenem Unixu nebo pod jakýmkoliv uživatelem Unixu. Uživatelská jména a přístupová práva MySQL nesouvisí s uživatelskými jmény Unix. Jediné spojení s unixovými uživatelskými jmény je, že pokud není při spouštění klientského programu zadaná volba -u, klient se pokusí připojit pomocí názvu Unixového účtu jako uživatelského jména MySQL.

Pokud není unixový server příliš dobře chráněn nebo nepotřebuje zvýšená bezpečnostní opatření, měli byste alespoň v tabulkách oprávnění nastavit heslo pro uživatele root MySQL. Jinak může každý uživatel s účtem na tomto počítači spustit mysql -u root název_db a dělat, co chce v MySQL.


Databázový server MySQL se velmi často používá k vytváření dynamických webových řešení. Jedním z důvodů (a možná i důsledek) je, že téměř všichni hostitelé v tarifní plány na platformě UNIX nabízejí jednu nebo více databází MySQL. Používáte-li virtuální hosting, téměř nemusíte studovat správu serveru, stačí implementovat své programy v rozhraní, které podporuje vámi zvolený programovací jazyk (PHP má vestavěné rozhraní pro komunikaci s databází; ve verzi 5.0, podpora MySQL byla přesunuta do samostatné licencované knihovny). Všechny ostatní administrativní úkony – spouštění, zastavování, restartování, správa práv a uživatelů, zálohování a konfigurace serveru – provádějí administrátoři poskytovatele hostingu. Pokud si ale nainstalujete svůj vlastní server nebo VDS (Virtual Dedicated Server), budete se muset o všechny nuance jeho provozu postarat sami.

Konfiguraci serveru MySQL lze provést dvěma způsoby - nastavením voleb na příkazovém řádku při spouštění serveru a prostřednictvím konfiguračního souboru my.ini. Měli byste také rozlišovat mezi volitelnými parametry, které lze nastavit pro aktuální relaci serveru a po restartu se ztratí, a proměnnými prostředí, které působí globálně pro celý server a všechny databáze – lze je změnit pouze přímým zadáním nových hodnot.

Seznam všech dostupných příkazů a voleb lze získat zadáním "mysqld --help" do konzole. Je třeba říci, že téměř všechny příkazy jsou univerzální a jsou podporovány na všech platformách, kde běží MySQL server, ale existuje několik specifických příkazů pro platformu Windows NT. Pro všechny příkazy existuje úplná syntaxe, kdy příkaz začíná dvěma pomlčkami (mínus) symboly "--", za kterými bezprostředně bez mezer následuje název příkazu (nebo volba, tato slova budou dále synonyma). Pokud potřebujete zadat hodnotu, za jménem příkazu následuje znak "=" a hodnota, která má být specifikována. Zkrácená forma obsahuje jednu pomlčku, název příkazu je zkrácen na jedno písmeno a parametry jsou uvedeny oddělené mezerou. Pouze volba "--socket" nemá krátký tvar (mělo by to být "-s"). Pamatujte, že při psaní příkazů se rozlišují velká a malá písmena a příkazy "-l" a "-L" jsou zcela odlišné. V konfiguračním souboru můžete zadat komentáře - jsou odděleny znakem "#" a celý řádek je zcela ignorován.


Nejprve se seznámíme s nejdůležitějšími příkazy.

Příkaz --help je nejdůležitější, zobrazuje seznam všech dostupných příkazů

Pomoc nebo -? (na serverech verze 4.1 a vyšší není krátký příkaz "-h"; navíc pro spuštění příkazu musíte nejprve zadat příkaz "--verbose") - zobrazí nápovědu k dostupným příkazům a možnostem, server samotný ne Start.
--version nebo -V - užitečné, pokud potřebujete zjistit přesnou verzi MySQL serveru a platformu, na které běží.
--user= nebo -u — určuje jméno uživatele, s jehož právy je server spuštěn. Obecně se nedoporučuje provozovat server jako root. Příklad: "--user=vasya".
-p - používá se ve spojení s příkazem "-u" a nastavuje heslo účet uživatel. Pokud heslo neexistuje (výchozí instalace neposkytuje heslo pro uživatele root), lze příkaz vynechat. Upozorňujeme, že syntaxe příkazu je odlišná - heslo je uvedeno v řádku bezprostředně za příkazem, bez oddělovačů. Příklad: "--user=vasya -pverygoodpassword", kde "verygoodpassword" je heslo uživatele "vasya".
-P nebo --port= - určuje číslo portu, přes který je navázáno připojení k serveru mysqld. Ve výchozím nastavení server naslouchá TCP portu 3306, ale můžete nastavit jakýkoli jiný. Upozorňujeme, že zkrácená verze příkazu se píše s velkým písmenem P, protože malé písmeno p se používá k nastavení hesla uživatele.
--bind-address= - používá se k vynucení IP adresy serveru, jako výchozí se bere aktuální adresa počítače.
--skip-networking - příkaz zcela zakáže použití síťová připojení Chcete-li se připojit k serveru, můžete pracovat pouze lokálně, z hostitele localhost.

Další skupina příkazů je určena pro práci s databázemi.

Zobrazujte zprávy v ruštině - použijte --language=russian

Datadir= nebo -h - umožňuje explicitně určit adresář, kde jsou databáze uloženy. Může být vyžadováno, pokud chcete ukládat databáze na jiný oddíl nebo logický pohon nebo máte několik serverů, které používají různé adresáře k ukládání databází. Je přijatelné zadat jak úplnou cestu, tak relativní. Příklad: "mysqld --datadir=\home\vasya\bases".
--basedir= nebo -b — cesta k adresáři s nainstalovaným serverem.
--tmpdir= nebo -t — cesta k adresáři pro dočasné soubory.
--character-sets-dir=. Tato volba určuje cestu k adresáři, který obsahuje konfigurační soubory pro různá kódování. Tyto údaje jsou důležité pro správné řazení a vyhledávání v řetězcových polích tabulek.
--language= nebo -L - umožňuje přepsat jazyk pro zobrazování zpráv a chyb. Výchozí je anglický jazyk, ale jsou podporovány i jiné - zejména ruština. Chcete-li nastavit výstupní jazyk, musíte zadat jeho název latinkou (ruština - pro ruštinu, angličtina - pro angličtinu). Aby příkaz fungoval, musí existovat adresář \share\, ale pokud se cesta k němu liší od standardní, pak místo určení jazyka musíte popsat úplnou cestu k adresáři - například "-- language=\user\vasya\mysql\langv\russian".
--default-character-set= - nastaví výchozí kódování znaků. Mezi možné hodnoty parametru znakové sady patří: koi8_ru, german1, cp1251, win1251, koi8_ukr, win1251ukr, win1250 a další - celkem existuje více než 20 různých kódování. Kódování je důležité, pokud budou v tabulkách uloženy texty v různých jazycích, a při vyhledávání a třídění dat je důležité vzít v úvahu národní charakteristiky.

Toto byly nejdůležitější možnosti a příkazy, které můžete potřebovat při nastavování serveru. Příkazů je spousta a k jejich úplnému prostudování použijte vestavěnou nápovědu (zavolejte pomocí příkazu --help).

Některé příkazy jsou specifické a dostupné pouze pro Windows NT

Existuje několik specifických příkazů pro platformu Windows NT.
--console - příkaz se objevil ve verzi 3.22.4 a je navržen tak, aby zobrazoval všechny chybové zprávy v okně konzoly, což je užitečné při ladění nebo studiu vlivu různých parametrů na serveru.
--install - funguje pouze na platformě Win2000/XP a registruje server MySQL jako systémovou službu, která se spouští při každém spuštění systému a neustále existuje paměť s náhodným přístupem(pokud potřebujete zaregistrovat službu, ale uživatel ji spustí sám, příkaz bude vypadat jako "--insatll-manual"). Příkaz "--remove" odebere server ze seznamu systémových služeb.
--standalone — spusťte server pod Win2000/XP jako samostatný program, není systémová služba.

Pro tyto akce je nejpohodlnější použít grafickou utilitu WinMySQLAdmin, která je součástí distribuční sady.

S jeho pomocí můžete také vytvořit report o všech proměnných a parametrech, se kterými server běží, což se může hodit při podrobném studiu serveru a optimalizaci výkonu. jiný grafické pomůcky, stejně jako MySQL Administrator, umožňují tato data nejen prohlížet, ale také je měnit pomocí pohodlného rozhraní. Ale v případě vzdáleného serveru nebo s omezenými prostředky je nejlepší použít správu z příkazového řádku. Kromě, GUI nevylučuje potřebu znát a rozumět účelu změněných možností.

Populární systém pro správu databází MySQL hojně využívaný pro různé potřeby především jako de facto standard v oblasti internetového hostingu. Neméně rozšířený je balíček pro správu tohoto DBMS - phpMyAdmin. Bezpochyby se jedná o dobrý a pohodlný produkt, ale velmi často se stává, že dovednosti práce s tímto produktem zcela nahrazují dovednosti práce se samotným DBMS. Proto jsme se v tomto materiálu rozhodli našim čtenářům představit, jak provádět základní úlohy správy MySQL z příkazové řádky.

Jak si naši pravidelní čtenáři mohli všimnout, důsledně se stavíme proti používání různých typů ovládacích panelů začátečníky, bez ohledu na to, jak pohodlné a rozšířené mohou být. Přitom jejich existenci nepopíráme a sami je s oblibou využíváme při každodenních činnostech.

Je tu ale jeden velký rozdíl: specialista, který umí pracovat s příkazovým řádkem pomocí panelu, nenahrazuje schopnost pracovat s produktem, ale pouze si usnadňuje provádění každodenních úkolů. A začátečník, zvyklý provádět všechny akce v panelu, pokud je nepřístupný, propadá tiché panice, protože nyní potřebuje zadat nějaká „kouzla“ do této nepochopitelné černé konzole...

Ve skutečnosti není práce s DBMS na úrovni příkazového řádku vůbec obtížná a některé administrativní úkony jsou v něm snadnější a pohodlnější. Udělejme si rovnou rezervaci: administrací máme na mysli správu DBMS serveru, nikoli samotných databází. Dá se s nimi samozřejmě pracovat i z příkazové řádky, ale k tomu je lepší použít vhodnější nástroje.

Správa databází a uživatelů v MySQL

Pokud byste měli začít tančit od plotny, pak práce s DBMS by měla začít vytvářením databází a uživatelů těchto databází. Úkoly jsou v podstatě jednoduché a dají se perfektně a hlavně jednoduše vyřešit z konzole. Obslužný program stejného názvu je navržen pro práci se serverem MySQL mysql, se kterým se pracuje v interaktivním režimu, takže se nejprve připojíme k serveru:

Mysql -u root -p

Tam, kde přepínač -u určuje uživatelské jméno a -p určuje ověření heslem, syntaxe příkazu umožňuje zadat heslo zadáním bez mezer bezprostředně za klíčem, ale v tomto případě bude uloženo do historie příkazů, což je ne úplně dobré, proto je lepší zadávat heslo interaktivně. Po provedení tohoto příkazu se ocitneme v prostředí MySQL, jak naznačuje změněný příkazový řádek.

Práce v tomto prostředí má své vlastní charakteristiky: každý příkaz musí končit symbolem ; nebo \G, o kterém se mimochodem píše v prvním řádku pozdravu. Tento režim opustíte příkazem:

Promluvme si o jedné velmi časté chybě: zapomenutí dát středník na konec příkazu. Co dělat? Žádný velký problém, jen doplňte chybějící znaky v dalším řádku.

Nejprve se podívejme na seznam databází:

Zobrazit databáze;

Jak se říká, bez zbytečných podrobností, ale pro většinu administrativních úkolů to stačí:

Zjištění seznamu uživatelů je trochu složitější, je uložen ve formě tabulky databáze služeb mysql, tak píšeme malou prosbu:

Vyberte uživatele,hostitel z mysql.user;

tým vybrat vybere zadané sloupce uživatel, hostitel, volba from označuje, odkud je vybíráme, tedy z uživatelské tabulky databáze mysql.

První sloupec označuje uživatele, druhý - hostitele, na kterém tomuto uživateli připojení jsou povolena, % - označuje jakoukoli hodnotu. Vezměte prosím na vědomí, že pokud Ivanov má v nastavení localhost, poté při připojení k mysql podle adresy 127.0.0.1 nebude moci získat přístup, je třeba to vzít v úvahu, když ve svých aplikacích zadáváte údaje o připojení k serveru DBMS.

Vlastníky databáze můžete zobrazit pomocí následujícího dotazu:

Vyberte hostitele,db,uživatele z mysql.db;

Zde nejsou vyžadovány žádné zvláštní komentáře. Například, Ivanov má práva k databázím s prefixem Ivanov_ při připojení přes localhost, a andrey na základy s předponou andrey_ na libovolném hostiteli. Uživatelská oprávnění můžete zobrazit pomocí příkazu:

Zobrazit granty pro "ivanov"@"localhost";

Uživatelské jméno a hostitele zabalíme do jednoduchých uvozovek.

První řádek hlásí, že zadaný uživatel nemá oprávnění ( POUŽÍVÁNÍ) do libovolné tabulky libovolné databáze ( *.* ), druhý řádek hovoří o všech hlavních oprávněních pro všechny tabulky všech databází s prefixem Ivanov_.

Podrobná analýza systému práv MySQL daleko přesahuje rámec tohoto článku, řekněme VŠECHNY PRIVELEGIE dává uživateli všechna práva k jeho databázím, ale neumožňuje mu spravovat přístupová práva pro ostatní uživatele. K tomu slouží soubor práv VŠECHNY PRIVELEGIES MOŽNOSTÍ GRANTU, který má ve výchozím nastavení vykořenit. Pro jednoduchý uživatel takový soubor práv je nadbytečný.

Zkusme vytvořit nového uživatele:

Vytvořte uživatele "petrov"@"localhost" identifikovaného "heslem";

Syntaxe příkazu je jednoduchá, uvedeme uživatelské jméno a hostitele a také identifikační údaje ve formě hesla. Všechny předané hodnoty jsou zabaleny do jednoduchých uvozovek. Po vytvoření uživatele mu musíte přidělit práva, to se provádí příkazem GRANT. Za prvé, jasně ho připravíme o oprávnění k databázím jiných lidí:

Udělit použití na *.* na "petrov"@"localhost";

Pak si můžeme nastavit práva dle svého uvážení, například vydávání plných práv k databázím se šablonou názvu petrov_:

Udělte všechna oprávnění na `petrov\_%`.* "petrov"@"localhost";

Vezměte prosím na vědomí, že vzor by měl být zabalen do znaků gravis (` ), které jsou umístěny na klíči s ruským písmenem E.

Můžete udělit práva k samostatné databázi takto:

Udělte všechna oprávnění na andrey_drupal8.* "petrov"@"localhost";

K výběru práv použijte pouze příkaz REVOKE, který má podobnou syntaxi na (komu), nahraďte jej z (SZO). Například:

Odeberte všechna oprávnění na andrey_drupal8.* od "petrov"@"localhost";

Aby server MySQL použil práva, musíte jej donutit znovu načíst mezipaměť oprávnění příkazem:

Flush oprávnění;

Možná budete muset změnit uživatelské heslo:

Nastavit heslo pro "petrov"@"localhost" = password("newpassword");

Přejmenujte jej a přejmenování nemusí nutně znamenat změnu uživatelského jména; můžete změnit jméno i hostitele v jakékoli kombinaci:

Přejmenujte uživatele "petrov"@"localhost" na "petr"@"127.0.0.1";

A nakonec smažte účet:

Vypustit uživatele "petr"@"127.0.0.1";

Přejděme od uživatelů k databázím, v nejjednodušším případě k vytvoření nové databáze stačí příkaz:

Vytvořit databázi petrov_newdb;

Tím se vytvoří databáze s kódová stránka a výchozí kódování porovnání. Pokud server DBMS nebyl nakonfigurován samostatně, bude s největší pravděpodobností toto kódování latin1_swedish_ci, což v některých případech může způsobit problémy, když ne nyní, tak v budoucnu, takže je dobrým pravidlem při vytváření databáze výslovně uvést kódování. Pro UTF-8 by to bylo takto:

Vytvořit databázi petrov_newdb výchozí znakovou sadu utf8 collate utf8_general_ci;

Pro Windows-1251:

Vytvořit databázi petrov_newdb výchozí znakovou sadu cp1251 collatovat cp1251_general_ci;

Pro odstranění databáze použijte:

Drop databáze petrov_newdb;

Kontrola, optimalizace, oprava chyb v MySQL databázích

Tak jako aktivní práce MySQL databáze může být fragmentovaný a může obsahovat chyby v datech tabulky. Nemluvíme nyní o závažných poruchách, takové situace je třeba posuzovat individuálně, ale o nejjednodušších chybách, které lze úspěšně odstranit pomocí samotného DBMS. Pro kontrolu, opravu a optimalizaci je vhodné použít utilitu mysqlcheck.

Chcete-li zkontrolovat databázi, udělejte kde andrey_drupal8- jméno databáze:

Mysqlcheck -u root -p --check andrey_drupal8

Všechny databáze lze zkontrolovat najednou příkazem:

Mysqlcheck -u root -p --check --all-databases

A protože se celý výstup s největší pravděpodobností nevejde na obrazovku, má smysl jej přesměrovat na příkaz méně:

Mysqlcheck -u root -p --check --all-databases | méně

Všimněte si, že méně umožňuje posouvat výstup dolů i nahoru pomocí šipek, stisknutím ukončíte q.

Pokud byly v některé z databází nalezeny chyby, měli byste se je pokusit opravit, k tomu uveďte:

Mysqlcheck -u root -p --auto-repair andrey_drupal8

Pro optimalizaci použijte klíč - -optimalizovat, můžete optimalizovat jednu databázi nebo několik, za tímto účelem je uveďte za klíčem -- databáze:

Mysqlcheck -u root -p --optimize --databases andrey_drupal8 petrov_newdb

a také vše najednou:

Mysqlcheck -u root -p --optimize --all-databases

Nahrávání a načítání výpisů databáze MySQL

Dalším častým úkolem při správě libovolného DBMS jsou výpisy databáze, které se používají jak pro zálohování, tak pro přenos nebo vytváření kopií. Li záloha- proces je zautomatizován, poté je třeba ručně vytvořit kopie pro přenos na jiný server nebo před významnými zásahy do struktury databáze.

A pokud jde o velké databáze, tak zde phpMyAdminšpatný pomocník, ovlivňuje dobu provádění skriptů, velikost stahovaného souboru, dostupnou paměť atd. A i když pomocí něj stále můžete nahrát velký výpis, možná ho nebudete moci nahrát zpět.

Začněme vytvořením výpisů, pro tyto účely se používá nástroj mysqldump, jehož syntaxe se řídí syntaxí mysqlcheck. Ke stažení výpisu použijte příkaz:

Mysqldump -u root -p andrey_drupal8 > ~/drupal8.sql

Chcete-li uvolnit několik databází najednou, použijte klíč -- databáze nebo --všechny-databáze vytvořit výpis všech databází najednou. Výstup příkazu by měl být odeslán do souboru a měl by uvést jeho umístění, v našem případě je to soubor drupal8.sql ve vašem domovském adresáři. Výstup můžete také přesměrovat do archivátoru a archiv okamžitě přijmout:

Mysqldump -u root -p andrey_drupal8 | gzip > ~/drupal8.sql.gz

Obecně nedoporučujeme používat jeden výpis pro několik databází najednou, nejlepší možnost bude výpis pro každou databázi, současně pomocí klíče --všechny-databáze opodstatněné v případech, kdy potřebujete rychle vytvořit záložní kopii celého serveru, například při aktualizaci nebo přeinstalaci DBMS, abyste mohli rychle obnovit informace, pokud se něco pokazí.

Chcete-li obnovit databázi, musíte odeslat výpis na vstup obslužného programu mysql; pro jednotlivé výpisy byste měli vždy zadat cílovou databázi, například:

Mysql -u root -p andrey_drupal8< ~/drupal8.sql

Cíl nemusí být nutně zdrojová databáze, ale mějte na paměti, že pokud databáze již existuje, veškerý její obsah bude nahrazen obsahem výpisu.

Pro výpisy obsahující více než jednu databázi jednoduše zadejte:

Mysql -u root -p< ~/all.sql

V tomto případě bude každá databáze načtena do vlastního zdroje, pokud zdrojová databáze neexistuje, bude vytvořena.

Jak můžete vidět, vytváření a obnova výpisů pomocí příkazového řádku probíhá doslova na jednom řádku a je mnohem jednodušší a rychlejší než pomocí phpMyAdmin nebo podobných nástrojů.

Obnovení zapomenutého hesla root MySQL

Další velmi oblíbený úkol. Řekněme hned, že je nemožné obnovit heslo superuživatele MySQL, jako každý jiný uživatel, ale můžete ho změnit. Chcete-li to provést, musíte mít práva superuživatele. operační systém. Nejprve zastavme službu DBMS:

Zastavení služby mysql

Pak to spustíme bezpečný režim s přeskakováním tabulek oprávnění:

Mysqld_safe --skip-grant-tables &

Upozorňujeme, že po provedení tohoto příkazu příkazový řádek zmizí a zůstane pouze blikající kurzor. Píšeme přímo tam:

Mysql -u root

a dostaneme se do prostředí mysql s root práva bez zadání hesla.

Zdá se nám, že mnozí již uhodli, co dělat dál, ale nastavit heslo v tomto režimu to nebude fungovat, takže musíte jít jinou cestou. Pamatujte, že informace o uživatelích jsou uloženy v tabulce uživatel servisní databáze mysql. Poté spustíme následující dotaz:

Update mysql.user set password = password ("nové heslo") where user="root";

Důležité! V nových verzích MySQL místo sloupce Heslo tabulky uživatel sloupec se používá autentizační_řetězec, tak místo toho nastavit heslo by mělo být uvedeno nastavit autentizační_řetězec.

Tento požadavek se nainstaluje nové heslo nové heslo pro všechny řádky ve sloupci uživatel které jsou uvedeny vykořenit.

Pojďme aktualizovat mezipaměť oprávnění:

Flush oprávnění;

Opustíme režim:

Zastavme službu a spusťte ji v normálním režimu:

Zastavení služby mysql
spuštění služby mysql

Doufáme, že po přečtení tohoto článku získáte základní dovednosti v práci s MySQL z příkazové řádky a budete se moci cítit sebejistě, i když phpMyAdmin není k dispozici, a možná oceníte i pohodlí konzolové příkazy a budete se do panelu přihlašovat stále méně a raději budete server spravovat přímo.