A MySQL kézi telepítése Windows rendszeren. A MySQL adminisztráció alapjai a parancssor használatával A mysql szerver leállítása a parancssorból




Win 32 esetén válassza ki a disztribúciót: Windows (x86, 32 bites), Zip archívum.

Win 64 esetén: Windows (x86, 64 bites), Zip archívum.

A Letöltés gombra kattintva megjelenik egy regisztrációs űrlap, amelyet az alábbi linkre kattintva kihagyhat - Nem, köszönöm, csak vigyen a letöltésekhez.

2. Hozzon létre egy telepítési mappát. Például . És csomagold ki bele az archívum tartalmát, hogy a mappák bin, adatok, dokumentumok és mások a telepítési mappa gyökerében voltak.

3. Térjünk át a konfigurációs fájl (my.ini) létrehozására. Az egyik tipikus fájlt vesszük alapul:

  • my-small.ini - azoknak való, akik időnként MySQL-t használnak, és nem akarják, hogy a szerver sok erőforrást lefoglaljon.
  • A my-medium.ini szintén egy könnyű konfiguráció, de alkalmas azok számára, akik rendszeresen használják a MySQL-t (jó választás otthoni webszerverhez).
  • A my-large.ini és a my-huge.ini dedikált MySQL-kiszolgálóként használt rendszerekhez valók. A my-large.ini azonban használható otthoni szerverhez, ha extra MySQL-teljesítményre van szükség (512 MB RAM manapság nem olyan sok).
  • my-innodb-heavy-4G - 4 GB RAM-mal és csak InnoDB táblákat használó dedikált szerverekhez.

Ebben a példában a my-medium.ini-t választottam alapnak. Nevezze át my.ini-re, és helyezze a telepítési mappa gyökerébe ( C:\Program Files\MySQL\MySQL Server 5.5).

Nyissa meg szerkesztésre (normál Jegyzettömbben), és közvetlenül a sor után adjon hozzá két paramétert:

baseir=C:/Programfájlok/MySQL/MySQL Server 5.5 datadir=C:/Programfájlok/MySQL/MySQL Server 5.5/data

Vegye figyelembe, hogy az elérési utak előre perjelet (/) használnak, és nem fordított perjelet (\).

A baseir a telepítési mappa elérési útja.

datadir - az adatmappa elérési útja (ahol az összes adatbázis tárolva van). Néha érdemes az adatokat külön meghajtóra helyezni a teljesítmény javítása vagy a megbízhatóság biztosítása érdekében.

Minden esetre itt van a konfigurációs fájl töredéke a módosítások elvégzése után:

# A MySQL szerver basedir=C:/Program Files/MySQL/MySQL Server 5.5 datadir=C:/Program Files/MySQL/MySQL Server 5.5/data port = 3306 socket = /tmp/mysql.sock skip-external-locking key_buffer_size = 16M max_allowed_packet = 1M table_open_cache = 64 sort_buffer_size = 512K net_puffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K InnoDB_sort_buffer_size = 8M

4. A következő lépés az útvonal hozzáadása C:\Program Files\MySQL\MySQL Server 5.5\bin a PATH környezeti változóba, hogy megkönnyítse a MySQL elindítását a parancssorból. Ehhez nyissa meg a Rendszer tulajdonságai -> Speciális rendszerbeállítások -> a Speciális lap alján a „Környezeti változók…” gombot. A megnyíló ablakban görgessük végig a rendszerváltozókat, amíg meg nem találjuk a Path elemet. Jelölje ki ezt a sort, és kattintson a "Szerkesztés..." gombra. A sor végére adja hozzá az elérési utat, megtartva a meglévő paramétereket:

Vegye figyelembe, hogy az útvonalakat pontosvessző választja el. Ügyeljen arra, hogy az elérési út elején és végén pontosvesszőt írjon be.

5. A próbaüzem végrehajtása előtt nyissa meg a TCP 3306 bejövő portot a Windows tűzfalában:


Ha opcionális tűzfal van telepítve a rendszerére, akkor ezen a tűzfalon a 3306-os TCP-portot is meg kell nyitnia a bejövő kapcsolatokhoz.

6. Most tesztüzemet végzünk. A rendszergazdaként futó parancssorban (ez szükséges, ha az UAC engedélyezve van Seven vagy Vista rendszeren) a következőket hajtjuk végre:

mysqld --console

Több sor jelenik meg a képernyőn. Ha az indítás sikeres volt, akkor az utolsó sor valahogy így fog kinézni:

Verzió: "5.5.9-log" socket: "" port: 3306 MySQL Community Server (GPL)

Hagyja nyitva ezt az ablakot, és nyisson meg egy másik parancssori ablakot, amelybe beírjuk:

MySQL -u gyökér

Ha a kapcsolat sikeres volt, megjelenik egy parancssor: mysql>

Lássuk, milyen alapokkal rendelkezünk:

adatbázisok megjelenítése;

A pontosvessző az SQL lekérdezés végén KÖTELEZŐ!

A csapat válasza:


Most végre meggyőződtünk arról, hogy a szerver működik.

7. Továbblépve a következő lépésre, be kell állítania a MySQL rendszergazdai jelszót (root felhasználó). Alapértelmezés szerint a jelszó nincs beállítva, és ezt ki kell javítani. Ugyanabban a MySQL ablakban írja be a következő parancsokat:

Use mysql UPDATE user SET password = PASSWORD("saját_jelszava") WHERE user = "root";

Az eredmény ellenőrzése:

SELECT user, host, password FROM user;

Amint a képernyőképen látható, a jelszó oszlop meg van töltve, ami azt jelenti, hogy a jelszó be van állítva.

Kilépés előtt futtassa a parancsot:

FLUSH KIVÁLTSÁGOK;

Most csatlakozáskor meg kell adnia egy jelszót. Ehhez használja a -p kapcsolót:

MySQL -u root -p

A MySQL futtatásának leállítása:

mysqladmin -u root -p leállítás

8. Az utolsó lépés a MySQL elindítása Windows rendszerszolgáltatásként.

Győződjön meg arról, hogy nincsenek aktív MySQL-folyamatok a rendszerben.

Rendszergazdaként futtatott parancssorban futtassa:

"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld" --install

A mysqld elérési útját teljes egészében meg kell adni (még akkor is, ha a PATH-ban van)!

A szolgáltatás elindításához nyissa meg a "Számítógép-kezelés" elemet, és indítsa el manuálisan a MySQL szolgáltatást:


Vagy egyszerűbben a parancssorból:

net start mysql

Egy szolgáltatás eltávolításához először állítsa le:

net stop mysql

és hajtsd végre:

"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld" --remove

Barátaim gyakran feltesznek bizonyos kérdéseket az adminisztrációval kapcsolatban, és arra gondoltam, miért ne írhatnánk ilyen cikkeket-jegyzeteket az oldalra, ahelyett, hogy 100-szor elmagyaráznám ugyanazt? Ráadásul ez egy remek lehetőség, ilyenkor saját magad is használj egy ilyen jegyzetet, mert te magad is tudod, hogy néha nem lehet mindent a fejedben tartani, és így vagy úgy, néha egy kézikönyvet kell lapozni, hát legyen ennek az oldalnak az egyik része egy ilyen könyv. Ma arról fogunk beszélni, hogyan kell dolgozni a MySQL DBMS-sel a parancssorból, igen, valaki azt fogja mondani - „Nakoy? Végül is létezik phpMyAdmin, "válaszolom - miért pazarolnánk az értékes szervererőforrásokat mindenféle szemét telepítésével, mint a WebMin, phpMyAdmin stb., ha megbízható, bevált eszközökkel minden könnyen elvégezhető. A terminálról SSH alagúton keresztül történő beállítás a mi döntésünk!

Nos, kezdjük. A szerverhez SSH-n keresztül csatlakozunk, például a jól ismert PuTTY-n (A Free Telnet / SSH Client) keresztül. Most menjünk közvetlenül a parancsok leírásához.

Jelentkezzen be a MySQL szerverre mysql programmal:

mysql -u root -h localhost -p

A -u kapcsoló megadja a bejelentkező felhasználót. A -h kapcsoló határozza meg a gazdagépet. Ez általában a localhost, ha nem távoli szervert állít be. Végül a -p utasítja a mysql kliensprogramot, hogy adjon meg egy jelszót az adatbázis eléréséhez. Figyelje meg a mysql> promptot. Itt kell megadnia az összes parancsot. Most, hogy root felhasználóként a mysql környezetben vagyunk, elkezdhetjük az adatbázis beállítását.

Be vagyunk jelentkezve, és a mysql prompt megjelenik a képernyőn. Először is vessünk egy pillantást a meglévő adatbázisok listájára. Ehhez írja be a SHOW DATABASES parancsot.

A válasz egyértelművé teszi, hogy a parancs hiba nélkül fejeződött be. Ebben az esetben egy sor megváltozott. Ez a fő mysql adatbázisra vonatkozik, amely tartalmazza az összes adatbázis listáját. De nem kell túl sokat aggódnia az apró részletek miatt. Az utolsó szám a lekérdezés végrehajtási idejét jelöli. A SHOW DATABASES parancs ismételt futtatásával ellenőrizhetjük, hogy az adatbázis létrejött-e.

Ahhoz, hogy elkezdhessük a táblák létrehozását az új tesztadatbázisban, be kell állítani a jelenlegiként. Ehhez használja a USE parancsot. Ennek a parancsnak a paramétere adja meg az aktuális adatbázis nevét. Az aktuális adatbázist a parancssorban is beállíthatja, ha a nevét a -D paraméter után adja meg. Váltsunk a tesztadatbázisra.
Adatbázis váltás:

HASZNÁLATI teszt;

Jogosultságok a MySQL-ben

Adjon kiváltságokat paranccsal GRANT.
A jogosultságok meghatározzák, hogy a felhasználók hogyan férhetnek hozzá adatbázisokhoz, táblákhoz... nagyjából mindenhez. Jelenleg csak a MySQL root superuser férhet hozzá a tesztadatbázishoz, a megadott jogosultságokkal. Hozzon létre egy másik felhasználót, például adminisztrátort (adminisztrátort), aki hozzáfér a tesztadatbázishoz, és az abból származó információkkal dolgozik. Mielőtt azonban elkezdenénk, vessünk egy pillantást a GRANT parancs kissé leegyszerűsített formátumára.

jegyzet: A GRANT parancs a felhasználó létrehozásának egyik módja. A MySQL későbbi verziói azonban a CREATE_USER függvényt is tartalmazzák, bár a GRANT továbbra is előnyben részesített.
Most hozzárendelhető jogosultságokra van szükségünk. A fentiek mindegyikével a következő jogosultságokat állíthatja be:

jegyzet: Ha MySQL-t használ egy webalkalmazással való kommunikációhoz, akkor az itt ismertetett CREATE, SELECT, INSERT jogosultságok, valamint a DELETE és UPDATE jogosultságok (amelyek a MySQL kézikönyv GRANT és REVOKE Syntax szakaszában vannak leírva) az egyetlenek, amelyek valószínűleg szükség lesz. Sokan elkövetik azt a hibát, hogy minden kiváltságot feladnak, amikor valójában nincs rá szükségük. Kérdezze meg az alkalmazás fejlesztőit, hogy az ilyen engedélyek valóban teljesítményproblémákat okoznak-e.

Adminisztrátor felhasználó létrehozása:

Tehát létrejönnek a felhasználók; most teszteljük őket. Először lépjen ki a mysql-ből a quit beírásával a parancssorba:

A lehetőségek leírása a GRANT parancs részben található. És most megtagadjuk a felhasználótól a hozzáférést. Tegyük fel, hogy rájöttünk, hogy a rendszergazdai fiók biztonsági problémákat okoz. Úgy döntünk, hogy minden jogot visszavonunk. Rootként megyünk, és megtesszük a szükséges lépéseket.
Engedélyek visszavonása az adminisztrátor felhasználó számára:

REVOKE ALL ON teszt.* FROM "admin" @"localhost" ;

jegyzet: Ebben az esetben a felhasználói hozzáférés egyszerű, így egy adatbázis jogainak visszavonása nem jelent problémát. Általában azonban valószínűleg a *.*-ot kell használnia a test.* helyett, hogy megvonja a felhasználó hozzáférését az összes többi adatbázishoz.

Most nézzük meg, hogyan lehet teljesen törölni egy fiókot a DELETE paranccsal, és vessünk egy pillantást a MySQL felhasználói táblára.

Fiókok törlése paranccsal TÖRÖL.
A MySQL felhasználói tábla a felhasználók listája és a róluk szóló információk. Győződjön meg róla, hogy root felhasználóként van bejelentkezve. Használja a fő MySQL adatbázist.

A fő mysql adatbázis használata:

A felhasználói tábla az, amire szüksége van. 30 különböző mezőt tartalmaz, és nehezen olvasható. Az olvasás megkönnyítése érdekében a SELECT parancs harmadik formáját használjuk. A kötelező mezők: Host (host) és User (felhasználó).
Az adminisztrátor megkeresése a felhasználói táblázatban:

Most, hogy megvan az információ, megszabadulhatunk az admin felhasználótól. Ez a DELETE paranccsal történik; itt van a szintaxisa:

Talán észrevette, hogy a DELETE formátum némileg hasonlít a SELECT formátumhoz. Adja meg a Felhasználó mezőt és az admin értéket. Ez eltávolítja a bejegyzést a felhasználói táblázatból, ahol a felhasználó adminisztrátor, és törli a fiókunkat. Csináljuk:
Az adminisztrátor eltávolítása:

A FLUSH PRIVILEGES parancs szükséges az engedélyek frissítéséhez.

Ez minden mára. Egyetértek, minden egyszerű! ;)

Jó napot, kollégák 🙂

Igen, pontosan kollégák, mert a MySQL parancssor (vagy MySQL Shell, ahogy a fejlesztők szeretik hívni), valamint a MySQL-lel való munka a konzolban valószínűleg nem lesz hasznos egy egyszerű halandó számára.

Ahhoz, hogy ez a téma érdekes legyen, legalább kezdő rendszergazdának kell lenned, aki elvileg nem használ phpMyAdmin és egyéb felületeket.

Személy szerint én inkább a phpMyAdmin-t használom főként a MySQL-lel való munkához, mert. Természetemnél fogva vizuális ember vagyok. A gyakorlatban azonban néha vannak olyan helyzetek, amikor egyszerűen szükséges a MySQL parancssor ismerete és a MySQL-lel való munkavégzés képessége a kiszolgálókonzolon.

Jelenleg három van belőle:

  1. Először találkoztam munkával a MySQL konzolon, amikor nagy adatbázis-kiíratást kellett importálnom. A phpMyAdminon keresztül nem töltötték be teljesen, mert. az időtúllépést tekintve valahol középre esett, hiába változtatták meg a művelet végrehajtási idejét és a letöltött fájlok méretét. Elvileg ki lehetett választani a kívánt értékeket, de nekem úgy tűnt, hogy ez túl hosszú folyamat.
  2. A következő alkalommal, amikor a MySQL-lel kellett dolgoznom a parancssoron keresztül, az volt, hogy letiltottam az idegen kulcsok ellenőrzését, amikor adatokat kellett törölni egy olyan táblából, amely más kulcsokat használó táblákhoz volt társítva. A phpMyAdminban egyszerűen nem találtam meg, hogyan kell ezt megtenni.
  3. Komoly cégeknél csak a konzolt használják a MySQL-lel való együttműködéshez phpMyAdminok nélkül. Nem tudom konkrétan miért, de hozzáértő emberek azt mondták, hogy ennek köze van a biztonsághoz. Ennek eredményeként mindenkinek a MySQL parancssorral kellett dolgoznia, nekem is 🙂

De ismételten, a MySQL-lel a konzolban és a parancssorban történő munkavégzés meglehetősen alkalmas mindennapi használatra. Az adatbázissal való munkához minden ismert vizuális program továbbra is a MySQL konzolparancsok alapján működik. Ezért akinek tetszik 🙂

A konzol futtatása különböző operációs rendszereken

Mivel a MySQL parancssort a szerverkonzolon fogom bemutatni, jó ötlet lenne először elindítani.

A művelet egyszerű, sokak számára ismerős, amelyhez elegendő a "gyorsbillentyűk" ismerete.

Konzol indítása Windows rendszeren:

  • Win+R a Windows parancssor megnyitásához rendszergazdai jogokkal;
  • Beírjuk a parancsot cmd
  • Kattintson Belép a billentyűzeten

A konzol indítása Linux disztribúciókban (terminál): az Ubuntuban, amivel dolgoztam, elég a rendszerbillentyű kombináció Ctrl+Alt+T. A többi Linux alapú operációs rendszerről nem tudok mit mondani.

A konzol elindítása MacOS rendszerben: Én magam nem csináltam ezt, mert. Még nincs Macem, és nem valószínű, hogy szükségtelennek fogom venni, de amennyire meg tudtam állapítani, ebben az operációs rendszerben nincsenek „gyorsbillentyűk” a terminál hívásához. Tehát ha Ön az "alma" termékek felhasználója, akkor indítsa el a konzolt az operációs rendszer felületén keresztül, szerencsére sok kézikönyv található a hálózaton.

Kicsit kínos még ilyen információkat is közzétenni arra az esetre, ha valamelyik szakállas tapasztalattal rendelkező profi rendszergazda véletlenül ráakadna erre a cikkre. azt fogja gondolni: „A szerző programozónak tekinti olvasóit, ugyanakkor megtanítja a konzol futtatását... Valami őrült :-)”.

Igen, ez teljesen logikus 🙂 De én csak azokat a helyzeteket veszem figyelembe, hogy a profi fejlesztők mellett a kezdők is eljuthatnak ide. Ezért igyekszem teljes körűvé és minden felhasználói kategória számára elérhetővé tenni az információkat, amint azt már említettem.

Alapvető MySQL-konzolparancsok

Tehát először is el kell érnünk a MySQL parancssort a konzolon. Ehhez nyissa meg a szerverkonzolt, és ha a MySQL szolgáltatásként globálisan telepítve van, akkor a "kapcsolat ellenőrzéséhez" a következőket írjuk:

MySQL -V

Konzol parancs mysql lehetővé teszi az azonos nevű segédprogram futtatását, amely a MySQL parancssor.

Ez lehetővé teszi számunkra, hogy megtudjuk a MySQL számítógépre telepített verzióját, és megbizonyosodjunk arról, hogy egyáltalán telepítve van-e szolgáltatásként. Ha igen, akkor a konzolra reagálva valami ehhez hasonló szöveget fog látni: .

Igen, nem vagyok "igazán kódoló", mert Windows alatt ülök 🙂 De nem ez a lényeg. Unix rendszereken az eljárás ugyanaz.

Ha hirtelen a MySQL nincs globálisan telepítve a számítógépére, vagy a MySQL több verziójával kell dolgoznia, amelyekben csak MySQL-fájlokat és -könyvtárakat tartalmazó könyvtárak vannak, akkor a MySQL indítása a konzolon keresztül így fog kinézni.

A konzolon a következő paranccsal lépjen abba a könyvtárba, ahol a MySQL végrehajtható fájl található (Windows rendszeren legalábbis mysql.exe):

Cd C:\OpenServer\modules\database\MySQL-5.7-x64\bin

A terjesztési készlet elérési útja természetesen eltérő lehet az Ön számára. Példaként úgy döntöttem, hogy futtatom az OpenServerhez tartozó MySQL verziók egyikét.

És elindítjuk a MySQL-t, és közben ellenőrizzük a verzióját:

Mysql.exe -V

Ennek eredményeként az első esethez hasonló üzenetnek kellett volna megjelennie a konzolon mysql Ver 14.14 Distrib 5.7.16, Win64 (x86_64).

Mindent, a MySQL parancssor szerverkonzolon keresztül történő elindításával kitaláltuk, most közvetlenül a MySQL szerverhez fogunk kapcsolódni.

Csatlakozás a MySQL Serverhez a konzolban

Előfordulhat, hogy a MySQL-kiszolgáló nem feltétlenül ugyanazon a gépen van, amelyen a konzolról próbál elérni. Ezért annak érdekében, hogy a távoli MySQL szerverhez kapcsolódhasson a konzolon keresztül, a mysql segédprogram számos paraméterrel rendelkezik, amelyekkel megadhatja a szükséges beállításokat.

A MySQL parancssor futtatásához a konzolon csak a következőket kell beírnunk a kiszolgálókonzolba:

Ebben az esetben azonban a következő hibaüzenetet kapja: 1045-ös HIBA (28000): 'ODBC'@'localhost' felhasználó hozzáférése megtagadva (jelszó használatával: NO). Így néz ki a hibaüzenet a Windows rendszeren. Ha Linuxot használ, akkor az ODBC helyett a rendszerfelhasználó neve lesz, amely alatt a rendszerben műveleteket hajt végre.

Mindez azért van így, mert alapértelmezés szerint a MySQL szerverhez való csatlakozáskor a konzol az ODBC felhasználót Windowson jelszó nélkül, Linuxon pedig a rendszerfelhasználót saját jelszóval használja. Az alapértelmezett gazdagép a localhost, azaz. ez a felhasználó csak a helyi gépről tud csatlakozni.

Ezért két lehetősége van: vagy másik felhasználót használ a MySQL parancssorba való belépéshez, vagy létrehoz egy MySQL-felhasználót a kívánt fiókkal. De a második módszernél még mindig nem nélkülözhetjük az elsőt 🙂 Ezért először a normál felhasználó alatt csatlakozunk a MySQL szerverhez gyökér, amely akkor jön létre, amikor a MySQL telepítve van egy számítógépre, és amelyhez alapértelmezés szerint engedélyezett a localhost hozzáférés:

MySQL -u root -p

Amikor a rendszer kéri a jelszó megadását, egyszerűen nyomja meg az Enter billentyűt (ha nem adta meg, természetesen a MySQL telepítésekor). Ezt követően csatlakozik a MySQL szerverhez, hozzárendel egy kapcsolatazonosítót, és hozzáférést kap a MySQL parancssorhoz.

Ha olyan MySQL szerverhez szeretne csatlakozni, amely meghatározott gazdagépnévvel vagy IP-címmel rendelkezik, vagy másik felhasználóként szeretne bejelentkezni, használja a parancsot a következő formátumban:

MySQL -u felhasználónév -p felhasználói jelszó -h MySQL_server_host_or_IP

Az aláhúzással ellátott cirill karakterek helyett természetesen latinul kell megadni az adatokat. Mellesleg, ha szeretné, ezt a parancsot kicsit más formátumban is megírhatja:

Mysql --user=felhasználónév --jelszó=felhasználói_jelszó --host=MySQL_server_host_or_IP

Ha valamilyen oknál fogva nem szeretné, hogy a MySQL-kapcsolat jelszava megjelenjen a konzolon (ami igazából igaz), akkor a következő parancsot használhatja:

Mysql -u felhasználónév -h MySQL_szerver_gazda_vagy_IP -p

Mivel a jelszó nincs kifejezetten megadva, a következő lépésben meg kell adnia. Ráadásul a beírt karakterek még csillagként sem jelennek meg, hanem csak egy üres karakterlánc.

A megadott kapcsolati beállításokon kívül lehetőség van a következő paraméterek használatára, amelyek értékei a fent felsoroltakkal megegyező módon kerülnek megadásra:

  1. --port vagy -P - a MySQL szerver csatlakozási portjának megadása;
  2. --protocol — a csatlakozáshoz használt protokoll (lehetséges opciók: TCP Windows és Linux esetén, SOCKET Linux esetén, PIPE és MEMORY Windows esetén);
  3. --socket vagy -S - ez a paraméter akkor hasznos, ha socket-en keresztül akarunk csatlakozni, ezért a paraméter értéke socket lesz;
  4. -pipe vagy -W - a paraméter akkor szükséges, ha a "pipelines" vagy "pipes" nevű csatlakozást szeretné használni;
  5. --shared-memory-base-name - ez a paraméter hasznos MEMORY kapcsolatok esetén megosztott memórián keresztül Windows rendszeren;

Nyilvánvaló, hogy a MySQL szerver kapcsolati paramétereinek listája nem korlátozódik erre. A valóságban sokkal több van.

Ha valamilyen oknál fogva a szabványos beállítás a gazdagép, a felhasználó és a jelszó megadásával nem felel meg Önnek, akkor a következő információk hasznosak lesznek a csatlakozási paraméterek teljes listájának megismeréséhez - https://dev.mysql.com/doc /refman/5.7/en/ connecting.html

Hogyan készítsünk adatbázist a MySQL konzolon

Miután csatlakoztunk a MySQL szerverhez, és elindítottuk a MySQL parancssort, ideje elindítani az oldaladatbázisunk életciklusát, amely a létrehozásával kezdődik. MySQL adatbázis létrehozásához a parancssorban írja be a következő parancsot:

CREATE DATABASE adatbázis_neve;

Ugyanez a művelet elvégezhető egy speciális MySQL segédprogrammal mysqladmin. A MySQL parancssortól elszigetelten fut, azaz. használatához ki kell lépnie, vagy új szerverkonzolt kell nyitnia.

Ezután hívja a következő parancsot:

mysqladmin adatbázisnév létrehozása;

A mysqladmin segédprogram használatával egyébként nem csak adatbázisokat hozhat létre és törölhet anélkül, hogy be kellene lépnie a MySQL konzolba, hanem kezelheti a szerverkonfigurációt, a MySQL folyamatokat, kezelheti a replikációkat, ping szervereket, és sok más érdekes dolgot is végezhet.

Hogyan hozzunk létre egy MySQL felhasználót a parancssorban

Nem gyakran, de néha szükséges egy új MySQL felhasználó létrehozása. És konzol módban.

A MySQL parancssorban ez a következőképpen történik:

FELHASZNÁLÓ LÉTREHOZÁSA "felhasználónév"@"host_or_machine_ip" A "felhasználói_jelszó" AZONOSÍTÁSA;

A felhasználó létrejött. Paraméter gazdagép_vagy_IP_gép azt jelenti, hogy a felhasználó létrehozásakor meg kell adni azt az IP-t, ahonnan csatlakozhat a szerverhez, vagy a gazdagép nevét (a hálózaton működő gép domain neve megfelelő).

Mellesleg, amikor megad egy gazdagépet a MySQL-kiszolgálóhoz való csatlakozáshoz, használhatja a százalék szimbólumot - % , ami azt jelenti, hogy a létrehozandó felhasználó bármilyen IP-címről vagy gazdagépről csatlakozhat a MySQL szerverhez.

Figyelembe kell venni, hogy ebben az esetben a localhost nem szerepel a % segítségével megadott címek listájában, mert A localhost UNIX socket kapcsolatot jelöl a szabványos TCP/IP helyett. Azok. ha a létrehozott MySQL-felhasználó nem socketekkel csatlakozik a szerverhez, hanem a konzolban a MySQL-kiszolgálóhoz való csatlakozáskor megadott másik protokollt használja, akkor két felhasználói fiókot kell létrehoznia:

FELHASZNÁLÓ LÉTREHOZÁSA "felhasználónév"@"%" A "jelszó" AZONOSÍTÁSA; FELHASZNÁLÓ LÉTREHOZÁSA "felhasználónév"@"localhost" A "jelszó" AZONOSÍTÁSA;

Kitaláltuk, hogyan hozhatunk létre MySQL felhasználót a konzolon. Most állítsuk be a felhasználói jogokat, hogy bármilyen műveletet végrehajthassanak az újonnan létrehozott adatbázisunkkal a következő paranccsal:

MINDEN JOGOSULTSÁG BEADÁSA AZ adatbázis_neve.* A "felhasználónév"@"host_or_machine_ip"-nek;

választási lehetőség MINDEN, amint érti, csak azt jelzi, hogy a felhasználó bármilyen műveletet végrehajthat egy adott adatbázissal. A paranccsal a felhasználóknak biztosítható jogok teljes listája GRANT, itt található (bár a paraméterek leírása angol nyelvű) - https://dev.mysql.com/doc/refman/5.7/en/grant.html#grant-privileges

Egyébként több jogosultsági paramétert is használhatunk, ha a parancs meghívásakor megadjuk őket, vesszővel elválasztva.

Ha szuperfelhasználót akarsz létrehozni, pl. globális jogosultságokkal rendelkezik, hogy különféle műveleteket hajtson végre a kiszolgáló összes adatbázisával, majd használja a következő parancshívást:

GRANT ALL ON *.* TO "felhasználónév"@"host_or_machine_IP";

Egyébként nem lesz felesleges a MySQL szerver gyorsítótárának törlése a jogosultságok beállítása után. Ha megváltoztatja őket, ne felejtse el ezt a következő parancs meghívásával megtenni:

FLUSH KIVÁLTSÁGOK;

És ha módosítani szeretné a felhasználói engedélyeket, akkor először használja a következő parancsot az összes engedély visszaállításához:

AZ ÖSSZES KIVÁLTATÁS VISSZAVONÁSA A *.*-on a "felhasználónév"@"host_or_machine_IP"-ről;

És akkor telepítse a GRANT, a korábban leírtak szerint.

Ha a jövőben meg kell változtatnia a MySQL felhasználói jelszavát, akkor egyszerűen futtassa a következő parancsokat a MySQL Shellben:

SET PASSWORD FOR "felhasználónév"@"host_or_machine_IP" = PASSWORD("új_jelszó"); FLUSH KIVÁLTSÁGOK;

A MySQL szerver jogosultság-gyorsítótárának alaphelyzetbe állítása ugyanabból a célból szükséges, mint a jogok megváltoztatásakor - e művelet nélkül előfordulhat, hogy a MySQL felhasználói jelszó megváltoztatása nem számít bele, ezért ne legyen lusta a használatához 🙂

Mellesleg, az internet tele van példákkal a következő paranccsal a felhasználó MySQL jelszavának visszaállítására:

UPDATE mysql.user SET Password=PASSWORD("jelszó") WHERE User="felhasználónév";

De ez a lehetőség nem működött számomra a MySQL 5.7-ben, és hibát jelez 1054-es HIBA (42S22): Ismeretlen „Jelszó” oszlop a „mezőlistában”. Ennek oka a Jelszó mező hiánya volt a mysql.user táblában.

Ebből feltételezhetjük, hogy ez az opció csak a MySQL régebbi verzióinál működik, ahol ez a mező a felhasználói táblában létezett. Ezért az biztos, hogy az első opciómat használja, kivéve, ha természetesen özönvíz előtti szoftverrel kell dolgoznia anélkül, hogy frissítheti a verziókat :)

Ezzel befejeződik egy új MySQL-felhasználó létrehozása és a műveletek áttekintése a jogaival és jelszavaival. Menjünk tovább.

Adatbázis kiválasztása, amikor MySQL-lel dolgozik a parancssoron keresztül

Most, miután létrehoztunk egy felhasználót a MySQL Shellben, és megadtuk neki az adatbázis kezelési jogait, pontosan ezt az adatbázist kell kiválasztanunk, hogy magával az adatbázissal és a benne tárolt adatokkal tudjunk működni.

Ehhez használja a következő parancsot a MySQL konzolon:

USE adatbázis_neve;

Ha minden jól ment, egy üzenet jelenik meg a konzolon adatbázis megváltozott, amely jelzi, hogy a konzolon keresztül bejelentkeztünk a MySQL adatbázisba. Egyébként a MySQL szerverhez való csatlakozáskor kezdetben megadhatja azt az adatbázist, amellyel dolgoznia kell. Ehhez írja be a következő parancsot a szerverkonzolon:

Mysql --user=felhasználónév --jelszó=felhasználói_jelszó --host=MySQL_server_host_or_IP --adatbázis=adatbázis_neve

Vagy ugyanaz, csak a MySQL felhasználói jelszót kéri:

mysql -u felhasználónév -h gazdagép_vagy_ip_mysql_kiszolgáló_adatbázis_neve -p

Ez minden. Úgy gondolom, hogy most nem lesz nehézsége a MySQL adatbázishoz való csatlakozással a konzolon keresztül 🙂

Munka a MySQL táblákkal a MySQL konzolon keresztül

Tehát létrehoztuk a MySQL adatbázist a konzolon keresztül. Most jó lenne megtanulni, hogyan kell vele dolgozni arra az esetre, amikor a MySQL parancssor lesz az egyetlen módja a szerveren tárolt adatok elérésének (ahogy nálam is volt, amiről a cikk elején beszéltem ).

Mint ismeretes, táblákból áll, amelyeken belül az információk már több mezős rekordok formájában vannak tárolva. Ezért az információelhelyezési hierarchiát követve először megtanuljuk, hogyan hajthatunk végre tipikus CRUD műveleteket táblázatokkal.

A CRUD műveletek, ha valaki nem tud, az adatok létrehozására, olvasására, frissítésére és törlésére szolgáló műveletek angol nyelvből. "Létrehozás, olvasás, frissítés, törlés" (erre szüksége lehet az interjúkban).

Emlékeztetjük, hogy a táblákkal végzett műveletek végrehajtásához először csatlakoznia kell a MySQL adatbázishoz a parancs segítségével HASZNÁLAT.

Tehát az első napirendünk egy MySQL tábla létrehozása az adatbázisban a parancssoron keresztül, amely így néz ki:

TÁBLÁZAT LÉTREHOZÁSA táblanév (mezőnév_1 mező_típusa_1, mező_neve_2 mező_típusa_2(mezőméret_2), INDEX(mezőnév_1), ...);

Mint érti, tetszőleges számú mező lehet, típusuk eltérő lehet, valamint az indexek és kulcsok megléte opcionális.

Egyébként, ha egy táblát egy másik adatbázisba szeretne másolni, vagy csak másolatot szeretne készíteni az aktuálisban, a következő parancsok segítenek:

TÁBLÁZAT LÉTREHOZÁSA új_tábla_neve MINT régi_tábla_neve; INSERT új_tábla_neve SELECT * FROM régi_tábla_neve;

Ezek a parancsok lehetővé teszik a tábla szerkezetének és adatainak az indexekkel és a tábla triggereivel együtt másolását. Ha csak adatokra és struktúrára van szükséged (a mezők nevei és adattípusai), akkor egyetlen parancshívással meg tudod oldani:

CREATE TABLE új_tábla_neve AS SELECT * FROM régi_tábla_neve;

A következő művelet a CRUD blokkból az olvasás. Táblázatok esetén az olvasás a struktúrájukat jeleníti meg. Erre négy parancs van:

TELJES OSZLOPOK MUTATÁSA A tábla_nevéből; DESCRIBE tábla_neve; EXPLAIN tábla_neve; TÁBLÁZAT LÉTREHOZÁSA táblanév;

Az első táblázatos formában információkat ad ki az adatbázistábla mezőiről a MySQL konzolra, feltüntetve a mező nevét, adattípusát, kulcsok jelenlétét, alapértelmezett értéket stb. A kulcsszó használatakor TELJES kibővített információkat kaphat, beleértve az aktuális felhasználó jogosultságait az egyes mezőkhöz, megjegyzéseket mindegyikhez és a kódolási értéket.

A második és a harmadik parancs egyszerűen az első parancs lerövidített formái, kiterjesztett információk nélkül. Miért kellett ezeket előállítani - el sem tudom képzelni... Lehetséges, hogy volt valami kérdeznivaló az interjúkon, amikor állásra jelentkeztem? 🙂

A negyedik parancs a néven, a mezőtípusokon és azok alapértelmezett értékein kívül lehetővé teszi a táblakulcsok, a táblamotorok (InnoDB, MyISAM), a kódolás stb. értékeinek beszerzését.

A frissítési művelet a táblák esetében azok szerkezetének megváltoztatása, pl. különféle műveletek MySQL táblamezőkkel:

ALTER TABLE táblanév DROP COLUMN mezőnév; ALTER TABLE táblanév ADD COLUMN mezőnév VARCHAR(20); ALTER TABLE táblanév MÓDOSÍTÁS régi_mezőnév új mezőnév VARCHAR(50); ALTER TABLE táblanév MODIFY mezőnév VARCHAR(3);

Az első parancs lehetővé teszi a tábla egy adott mezőjének törlését, a második - hozzáadását, a harmadik lehetővé teszi a mező átnevezését és egyidejűleg a benne tárolt adatok típusának megváltoztatását, a negyedik pedig csak az adattípus módosítását.

Ugyanez megtehető a táblaindexekkel, nagyjából ugyanazokkal a parancsokkal:

ALTER TABLE táblanév ADD EGYEDI INDEX index_neve (mezőnév_1, ...); ALTER TABLE táblázat_név átnevezés INDEX régi_index_név TO új_index_név; ALTER TABLE táblanév DROP INDEX indexnév;

A fenti parancsok lehetővé teszik indexek hozzáadását, átnevezését és eltávolítását a MySQL-táblákból a parancssoron keresztül. Az indexek hozzáadásához és eltávolításához egyébként van egy másik alternatíva is a független parancsok használatára, de nem azokon keresztül. ALTER TABLE. Ezért, ha szeretné, használhatja őket:

EGYEDI INDEX LÉTREHOZÁSA index_neve (mezőnév_1, ...) ON táblanév; DROP INDEX index_name ON táblanév;

A fenti parancsok egyenértékűek az előző blokk első és utolsó parancsával. Sajnos nincs külön parancs az index átnevezésére. Az index típusának megváltoztatására pedig sajnos a MySQL-ben egyáltalán nincs lehetőség. Az egyetlen kiút az index törlése és újbóli létrehozása a kívánt típussal.

Nos, végre elérkeztünk a CRUD blokk utolsó műveletéhez - a törléshez. A MySQL táblák adatbázisból való eltávolítása nagyon egyszerű. Elegendő a következő parancsot végrehajtani a MySQL konzolon:

DROP TABLE táblázat_neve;

A gyakorlatban néha előfordulnak olyan helyzetek, amelyek miatt nem lehet törölni egy táblát vagy megváltoztatni a szerkezetét. Ez általában annak köszönhető, hogy az adatbázisban idegen kulcsokat használnak a táblák egymáshoz kapcsolására. Én személy szerint nem egyszer találkoztam ezzel a helyzettel, amint arról a cikk elején beszéltem.

Ezért, ha egy tábla vagy az adatok szerkezetének törlésekor vagy frissítésekor a MySQL hibát adott vissza a szöveggel Szülősor nem törölhető vagy frissíthető: az idegenkulcs-megszorítás sikertelen, akkor a következő információk hasznosak lesznek az Ön számára.

Terveink megvalósításához ideiglenesen le kell tiltanunk az idegen kulcsok meglétének ellenőrzését, elvégezni a szükséges műveletet, majd vissza kell kapcsolni az ellenőrzést, mert valóban szükség van rá, és a legtöbb esetben lehetővé teszi, hogy megvédje magát az adatintegritás megsértésével szemben.

Valójában erre a célra MySQL idegen kulcsokra van szükség.

Tehát az idegen kulcsok által megzavart adatok törléséhez a következő lépéseket kell végrehajtania a MySQL konzolon:

SET FOREIGN_KEY_CHECKS=0; #required_mysql_command SET FOREIGN_KEY_CHECKS=1;

Egyébként, ha törölni szeretne egy idegen kulcsot, az eljárás ugyanaz, mint az index törlésekor:

ALTER TABLE táblanév DROP FOREIGN KEY idegen_kulcsnév;

Egy tábla MySQL idegen kulcs nevének megtudásához használja a már ismert MySQL konzolparancsot A TÁBLÁZAT LÉTREHOZÁSA MUTATÁSA.

Munka a MySQL tábla adataival a parancssoron keresztül

A MySQL-konzol tábláinál a CRUD műveleteket figyelembe vettük. A teljes kép érdekében ebből a csalólapból csak az adatbázistáblákban tárolt adatokkal való munkavégzésre szolgáló parancsok hiányoznak. Azt hiszem, sokan ismerik ezeket a parancsokat és használják a gyakorlatban is, de mégis emlékeztetni fogom őket.

A MySQL táblaadatokkal való munkavégzéshez szükséges CRUD műveletek így néznek ki:

INSERT INTO táblanév (mező1, mező2, ...) ÉRTÉKEK (mező_1 értéke, mező_2 értéke, ...); SELECT mező1, mező2, ... FROM táblanév; UPDATE tábla_neve SET mező1 = mező_1 értéke, mező2 = mező_2 értéke; DELETE FROM táblanév WHERE mező1 = mező_1 értéke;

A fenti parancsok a MySQL adatbázistáblákból származó adatok létrehozásának, olvasásának, frissítésének és törlésének műveleteihez tartoznak. A SELECT és UPDATE használatakor lehetőség van egy minősítő WHERE záradék használatára is, amellyel a DELETE használata esetén leírt módon megadható az adatkiválasztás.

Továbbá, amikor a SELECT használatával adatokat kér le az adatbázisból, a következő opcióval lekérheti a táblázat összes mezőjének értékét:

SELECT * FROM táblanév;

Természetesen a WHERE-en kívül más operátorok is használhatók ezekben a műveletekben. Különösen sok van belőlük a SELECT segítségével történő adatkiválasztásnál: létezik UNION több lekérdezés eredményének egyesítésére, és különféle típusú JOIN. Az összes felsorolás nagyon hosszú és fárasztó számomra, és ezt el fogod olvasni.

Ezért egyezzünk meg: ha többet szeretne megtudni valamiről, csak írja meg a megjegyzésekben, és megpróbálok válaszolni. Vagy közösségünk más hozzáértő tagjai megteszik. RENDBEN? 😉

Egyelőre tehát nem foglalkozunk ezzel a blokkkal.

Ha minden adatot el kell távolítania egy táblából, használja a következő MySQL parancsot:

TRUNCATE tábla_neve;

Mielőtt meghívná, mint már említettük, előfordulhat, hogy le kell tiltania az idegen kulcsok ellenőrzését, ha vannak kapcsolódó MySQL táblák, ami megakadályozhatja a szükséges művelet végrehajtását.

Egy másik érdekes szempont, amelyet itt figyelembe kell venni, hogy ez a parancs nem állítja vissza az AUTO_INCREMENT számlálót, amelyről ismert, hogy automatikusan generál egy mezőértéket anélkül, hogy manuálisan be kellene állítani.

Az ilyen típusú mezőket leggyakrabban a fő kulcsmezőazonosító értékeinek generálására használják, amely a különböző táblákból származó adatok közötti kapcsolatok létrehozására szolgál.

Azaz, ha a táblázat adatainak törlése előtt használja CSONKA a számláló maximális értéke 1200 volt, akkor az eljárás utáni első rekord 1201-es azonosítóval rendelkezik. Elvileg rendben van. Ha megfelelő méretet állít be ehhez a mezőhöz, akkor nem fog hamarosan szembesülni túlcsorduló értékekkel.

Azonban bizonyos esetekben, amikor az alkalmazás kódjában valamilyen kötés van a mező értékéhez, ez a viselkedés kényelmetlen lehet.

Ennek elkerülése érdekében használja ezt az opciót a fenti parancs helyett:

TRUNCATE TABLE someTable RESTART IDENTITY;

Ez a parancshívás opció CSONKA lehetővé teszi a mezőszámláló értékének visszaállítását innen AUTO_INCREMENT. Ezért a törlés után hozzáadott első rekord mező értéke 1 lesz 1201 helyett, mint a fenti példában.

A MySQL adatbázis törlése parancssoron keresztül

Az adatbázissal való munka életciklusa a végéhez közeledik, és logikusan – az adatbázis törlésével – zárul. A művelet végrehajtásához a MySQL konzolban a következő parancsot kell végrehajtani (ebben az esetben előfordulhat, hogy a törölni kívánt adatbázis nem kerül kiválasztásra a paranccsal HASZNÁLAT):

ADATBÁZIS TÖRLÉSE adatbázis_neve;

Ugyanezt a műveletet megteheti a mysqladmin MySQL segédprogrammal, amelyet már a cikk elején említettem az adatbázis létrehozásakor:

mysqladmin drop adatbázis_neve;

A parancs meghívásakor a következő üzenet jelenik meg a kiszolgálókonzolon:

Az adatbázis eldobása potenciálisan nagyon rossz dolog.
Az adatbázisban tárolt minden adat megsemmisül.

Valóban el akarja dobni az „adatbázis_neve” adatbázist?

Röviden, ez egy figyelmeztetés, hogy egy MySQL adatbázis törlése nagyon rossz ötlet. A művelet megerősítését is kéri. Ha egyetértesz írj yés nyomja meg Belép a billentyűzeten, ami után a következő üzenet jelenik meg a képernyőn (természetesen ha minden jól ment):

Az "adatbázis_neve" adatbázis kimaradt

Így 🙂

Hogyan lehet törölni a MySQL felhasználót a konzolból

Most ugyanez a sors éri azt a MySQL-felhasználót, akit létrehozunk, hogy megmutassuk, hogyan is történik ez. Kezdetnek azonban jó lenne ellenőrizni, hogy a szükséges felhasználó valóban létezik-e, mielőtt törölné.

A MySQL 5.7-től kezdve mindkét művelethez egy parancs tartozik:

HAJTJA EL FELHASZNÁLÓT, HA LÉTEZI felhasználónév;

A MySQL korábbi verziói két külön parancsot igényeltek:

HASZNÁLAT ENGEDÉLYEZÉSE *.* A "felhasználónév"@"gazda_vagy_IP_címhez"; DROP USER "felhasználónév"@"host_or_ip_address";

Sajnos ebben az esetben a MySQL konzolon a művelet befejezéséről szóló üzenet hagyományosan informatív az aktuális MySQL szerveren meglévő összes felhasználó:

SELECT User FROM mysql.user;

A parancs ezen verziója csak a felhasználóneveket jeleníti meg. Ha látni kell azokat a gazdagépeket, amelyekről a felhasználók csatlakozhatnak a szerverhez, valamint a jogosultságok listáját, akkor a következő formában hívhatja meg a parancsot:

SELECT User, Host, Grant_priv FROM mysql.user;

A mysql.user táblában sok más mező is található, amelyek más típusú jogosultságokat és egyéb információkat tárolnak, amelyek teljes listája itt található - https://mariadb.com/kb/en/library/mysqluser-table/

Ne tévesszen meg, hogy ez a MariaDB DBMS dokumentációja. Technikailag ez ugyanaz, mint a MySQL, mert A MariaDB az angol "fork" szóból származó ága vagy villája – egy ág, egy villa.

Miért kellett ezt megtenni - megint csak nyomtalanul 🙂 Lehet-e büszkén kijelenteni mindenkinek, hogy „van saját DBMS-em”? .. De őszintén szólva nem vagyok tisztában a MySQL és a MySQL közötti pontos indítékokkal és különbségekkel MariaDB. Ezért, ha tud valamit erről, érdekes lenne olvasni róla a megjegyzésekben.

Kilépés a MySQL konzolból

Ennyi, az adatbázis és a felhasználó életciklusa, amely a létrehozásukkal kezdődött és a törlésükkel végződött, véget ért. Ezért a MySQL parancssor, amellyel a kiszolgálókonzolban a segédprogram segítségével dolgoztunk mysql már nincs szükségünk.

Már csak ki kell lépni belőle...

Úgy tűnik, hogy a művelet triviális, de sokan olyan helyzetben, amikor ki kell lépni a MySQL parancssorból, egyszerűen bezárják a kiszolgálókonzolt, és újra megnyitják. Természetesen lehet így is cselekedni, de ez több másodperces munkaidőt vesz igénybe, és minden alkalommal idegesít, amikor meg kell tennie.

A helyes viselkedés ebben a helyzetben az lenne, ha egyszerűen felhívjuk a parancsot kijárat a MySQL parancssorban, ami után a szolgáltatás udvariasan elköszön tőlünk 🙂

És csak valami 🙂 Így legközelebb nem kell konzolokat létrehoznia és újra megnyitnia, amikor ki kell lépnie a MySQL-ből a konzolon, és újra hozzá kell férnie a szerver kezeléséhez.

Ennyit akartam neked ma elmondani. Remélem, hogy a konzolon keresztül a MySQL parancssorral való munkavégzésről szóló csalólapom nemcsak nekem, hanem Önnek is hasznos lesz.

A cikkben bemutatott információk gyakorlati alkalmazásáról szólva szeretném felidézni, hogy a fenti konstrukciók nem csak a MySQL parancssorban és a szerverkonzolban használhatók, hanem a phpMyAdmin konzolban és más olyan szoftverekben is, amelyek ezt biztosítják. lehetőség.

Hogy használod-e vagy sem, az rajtad múlik. De amint azt a cikk elején mondtam, vannak olyan helyzetek, amikor a MySQL konzol használata időt és idegeket takaríthat meg. És az, hogy minden nap használja-e a parancssort, ízlés és egyéni preferenciák kérdése.

Írja meg a megjegyzésekben, hogy mely parancsokat használja leggyakrabban. Vagy esetleg tudsz más trükköket. Mindenesetre ossza meg véleményét a többiekkel, és folytassa a beszélgetést a többi felhasználó megjegyzéseiben.

Ígérem, hogy közben sok új dolgot fogsz megtanulni, akárcsak minden cikkem írásakor 🙂

Ez minden! Sok sikert és hamarosan találkozunk 🙂

P.S.: ha weboldalra van szüksége, vagy egy meglévőn módosítani kell, de erre nincs idő és kedv, akkor tudom ajánlani szolgáltatásaimat.

Több mint 5 év tapasztalat professzionális weboldal fejlesztés. Dolgozik vele PHP, nyitott kocsi, WordPress, Laravel, Yii, MySQL, PostgreSQL, JavaScript, Reagál, Szögletesés egyéb webfejlesztési technológiák.

Az alábbiakban felsoroljuk a leghasznosabb és leggyakrabban használt parancsokat. MySQL példákkal.

A sor elején lévő mysql azt jelenti, hogy a parancs a belépés után végrehajtásra kerül MySQL.

A # vagy $ szimbólum a sor elején azt jelenti, hogy a parancs végrehajtása a parancssorból történik.

A szerver állapotának ellenőrzéséhez MySQL fuss:

Mert FreeBSD:

# szolgáltatás mysql-szerver állapota

V CentOS/RHEL:

# szolgáltatás mysqld állapota

MySQL a konzolról, ha a szerver MySQL ugyanazon a gazdagépen van:

A szerverhez való csatlakozáshoz MySQL a konzolról, ha a szerver MySQL a db1.example.com távoli gazdagépen található:

$ mysql -u felhasználónév -p -h db1.example.com

Munka adatbázisokkal, táblázatokkal - rekordok megtekintése, törlése, szerkesztése. Konzol

Adatbázis létrehozása bekapcsolva MySQL szerver:

mysql adatbázis létrehozása

Mutassa meg a kiszolgálón található összes adatbázis listáját MySQL:

MySQL használat ;

Az adatbázisban lévő összes tábla megjelenítése:

mysql táblázatok megjelenítése;

Táblázatformátum megtekintése az adatbázisban:

mysql description ;

Alap törlése:

mysql drop adatbázis ;

Tábla törlése az adatbázisból:

mysql drop table ;

Mutasd a táblázat összes tartalmát:

MySQL SELECT * FROM ;

Jelenítse meg a kiválasztott táblázat oszlopait és az oszlopok tartalmát:

Mysql oszlopok megjelenítése innen: ;

Sorok megjelenítése egy adott táblázatban, amely "bármit" tartalmaz:

MySQL SELECT * FROM WHERE = "bármi";

Az összes rekord megjelenítése egy adott táblázatban, amely tartalmazza a "Bob" és a "3444444" telefonszámot:

Mysql SELECT * FROM WHERE name = " Bob " AND phone_number = " 3444444 ";

Az összes bejegyzés megjelenítése NEM tartalmazza a "Bob" nevet és a "3444444" telefonszámot, a phone_number mező szerint rendezve:

Mysql SELECT * FROM WHERE név != " Bob " AND phone_number = " 3444444 " order phone_number;

Mutassa meg az összes "bob" betűkkel és a "3444444" telefonszámmal kezdődő bejegyzést egy adott táblázatban:

Mysql SELECT * FROM WHERE név, például " Bob %" AND phone_number = " 3444444 ";

Mutasd az összes "bob" betűkkel kezdődő bejegyzést és a "3444444" telefonszámot, az 1-től 5-ig terjedő bejegyzésekre korlátozva:

Mysql SELECT * FROM WHERE név, például " Bob %" AND phone_number = " 3444444 " limit 1.5;

Reguláris kifejezések ("REGEXP BINARY") használata bejegyzések kereséséhez. Például egy kis- és nagybetűket nem érző kereséshez keresse meg az összes A betűvel kezdődő bejegyzést:

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

Az összes egyedi bejegyzés megjelenítése:

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

Sorok számának megjelenítése a táblázatban:

Mysql SELECT COUNT(*) FROM ;

Mysql SELECT SUM(*) FROM ;

Oszlop eltávolítása:

mysql alter table drop oszlop ;

Oszlop hozzáadása az adatbázishoz:

mysql alter table oszlop hozzáadása varchar(20);

Oszlopnév változás:

mysql alter tábla módosítása varchar(50);

Hozzon létre egy oszlopot egyedi névvel az ismétlődő nevek elkerülése érdekében:

mysql alter table add egyedi();

Oszlop átméretezése:

mysql alter table modify VARCHAR(3);

Oszlop eltávolítása a táblázatból:

mysql alter table drop index ;

Mysql LOAD DATA INFILE " /tmp/filename.csv " csere INTO TÁBLÁZAT MEZŐKBE, VÉGEZÉSE: "," SOROK VÉGEZÉSE "n" (mező1,mező2,mező3);

MySQL szerver felhasználók, jelszavak – felhasználók és jelszavak hozzáadása, módosítása. Konzol

Új felhasználó létrehozása - csatlakozás a szerverhez MySQL rootként, váltás adatbázisra, felhasználó hozzáadása, jogosultságok frissítése:

# mysql -u root -p mysql mysql használata; mysql INSERT INTO user (Gazdagép,Felhasználó,Jelszó) VALUES("%"," username ", PASSWORD(" password ")); mysql flush jogosultságok;

Felhasználói jelszó módosítása a db1.example.org távoli gazdagép konzoljáról:

# mysqladmin -u felhasználónév -h db1.example.org -p jelszó " new-password "

Felhasználói jelszó módosítása a konzolról MySQL- csatlakozzon rootként, frissítse a jelszót, frissítse a jogosultságokat:

# mysql -u root -p mysql JELSZÓ BEÁLLÍTÁSA A " felhasználó "@" gépnévhez " = PASSWORD(" jelszó itt "); mysql flush jogosultságok;

A root szerver jelszavának visszaállítása/módosítása MySQL- állj meg MySQL, indítsa el privilégiumtáblák nélkül, csatlakozzon rootként, állítson be új jelszót, lépjen ki és indítsa újra MySQL.

# /etc/init.d/mysql stop # mysqld_safe -skip-grant-tables & # mysql -u root mysql use mysql; mysql update user set password=PASSWORD(" newrootpassword ") ahol User="root"; mysql; öblítési jogosultságok; mysql kilépés # /etc/init.d/mysql stop # /etc/init.d/mysql start

Állítson be root jelszót, ha van root jelszó.

# mysqladmin -u root jelszó új jelszó

Frissítse a root jelszót:

# mysqladmin -u root -p oldpassword newpassword

A szerverhez való csatlakozás jogának beállítása a localhost gazdagépről a "passwd" jelszóval - szubroot csatlakoztatása, váltás az adatbázisra, jogosultságok beállítása, jogosultságok frissítése:

# mysql -u root -p mysql mysql használata; mysql engedélyezése a *.*-n bob @localhost számára, amelyet "passwd" azonosít; mysql flush jogosultságok;

Jogosultságok beállítása a felhasználó számára az adatbázis használatához - rootként való csatlakozás, váltás az adatbázisra, jogosultságok beállítása, jogosultságok frissítése:

# mysql -u root -p mysql mysql használata; mysql INSERT INTO db (Host,Db,Felhasználó,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) ÉRTÉKEK ("%","adatbázisnév","felhasználónév","Y","Y","Y"," Y", "Y", "N"); mysql flush jogosultságok;

A Mysql az adatbázisnév .* összes jogosultságát megadja a @localhost felhasználónévnek; mysql flush jogosultságok;

Adatok frissítése az adatbázisban:

Mysql UPDATE SET Select_priv = "Y",Insert_priv = "Y",Update_priv = "Y" ahol = felhasználó";

Egy sor törlése a táblázatban:

Mysql DELETE from where = "bármi";

Jogosultságok frissítése az adatbázisban:

mysql flush jogosultságok;

Biztonsági mentések - adatbázis létrehozása, visszaállítása. Konzol

Készítsen biztonsági másolatot (kiíratást) az összes adatbázisról az alldatabases.sql fájlba:

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

Egy adatbázis biztonsági mentése adatbázisnév.sql fájlba:

# mysql dump -u felhasználónév -p jelszó -adatbázisok adatbázisnév ; /tmp/adatbázisnév.sql

Egy tábla biztonsági mentése adatbázisnév.táblanév.sql fájlba:

# mysql dump -c -u felhasználónév -p jelszó adatbázisnév táblanév ; /tmp/adatbázisnév.táblanév.sql

Adatbázis (vagy tábla) visszaállítása biztonsági másolatból:

# mysql -u felhasználónév -p jelszó adatbázisnév< /tmp/databasename.sql

Adatbázis táblák készítése. Konzol

kis betűk jelzik az oszlopok nevét;
NAGYBETŰK - az oszlopok típusai és attribútumai;
in (zárójelben) - az oszloptípus értéke.

1. példa táblázat létrehozása:

mysql CREATE TABLE (keresztnév VARCHAR(20), középkezdeti VARCHAR(3), vezetéknév VARCHAR(35), utótag VARCHAR(3), officeid VARCHAR(10), felhasználói azonosító VARCHAR(15), felhasználónév VARCHAR(8), email VARCHAR(35) ) ), telefon VARCHAR(25), VARCHAR(15) csoportok, dátumbélyeg DATE, időbélyeg TIME, pgpemail VARCHAR(255));

2. példa táblázat létrehozása:

Mysql tábla létrehozása (személyazonosító INT(50) NOT NULL AUTO_INTCREMENT ELSŐDLEGES KULCS, keresztnév VARCHAR(35), középnév VARCHAR(50), vezetéknév VARCHAR(50) alapértelmezett "bato");

A mysql parancssori segédprogram egy egyszerű SQL-burkoló (a GNU projekt readline könyvtárának képességeivel). Támogatja az interaktív és nem interaktív módokat. Interaktív módban a lekérdezések eredményei ASCII formátumban jelennek meg. Ha nem interaktív módban használjuk (például szűrőként), az eredmény szöveges formátumban jelenik meg, elválasztóként egy tabulátor karakterrel (a kimeneti formátum parancssori opciókkal módosítható). A szkriptek az alábbiak szerint futtathatók:

Shell > mysql adatbázis output.tab

Ha egy adott kliens memóriahiánya miatt problémái vannak, használja a --quick opciót! Ez azt eredményezi, hogy a mysql a mysql_use_result() függvényt használja a mysql_store_result() függvény helyett az eredményül kapott adatlekéréshez.

A mysql használata nagyon egyszerű. Futtassa a mysql adatbázist vagy a mysql-t --user=felhasználónév --jelszó=saját_jelszó adatbázis e. Írja be az SQL parancsot közvetlenül a parancssorba, a következő karakterek egyikével fejezve be: `;" , `\g" vagy `\G" , majd nyomja meg az "Enter"' billentyűt.

A mysql parancssori segédprogram a következő beállításokat támogatja:

Súgó A program használatával kapcsolatos súgóinformációk megjelenítése és kilépés. -A, --no-auto-rehash Letiltja az automatikus újrafeldolgozást. A rehash-t a táblázatok és mezők hash-jének lekéréséhez kell használni. Ezzel gyorsabban indul a mysql. --prompt=... Parancssort állít be a megadott formátumban. -b, --no-beep Kikapcsolja a hibajelzést. -B, --batch Kötegelt kimenet tabulátor határolóval, minden sor egy új sorban. Az előzményfájl nincs használatban. --character-sets-dir=... A karakterkészleteket tartalmazó könyvtár. -C, --compress Használja a szerver/kliens protokoll adattömörítését. -#, --debug[=...] Hibakeresési napló. Az alapértelmezett érték a „d:t:o,/tmp/mysql.trace”. -D, --database=... A használandó adatbázis neve. Leginkább a `my.cnf" konfigurációs fájlban használatos. --default-character-set=... Az alapértelmezett karakterkészlet beállítása. -e, --execute=... --batch) -E, --vertical Nyomtatás lekérdezheti az eredményeket (karakterláncokat) függőlegesen.E beállítás nélkül is előállíthat ilyen kimenetet, ha a parancsokat \G karakterekkel fejezi be. -f, --force Folytassa a feldolgozást, még akkor is, ha SQL hiba lép fel. -g, --no-named-commands A névvel ellátott parancsok kikapcsolása Csak \* parancsokat használjon, vagy elnevezett parancsokat csak a `;-re végződő sor elején használjon. . A 10.9-es verzió óta az ügyfél ezzel az opcióval indul, beleértve alapértelmezett! A -g kapcsolóval azonban a hosszú parancsok továbbra is az első sortól működnek. -G, --enable-named-commands Elnevezett parancsok engedélyezése. A hosszú parancsok, valamint a rövidített parancsok, például a \*, megengedettek. -i, --ignore-space A függvénynevek utáni szóköz figyelmen kívül hagyása. -h, --host=... Csatlakozás egy adatbázishoz a megadott gazdagépen. -H, --html Nyomtatási kimenet HTML-ként. -L, --skip-line-numbers Sorszámok kihagyása hibákért. Hasznos a hibaüzeneteket tartalmazó fájlok összehasonlításához. --no-pager Letiltja a lapozót, és az eredményt az stdout-ba írja (Unixon). Lásd még a \h parancsot (online súgó). --no-tee Zárolja a kimeneti fájlt. Lásd még a \h parancsot (online súgó). -n, --unbuffered Törölje a puffert minden kérés után. -N, --skip-column-names Oszlopnevek kihagyása az eredményekben. -O, --set-variable var=option Változó értékének beállítása. A használt változók listája a --help segítségével jelenik meg. -o, --one-database Csak az alapértelmezett adatbázis frissítése. Lehetővé teszi más adatbázis-frissítések kihagyását a frissítési naplóban. --pager[=...] Beállítja a kimeneti adattípust. Alapértelmezés szerint ez a PAGER környezeti változó. Lehetséges értékei a less, more, cat [> filename] stb. Lásd még a \h parancsot (online súgó). Ez az opció kötegelt módban nem működik. A lapozó csak Unix alatt működik. -p, --password[=...] Az adatbázis-kiszolgálóhoz való csatlakozáskor használt jelszó. Ha a jelszó nincs megadva a parancssorban, akkor azt a felhasználótól kell kérni. A -p rövid alak használatakor ne hagyjon szóközt a paraméter és a jelszó értéke között. -P --port=... A csatlakozáshoz használandó TCP/IP portszám. -q, --quick Ne tárolja gyorsítótárban az eredményt. Soronként adja ki, ahogy a szerverről érkezik. Ez lelassíthatja a szervert, ha a kimenet szünetel. Az előzményfájl nincs használatban. -r, --raw Oszlopértékek megjelenítése átalakítás nélkül. --batch-el együtt használva. -s, --silent Csendes mód. Csak hibaüzeneteket jelenítsen meg. -S --socket=... Csatlakozáshoz használt socket fájl. -t --table Az eredményt táblázatos formában adja ki. Alapértelmezés szerint nem kötegelt módhoz. -T, --debug-info Kinyomtat néhány hibakeresési információt, amikor a program kilép. --tee=... Csatol valamit a kimeneti fájlhoz. Lásd még a \h parancsot (online súgó). Ez az opció kötegelt módban nem működik. -u, --user=# MySQL felhasználónév, ha ez a felhasználó jelenleg nem aktív. -U, --safe-updates[=#], --i-am-a-dummy[=#] Csak az UPDATE és DELETE műveleteket engedélyezi a billentyűk használatával. Erről a beállításról lásd alább. Ezt a beállítást visszaállíthatja a --safe-updates=0 argumentum beállításával a `my.cnf' konfigurációs fájlban. -v, --verbose Részletesebb kimeneti mód (a -v -v -v a táblázat kimeneti formátumát adja meg). - V , --version Verzióinformációk megjelenítése és kilépés a programból -w, --wait Ha a kapcsolat megszakadt a szerverrel, várjon, és a megszakítás helyett próbálja meg visszaállítani.

A következő változókat is beállíthatja a -O vagy a --set-variable parancssori kapcsolókkal:

Ha beírja a help parancsot a parancssorba, a mysql program felsorolja az általa támogatott parancsokat:

Mysql> help MySQL parancsok help (\h) Megjeleníti a megadott szöveget. ? (\h) A segítség szinonimája. clear (\c) Clear parancs. csatlakozás (\r) Csatlakozzon újra a szerverhez. További argumentumok a db és a host. szerkesztés (\e) Szerkessze az aktuális parancsot a $EDITOR segítségével. ego (\G) Küldje el az aktuális MySQL parancsot a szervernek, és jelenítse meg az eredményt függőlegesen. kilépés (\q) Kilépés a programból. Ugyanaz, mint a kilépés. go (\g) Az aktuális MySQL parancs elküldése a szervernek. nopager (\n) A lapozó blokkolása, nyomtatás az stdout-ba. notee (\t) Ne adjon hozzá bejegyzéseket a kimeneti fájlhoz. lapozó (\P) A PAGER beállítása. A lekérdezés eredményeinek megjelenítése a PAGER segítségével. print (\p) Kinyomtatja az aktuális parancsot. prompt (\R) Módosítsa a mysql parancsok prompt formátumát. kilépés (\q) Lépjen ki a programból. rehash (\#) A hash tábla visszaállítása. forrás (\.) Futtassa az SQL parancsfájlt. Adjon meg egy fájlnevet argumentumként. állapot (\s) Szerver állapotinformációinak lekérése. tee (\T) Állítsa be az outfile beállítást. Hozzáfűzni valamit az adott kimeneti fájlhoz. use (\u) Használjon másik adatbázist. Adja meg az adatbázis nevét argumentumként.

A pager parancs csak Unix alatt működik.

Ennek eredménye a következő:

  • Nem szabad UPDATE vagy DELETE parancsokat végrehajtani, hacsak a WHERE záradékban nincsenek megadva kulcskorlátozások. Az UPDATE / DELETE parancsokat azonban a LIMIT utasítással végrehajthatja: UPDATE táblanév SET not_key_column=# WHERE not_key_column=# LIMIT 1;
  • Minden túlméretezett találat #select_limit# sorokra korlátozódik.
  • A KIVÁLASZTÁSOK, amelyek végrehajtásához több mint #max_join_size# sorkombinációra van szükség, megszakad.

Néhány hasznos tipp a mysql kliens használatához:

Egyes adatok jobban olvashatók, ha függőlegesen jelenítik meg őket a gyakran használt vízszintes kimeneti ablak helyett. Például a szélesnél hosszabb és sok újsort tartalmazó szöveget gyakran sokkal könnyebb függőlegesen olvasni.

Mysql> SELECT * FROM mails WHERE LENGTH(txt) sbj: UTF-8 txt: >>>>> "Thimble" == Thimble Smith írja: Thimble> Szia. Szerintem ez jó ötlet. Ismeri valaki az UTF-8 Thimble>-t vagy a Unicode-ot? Ellenkező esetben felteszem ezt a TODO listámra, és meglátom, mi történik a Thimble>-vel. Igen, kérem, tegye meg. Üdvözlettel, Monty fájl: inbox-jani-1 hash: 190402944 1 sor a készletben (0,09 mp)

  • Használhatja a tee parancs opcióit a bejelentkezéshez. Futtatható a --tee=... opcióval a mysql-hez, vagy interaktívan a parancssorból a tee paranccsal. A képernyőn megjelenő összes adat szintén hozzáadódik a megadott fájlhoz. Ez nagyon hasznos lehet programhibakeresési célokra. A tee segédprogram a parancssorból a notee paranccsal blokkolható. A tee parancs ismételt futtatása ismét engedélyezi a naplózást. Ha a tee parancs paramétere nincs megadva, akkor az előző fájl kerül felhasználásra. Vegye figyelembe, hogy a tee parancs minden végrehajtott parancs után egy fájlba írja az eredményeket, közvetlenül a következő parancs parancssorának megjelenése előtt.
  • A --pager[=...] opció lehetővé tette az eredmények interaktív megtekintését vagy keresését a Unix programokkal less , more vagy hasonlók. Ha nem ad meg kifejezetten argumentumot ebben a paraméterben, a mysql kliens megkeresi a PAGER környezeti változót, és az értéket pagerre állítja. A pager program interaktív parancssorból is elindítható a pager paranccsal, és leállítható a nopager paranccsal. A parancs argumentumot vehet fel, ami nem kötelező; A pager parancs argumentum nélkül is meghívható, de ehhez a --pager kapcsoló használata vagy az stdout megfelelő alapértelmezett beállítása szükséges. A pager parancs csak Unix rendszeren működik, mert a popen() függvényt használja, amely Windows rendszeren nem érhető el. Ehelyett Windows rendszeren használhatja a tee opciót, bár bizonyos helyzetekben ez kevésbé kényelmes, mint a pager parancs használata.
  • Néhány tipp a pager paranccsal kapcsolatban: A következő fájlba írható: mysql> pager cat > /tmp/log.txt és az eredmények csak egy fájlba kerülnek. A pager parancs által meghívott programok bármilyen érvényes beállítást elfogadhatnak: mysql> pager less -n -i -S Különös figyelmet kell fordítani a fenti példában az -S opcióra. Nagyon hasznos lehet az eredmények megtekintésekor. Próbálja ki vízszintes kimenettel (a parancsokat "\g" vagy ";" karakterrel zárja le) és függőleges kimenettel (a parancsok végén "\G"-vel). A nagyon nehézkes kimeneti eredményeket néha nehéz kiolvasni a képernyőről, ebben az esetben a less paranccsal -S opcióval interaktívan nézheti meg az eredményeket balról jobbra, míg ha a sorok hossza hosszabb, mint a képernyő szélessége megjelennek, a kimenetük egy új sorban folytatódik. Az adatkimenet ilyen esetekben jobban olvasható. A less parancs interaktív meghívásakor a "-S" opcióval a parancssorból átkapcsolhatja a működési módot (engedélyezve/letiltva). A kevesebbről további információért lásd a "h" parancs leírását.
  • Végezetül megjegyezzük (ha ezt még nem értette meg az előző példákból), hogy az eredmények feldolgozásának nagyon összetett módjai kombinálhatók. Tehát a következő példában az eredmények két különböző merevlemezre szerelt két különböző könyvtárba lesznek elküldve /dr1 és /dr2 alatt, és az eredmények mégis láthatók a képernyőn a less paranccsal: mysql> pager cat | tee /dr1/tmp/res.txt | \ tee /dr2/tmp/res2.txt | kevesebb -n -i -S
  • A fenti funkciók kombinálhatók is: a tee futtatásával és a pager less értékre állításával megtekintheti az eredményeket a less Unix paranccsal, miközben egyidejűleg fájlba ír. A pager program által használt Unix tee segédprogram és a mysql kliens beépített tee parancsa között az a különbség, hogy a beépített tee parancs akkor is működik, ha a tee segédprogram nem érhető el Unixon. A tee beépített mindent rögzít, ami a képernyőn megjelenik, míg a pagerrel használt Unix tee segédprogram ebből nem sokat tesz. Végül, de nem utolsósorban, az interaktív tee parancs kényelmesebb a működési módok be- és kikapcsolására, ha néha le kell tiltania ezt a funkciót, amikor fájlba ír.

A prompt formátumát a mysql kliens parancssorában módosíthatja.

A következő prompt opciók állnak rendelkezésre:

választási lehetőség Leírás
\vmysql verzió
\da használni kívánt adatbázis neve
\hhostnév, amelyhez csatlakozni kell
\pportszám, amelyen keresztül a kapcsolat létrejön
\uFelhasználónév
\Uteljes cím username@host
\\ fordított perjel `\"
\nújsor karakter
\ttáblázatosítás
\ hely
\_ szóköz aláhúzással
\Rkatonai időzóna (0-23)
\ridő a normál időzóna szerint (1-12)
\mpercek
\yaz év két számjegye
\Yaz év négy számjegye
\Dteljes dátumformátum
\smásodpercig
\wa hét napja hárombetűs formátumban (hétfő, kedd, ...)
\PAM/PM (am/pm)
\ohónap numerikus formátumban
\Ohónap hárombetűs formátumban (január, február, ...)
\cSzámláló, amely számolja a beírt parancsok számát

A `\" betű után bármely más betű egyszerűen kiegészíti ezt a betűt.

A prompt opciókat a következő módokon állíthatja be:

A környezeti változókban A prompt karakterlánchoz beállíthatja a MYSQL_PS1 környezeti változót. Például: shell> export MYSQL_PS1="(\u@\h) [\d]> " "my.cnf" ".my.cnf" A prompt opciót bármely MySQL konfigurációs fájlban beállíthatja a mysql csoport alatt. Például: prompt=(\u@\h) [\d]>\_ A parancssorban A --prompt kapcsolót a mysql parancssorból állíthatja be. Például: shell> mysql --prompt="(\u@\h) [\d]> " (felhasználó@gazda) > Interaktív A prompt (vagy \R) paranccsal is módosíthatja a prompt beállításait interaktív módon. Például: mysql> prompt (\u@\h) [\d]>\_ PROMPT beállítása "(\u@\h) [\d]>\_" (felhasználó@gazda) > (felhasználó@gazdagép) > prompt Visszatérés az eredeti (alapértelmezett) PROMPT beállításokhoz a mysql> mysql> segédprogramban