Paggawa gamit ang MySQL mula sa command line. Awtomatikong pag-install ng MySQL sa Windows Run mysql mula sa command line ng linux

Pagsisimula at pagpapahinto sa MySQL server mula sa command line

Maaari mong manu-manong simulan ang MySQL server sa isa sa dalawang paraan:

I-double click ang mysqld-nt.exe file na matatagpuan sa bin subdirectory ng direktoryo kung saan naka-install ang MySQL.

Magbukas ng window ng Windows Command Prompt. Upang gawin ito, i-click ang Start button, piliin ang Run mula sa menu, sa Run a program window na lilitaw, sa Open field, ipasok ang cmd command at i-click ang OK. May lalabas na command line window sa screen (Fig. 1.25).

kanin. 1.25. Window ng Command Prompt


Sa command prompt, ipasok ang command

mysqld-nt

at pindutin ang Enter. Magsisimula ang MySQL server.

Kung, kapag nagse-set up ng server, ang path sa bin subdirectory ay hindi idinagdag sa halaga ng Path system variable, pagkatapos ay upang simulan ang server dapat mong ipasok hindi lamang ang pangalan ng file, kundi pati na rin ang buong path dito, halimbawa. :

C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt

Kung gusto mong tingnan ang mga diagnostic na mensahe tungkol sa server sa command prompt window, sa halip na mysqld-nt, ipasok

mysqld-nt –console

Pansin!

Kung hindi ka tumukoy ng root user password kapag nagse-set up ng MySQL server, dapat kang magtakda ng password sa unang pagkakataon na simulan mo ang server (kung hindi, kahit sino ay maaaring pamahalaan ang server bilang root nang walang password).

Upang itakda ang root password, magbukas ng bagong Command Prompt window at ipasok ang sumusunod na command:

mysqladmin -u root password<пароль>

(o C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin -u root password<пароль>, kung ang path sa bin subdirectory ay hindi idinagdag sa Path system variable kapag nagse-set up ng server) at pindutin ang Enter.

Sa hinaharap, kung kailangan mong baguhin ang root user password, patakbuhin ang parehong command, gamit lamang ang -p na opsyon:

mysqladmin -u root -p password<новый пароль>

Kapag lumitaw ang prompt ng Enter password, ipasok ang iyong lumang password at pindutin ang Enter.

Sa wakas, kung kailangan mong ihinto ang MySQL server, patakbuhin ang command

mysqladmin -u root -p shutdown

at sa prompt ng Enter password, ipasok ang root user password. Pindutin ang enter. Ang MySQL server ay ititigil.

Maaari mo ring gamitin ang graphical MySQL Administrator utility upang simulan at ihinto ang MySQL server.

Pagsisimula at Paghinto ng MySQL Server Gamit ang MySQL Administrator

Upang simulan ang MySQL server gamit ang graphical MySQL Administrator utility, sundin ang mga hakbang na ito.

1. Ilunsad ang MySQL Administrator program (Start → All Programs → MySQL → MySQL Administrator). Ang isang window ng koneksyon sa server ay lilitaw sa screen (Larawan 1.26).

kanin. 1.26.


2. Pindutin nang matagal ang Ctrl key at i-click ang Skip button na lalabas sa kanang sulok sa ibaba ng window sa halip na ang Cancel button. Ang pangunahing window ng MySQL Administrator ay lilitaw sa screen (Larawan 1.27).

kanin. 1.27. Pangunahing window ng MySQL Administrator


4. Kung ang MySQL server ay hindi pa na-configure bilang isang serbisyo sa Windows, ang Start Service button na matatagpuan sa kanang pane ng window ay naka-gray out. Ang mga sumusunod na paunang hakbang ay dapat gawin:

1) Pumunta sa tab na I-configure ang Serbisyo. Hanapin ang pindutang I-install ang bagong Serbisyo sa ibaba ng tab at i-click ito;

2) sa dialog box na lilitaw, tukuyin ang pangalan ng serbisyo at i-click ang OK;

3) sa field ng Config Filename, ipasok ang path sa my.ini configuration file (Fig. 1.28), halimbawa C:\Program Files\MySQL\MySQL Server 5.0\my.ini. Ang kulay ng pulang font ay nangangahulugan na ang file ay hindi natagpuan; kung ang kulay ay nagbabago sa normal, kung gayon ang landas ay tama;

4) sa Path to binary field, ipasok ang path sa mysqld-nt.exe file, halimbawa C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt;

6) bumalik sa tab na Start/Stop Service.

kanin. 1.28. I-configure ang Tab ng Serbisyo 5. I-click ang pindutan ng Start Service. Magsisimula ang MySQL server.


Pansin!

Kung hindi ka tumukoy ng root user password kapag nagse-set up ng MySQL server, dapat mong itakda ito sa unang pagkakataon na simulan mo ang server (kung hindi, kahit sino ay maaaring pamahalaan ang server bilang root nang walang password). Sa kasalukuyang bersyon ng MySQL Administrator, ang pagtatakda ng root password ay hindi magagamit, at upang maisagawa ang operasyong ito kailangan mong gamitin ang mysqladmin command line utility (tingnan ang subsection na "Pagsisimula at pagpapahinto ng MySQL server mula sa command line").

Upang ihinto ang MySQL server gamit ang MySQL Administrator, sundin ang mga hakbang na ito.

1. Ilunsad ang MySQL Administrator program (Start → All Programs → MySQL → MySQL Administrator). Ang isang window ng koneksyon sa server ay lilitaw sa screen (tingnan ang Larawan 1.26).

Server Host – halaga localhost (lokal na computer);

Port – napili ang numero ng port kapag nagse-set up ng server (default – 3306);

Usename - halaga ng ugat;

Password – root password ng user. I-click ang OK.

3. Sa pangunahing MySQL Administrator window, sa kaliwang pane, i-click ang Service Control.

4. Sa kanang pane ng window, i-click ang Stop Service button. Ang MySQL server ay ititigil.

Sa susunod na subsection, matututunan mo kung paano magsimula ng MySQL server gamit ang Windows Administrative Tools.

Pagsisimula at pagpapahinto sa MySQL server mula sa control panel

Kung ang MySQL server ay na-configure bilang isang serbisyo ng Windows gamit ang setup wizard (tingnan ang subsection na "Configuring the MySQL server") o gamit ang MySQL Administrator utility (tingnan ang subsection na "Starting and stopping the MySQL server using MySQL Administrator"), pagkatapos ay magsimula at huminto Maaari mong gamitin ang bahagi ng Mga Serbisyo ng Control Panel.

Upang ma-access ang bahagi ng Mga Serbisyo, i-click ang Start button, piliin ang Control Panel mula sa menu, pagkatapos ay i-double click ang Administrative Tools sa Control Panel, at sa wakas, i-double click ang Services sa Administrative Tools window. Lilitaw ang window ng Mga Serbisyo sa screen (Larawan 1.29) na may listahan ng lahat ng lokal na serbisyo.

kanin. 1.29. Serbisyo ng MySQL sa control panel


Sa window ng Mga Serbisyo, mag-click sa pangalan ng serbisyo ng MySQL (natutukoy ang pangalan kapag lumilikha ng serbisyo sa wizard ng pagsasaayos o sa MySQL Administrator). Pagkatapos ay mag-click sa nais na link sa ilalim ng pangalan ng serbisyo: Simulan ang Serbisyo, Ihinto ang Serbisyo, o I-restart ang Serbisyo.

Kapag tumatakbo na ang MySQL server, maaari kang kumonekta dito. Sa mga sumusunod na subsection matututunan mo kung paano ito gawin.

Pagkonekta sa server mula sa command line

Upang kumonekta sa MySQL server mula sa command line, sundin ang mga hakbang na ito.

1. Magbukas ng window ng Windows Command Prompt. Upang gawin ito, i-click ang Start button, piliin ang Run mula sa menu, sa Run a program window na lilitaw, ipasok ang cmd sa Open field at i-click ang OK.

2. Sa command line (tingnan ang Figure 1.25), ipasok ang command

mysql -h<Имя компьютера>-u<Имя пользователя>-p

(Saan<Имя компьютера>ay ang pangalan ng computer kung saan tumatakbo ang server) at pindutin ang Enter. Kapag na-prompt na Ipasok ang password, ipasok ang password ng user.

Kung kailangan mong kumonekta sa isang MySQL server na tumatakbo sa parehong computer, ang pangalan ng computer (localhost) ay maaaring tanggalin, halimbawa

mysql -u ugat -p

Pagkatapos kumonekta sa server, ang command line prompt ay magbabago sa mysql> (Figure 1.30). Ngayon ay maaari kang magsimulang magtrabaho kasama ang database: magdagdag ng mga talahanayan, magpasok at mag-query ng data, magrehistro ng mga bagong user, atbp.

kanin. 1.30. Pagkonekta sa MySQL server mula sa command line


Upang idiskonekta mula sa server, i-type lamang ang command sa command line

at pindutin ang Enter.

Ang isang alternatibong paraan upang kumonekta sa MySQL server ay ibinibigay ng graphical MySQL Query Browser utility.

Pagkonekta sa server gamit ang MySQL Query Browser

Ang MySQL Query Browser utility ay isang interface para sa paglikha, pag-edit at pagpapatupad ng mga SQL statement. Ito ay mas maginhawa kaysa sa command line. Kung magpasya kang gamitin ang MySQL Query Browser upang gumana sa database, pagkatapos ay sundin ang mga hakbang na ito upang kumonekta sa server.

1. Ilunsad ang MySQL Query Browser program (Start → All Programs → MySQL → MySQL Query Browser). Lilitaw ang isang window ng koneksyon sa server sa screen (Larawan 1.31).

kanin. 1.31. Window ng koneksyon ng MySQL server


2. Sa mga field ng window ng koneksyon ng server, ilagay ang mga parameter ng koneksyon:

Server Host – ang pangalan ng computer kung saan tumatakbo ang MySQL server;

Port – napili ang numero ng port kapag nagse-set up ng server (default – 330 6);

Username – pangalan ng gumagamit;

Password - password ng gumagamit;

Default na Schema - Ang pangalan ng database na iyong gagawin (maaaring ito ay isang umiiral na database o isang bago).

3. I-click ang OK. Kung naglagay ka ng pangalan para sa bagong database, pagkatapos ay sa dialog box na lalabas, i-click ang Oo upang gawin ang database na ito.

Pagkatapos kumonekta sa server, lalabas sa screen ang pangunahing MySQL Query Browser window (Larawan 1.32). Sa loob nito maaari kang magsagawa ng anumang mga operasyon sa database: magdagdag ng mga talahanayan, magpasok at mag-query ng data, magrehistro ng mga bagong user, atbp.

kanin. 1.32. Pangunahing window ng MySQL Query Browser


Pansin!

Ang default na font na ginamit sa MySQL Query Browser upang ipakita ang mga query sa SQL ay hindi sumusuporta sa mga letrang Ruso. Upang magpasok ng mga letrang Ruso sa mga teksto ng query, dapat kang pumili ng ibang font (halimbawa, Arial o Book Antiqua). Upang gawin ito, sa pangunahing window ng MySQL Query Browser, buksan ang menu ng Mga Tool at piliin ang Mga Opsyon. Sa lilitaw na window ng Mga Pagpipilian, sa kaliwang bahagi, i-click ang Mga Pangkalahatang Pagpipilian at sa kanang bahagi, sa field ng Code Font, piliin ang gustong font mula sa listahan. I-click ang button na Ilapat.

Upang idiskonekta mula sa server, isara lang ang window ng MySQL Query Browser.

Ito ay nagtatapos sa aming pagpapakilala sa MySQL at nagpapatuloy sa pagbubuod ng mga resulta.

1.6. Buod

Sinuri ng kabanatang ito ang MySQL DBMS at ang mga graphical na utility na MySQL Administrator at MySQL Query Browser. Pinagkadalubhasaan mo ang isang medyo kumplikadong pamamaraan para sa pag-install at pag-configure ng isang MySQL server, natutunan kung paano pamahalaan ang server at kumonekta dito. Natutunan mo rin kung paano gumagana ang isang relational database at kung paano magdisenyo ng iyong sariling database.

Kaya, ang susunod na hakbang ay ang pagbuo ng isang database sa MySQL. Ang ikalawang kabanata ay nakatuon dito. Ipapakita nito sa iyo kung paano lumikha ng mga talahanayan, magpasok ng impormasyon sa mga ito, at hanapin ang impormasyong kailangan mo sa database.

Kabanata 2
Pamamahala ng Database gamit ang SQL

Sa kabanatang ito, matututunan mo kung paano gumawa ng data sa MySQL DBMS, kung paano matukoy ang istraktura nito, at kung paano magdagdag, magbago, at magtanggal ng data. Ang mga operasyong ito ay ginagawa ng SQL, isang unibersal na structured query language na isang karaniwang paraan ng pag-access sa mga relational database.

Maaari mong gamitin ang alinman sa maraming MySQL server client application para magsagawa ng mga SQL command. Hindi saklaw ng kabanatang ito ang mga aplikasyon ng third party. Ipapakilala ka lang sa mga application na ginawa ng MySQL AB: ang mysql command line utility at ang graphical MySQL Query Browser utility.

Lahat ng data operations ay available sa parehong utility. Ang MySQL Query Browser ay maginhawa upang gumana sa database: ang mga bahagi nito ay malinaw na ipinakita, maaari mong direktang i-edit ang data (nang hindi gumagamit ng SQL UPDATE operator), gumana sa mga query, halimbawa, bumuo ng mga ito gamit ang isang espesyal na tool (at hindi mo kailangan upang manu-manong ipasok ang mga pangalan ng mga talahanayan at column ), i-save ang mga query sa isang file, i-export ang mga resulta ng query at marami pang iba. Maaari mong malaman ang tungkol sa lahat ng mga kakayahan ng MySQL Query Browser sa pamamagitan ng pagsangguni sa dokumentasyon sa Russian, na makikita sa http://dev.mysql.com/doc/query-browser/ru/index.html.

Matututuhan mo muna kung paano magpatakbo ng mga SQL command sa MySQL Query Browser at sa command line, at pagkatapos ay sasaklawin lang namin ang syntax ng mga SQL command.

2.1. Pagpapatupad ng mga SQL Command

Bago isagawa ang mga SQL command, kailangan mong kumonekta sa isang tumatakbong MySQL server (kung paano ito gawin ay inilarawan sa Kabanata 1). Sa seksyong ito, matututunan mo kung paano lumikha ng mga SQL command at isumite ang mga ito sa server para sa pagpapatupad.

Kung gumagamit ka ng command line, pagkatapos ay upang isagawa ang SQL command, ilagay ang text nito sa command line window at pindutin ang Enter key upang ipadala ang command sa server. Upang maiwasan ang mga problema sa pag-encode ng data sa wikang Ruso, bago magsimulang magtrabaho kasama ang data, patakbuhin ang command

I-SET ANG MGA PANGALAN cp866;

Maaari mong makita ang resulta ng pagpapatupad ng utos na ito sa Fig. 2.1.

kanin. 2.1. Pagtatakda ng pag-encode sa command line


Ang utos na SET NAMES ay dapat na ulitin kapag lahat pagkonekta sa server gamit ang command line. Ang command na ito ay nagsasabi sa server na ang client application na ito (mysql utility) ay gumagamit ng CP-866 encoding (ito ang Windows command line encoding), at ang server ay awtomatikong magsasagawa ng encoding conversion kapag nakikipag-ugnayan sa client application.

Pagkatapos baguhin ang encoding, maaari kang magpasok ng anumang mga SQL command sa command line. Ang isang mensahe tungkol sa resulta ng command, pati na rin ang hiniling na data, ay direktang ipinapakita sa command line window (Larawan 2.2).

kanin. 2.2. Pagpapatupad ng SQL Query sa Command Line


Ang mysql utility ay nagpapahintulot sa iyo na magpasok ng mga multi-line na command (sa Fig. 2.3 ang SHOW DATABASES command ay ipinasok sa ganitong paraan). Kung ang isang tuldok-kuwit ay hindi ipinasok bilang tanda ng pagtatapos ng utos, pagkatapos ay kapag pinindot mo ang Enter key, ang utility ay hindi nagpapadala ng utos sa server, ngunit sinenyasan kang magpatuloy sa pagpasok ng utos. Kung gusto mong kanselahin ang isang multi-line na command, i-type ang \c (Figure 2.3).

kanin. 2.3. Multiline na utos


Kung gumagamit ka ng MySQL Query Browser, hindi mo kailangang itakda ang pag-encode - gumagana ang program na ito sa UTF-8 encoding at mismong nag-uulat nito sa server. Gayunpaman, sa MySQL Query Browser mayroong problema sa pagpapakita ng mga letrang Ruso sa lugar ng query (ang lugar kung saan ipinasok ang teksto ng mga SQL command, Fig. 2.4). Upang malutas ang problemang ito, kailangan mong baguhin ang font na ginamit sa lugar ng query (kung paano ito gagawin ay inilarawan sa dulo ng nakaraang kabanata). Isang beses mo lang kailangang baguhin ang font.

kanin. 2.4. Pagpapatupad ng SQL Query sa MySQL Query Browser


Sa lugar ng query, maaari kang magpasok ng ilang mga SQL command nang sabay-sabay, tulad ng ipinapakita sa Figure. 2.4. Ang kasalukuyang command (ang cursor ay nasa isa sa mga linya nito) ay naka-highlight na may puting background, ang natitirang mga command ay ipinapakita sa isang light grey na background. Upang maisagawa ang kasalukuyang command, maaari mong i-click ang alinman sa Execute button na matatagpuan sa kanan ng prompt area o ang Ctrl+Enter key na kumbinasyon. Pagkatapos isagawa ang utos, ang hiniling na data ay ipinapakita sa lugar ng mga resulta, at isang mensahe tungkol sa resulta ng utos ay ipinapakita sa ibaba ng lugar na ito.

Ngayong natutunan mo na kung paano magpasok ng mga SQL command, simulan natin ang pamamahala ng data gamit ang mga command na ito. Una sa lahat, titingnan natin ang mga utos na idinisenyo upang gumana sa database sa kabuuan.

2.2. Paglikha ng database

Sa seksyong ito, matututunan mo kung paano lumikha at magtanggal ng isang database, baguhin ang default na pag-encode para dito, piliin ang kasalukuyang database, at tingnan din ang isang listahan ng lahat ng mga database sa isang ibinigay na MySQL server.

Upang lumikha ng isang database, patakbuhin ang command

GUMAWA NG DATABASE<Имя базы данных>;

Halimbawa, ang utos

GUMAWA NG DATABASE SalesDept;

lumilikha ng isang database na pinangalanang SalesDept.

Kung sa ilang kadahilanan kailangan mong magtakda ng default na pag-encode para sa isang bagong database na naiiba sa pag-encode na tinukoy kapag nagse-set up ng MySQL, pagkatapos kapag lumilikha ng database maaari mong tukuyin ang nais na pag-encode (character set) at/o paghahambing (pag-uuri) na panuntunan para sa mga halaga ng character:

GUMAWA NG DATABASE<Имя базы данных>

SET NG CHARACTER<Имя кодировки>

COLLATE<Имя правила сравнения>;

Halimbawa, kung nag-import ka ng data sa isang bagong database na nasa pag-encode ng CP-1251, ipahiwatig namin ang pag-encode na ito kapag lumilikha ng database sa ganitong paraan:

GUMAWA NG DATABASE SalesDept

CHARACTER SET cp1251 COLLATE cp1251_general_ci;

Payo

Upang tingnan ang listahan ng mga encoding na ginamit sa MySQL, patakbuhin ang utos na SHOW CHARACTER SET; at para makakita ng listahan ng mga panuntunan para sa paghahambing ng mga simbolikong halaga, gamitin ang utos na SHOW COLLATION; Sa kasong ito, maaari mong gamitin ang operator na TULAD: halimbawa, upang makita ang lahat ng panuntunan sa paghahambing para sa pag-encode ng CP-1251, patakbuhin ang utos na SHOW COLLATION LIKE %1251%;. Ang nagtatapos na “_ci” (case insensitive) sa pangalan ng mga panuntunan sa paghahambing ay nangangahulugan na kapag ang paghahambing at pag-uuri ng case ng mga character ay hindi isinasaalang-alang, ang nagtatapos na “_cs” (case sensitive) – case ay isinasaalang-alang, ang pagtatapos “_bin” (binary) – ang paghahambing at pag-uuri ay ginagawa sa pamamagitan ng mga numeric na character code. Para sa karamihan ng mga panuntunan sa paghahambing, maaari kang makahanap ng isang paglalarawan (iyon ay, ang pagkakasunud-sunod ng mga character ayon sa kung saan ang mga halaga ng teksto ay iuutos) sa web page http://www.collation-charts.org/mysql60/.

Ang pag-encode na tinukoy kapag lumilikha ng database ay gagamitin bilang default para sa mga talahanayan sa database na ito, gayunpaman, maaari kang tumukoy ng ibang pag-encode.

Maaari mong baguhin ang pag-encode at/o paghahambing na panuntunan para sa mga halaga ng character para sa database gamit ang command

BAGUHIN ANG DATABASE<Имя базы данных>

SET NG CHARACTER<Имя кодировки>

COLLATE<Имя правила сравнения>;

Sa kasong ito, ang pag-encode na ginamit sa mga umiiral na talahanayan ng database ay nananatiling pareho; Tanging ang default na pag-encode para sa mga bagong likhang talahanayan ang nagbabago.

Upang alisin ang isang hindi kailangan o maling ginawang database, patakbuhin ang command

DROP DATABASE<Имя базы данных>;

Pansin!

Ang pagtanggal ng database ay isang napakahalagang operasyon dahil tinatanggal nito ang lahat ng mga talahanayan sa database at ang data na nakaimbak sa mga talahanayan. Inirerekomenda na lumikha ng isang backup na kopya ng database bago tanggalin.

Maaari kang pumili ng isa sa mga database na nilikha sa MySQL server na ito bilang kasalukuyang database gamit ang command

GAMITIN<Имя базы данных>;

Halimbawa,:

GAMITIN SalesDept;

Maaari kang magsagawa ng mga operasyon sa mga talahanayan sa database na iyon nang hindi inilalagay ang pangalan ng talahanayan gamit ang pangalan ng database. Halimbawa, upang ma-access ang talahanayan ng Mga Customer sa database ng SalesDept, maaari mong isulat lamang ang Mga Customer sa halip na SalesDept.Customers. Sa pamamagitan ng pagtukoy sa kasalukuyang database, maaari mong ma-access ang mga talahanayan sa iba pang mga database, ngunit dapat mong gamitin ang pangalan ng database bilang prefix. Ang pagpili ng kasalukuyang database ay nai-save hanggang sa idiskonekta mo mula sa server o hanggang sa pumili ka ng isa pang kasalukuyang database.

Upang makita ang isang listahan ng lahat ng mga database na umiiral sa isang ibinigay na MySQL server, patakbuhin ang command

MAGPAKITA NG MGA DATABASE;

Kahit na hindi ka pa nakakagawa ng anumang mga database, makikita mo ang tatlong database ng system sa resultang listahan.

Ang INFORMATION_SCHEMA ay isang database ng impormasyon kung saan makakakuha ka ng impormasyon tungkol sa lahat ng iba pang mga database, ang istraktura ng data sa mga ito at lahat ng uri ng mga bagay: mga talahanayan, column, pangunahin at dayuhang key, mga karapatan sa pag-access, mga naka-imbak na pamamaraan, pag-encode, atbp. Available ang database na ito Ito ay read-only at virtual, ibig sabihin ay hindi ito nakaimbak bilang isang direktoryo sa disk: lahat ng impormasyong hiniling mula sa database na ito ay dynamic na ibinibigay ng MySQL server.

Ang Mysql ay isang utility database na ginagamit ng MySQL server. Nag-iimbak ito ng impormasyon tungkol sa mga nakarehistrong user at ang kanilang mga karapatan sa pag-access, impormasyon sa sanggunian, atbp.

Ang pagsubok ay isang walang laman na database na maaaring magamit upang subukan ang mga bagay o simpleng tanggalin.

Kaya, pinagkadalubhasaan mo ang mga pangunahing operasyon na isinagawa gamit ang database sa kabuuan: ang mga utos na GUMAWA NG DATABASE (paglikha), ALTER DATABASE (baguhin), DROP DATABASE (tanggalin), USE (piliin ang kasalukuyang database) at SHOW DATABASES (tingnan ang isang listahan ng mga database). Susunod na titingnan natin ang mga pagpapatakbo ng talahanayan. Sa kasong ito, ipagpalagay namin na pinili mo ang isang database bilang ang kasalukuyang isa at nagtatrabaho sa mga talahanayan nito.

2.3. Paggawa gamit ang mga mesa

Sa seksyong ito, matututunan mo kung paano lumikha, magbago, at magtanggal ng isang talahanayan, kung paano tingnan ang impormasyon ng talahanayan, at isang listahan ng lahat ng mga talahanayan sa kasalukuyang database. Magsimula tayo sa pinakamahirap na utos - ang paglikha ng isang talahanayan.

Paggawa ng table

Para gumawa ng table, patakbuhin ang command na ipinapakita sa Listing 2.1.

Listahan 2.1. Lumikha ng utos ng talahanayan

GUMAWA NG TALAAN<Имя таблицы>

(<Имя столбца 1> <Тип столбца 1> [<Свойства столбца 1>],

<Имя столбца 2> <Тип столбца 2> [<Свойства столбца 2>],

[<Информация о ключевых столбцах и индексах>])

[<Опциональные свойства таблицы>];


Tulad ng nakikita mo, ang command na lumikha ng talahanayan ay maaaring magsama ng maraming mga parameter, ngunit marami sa mga ito ay opsyonal (sa Listahan 2.1 ang mga parameter na ito ay nakapaloob sa mga square bracket). Sa katunayan, upang lumikha ng isang talahanayan, kailangan mo lamang na tukuyin ang pangalan nito at ang mga pangalan at uri ng lahat ng mga hanay; iba pang mga parameter ang ginagamit kung kinakailangan.

Tingnan muna natin ang ilang halimbawa na makakatulong sa iyong makabisado ang utos na CREATE TABLE at kaagad, nang hindi pinag-aaralan ang maraming parameter nito, simulan ang paggawa ng sarili mong (simple in structure) na mga talahanayan.

Ipagpalagay natin na binubuo namin ang database na aming idinisenyo sa Kabanata 1. Gamit ang mga command mula sa nakaraang seksyon, lumikha kami ng walang laman na database ng SalesDept at pinili ito bilang ang kasalukuyang. Ngayon gumawa tayo ng tatlong talahanayan: Mga Customer, Mga Produkto at Mga Order. Ipinapakita ng listahan 2.2 ang utos na gumawa ng talahanayan ng Mga Customer.

Listahan 2.2. Utos na gawin ang talahanayan ng Mga Customer

GUMAWA NG TALAAN Mga Customer

(id SERIAL,

pangalan VARCHAR(100),

telepono VARCHAR(20),

address VARCHAR(150),

rating INT,

PANGUNAHING SUSI (id))


Gumamit ang utos na ito ng mga parameter: una, ang pangalan ng talahanayan at, pangalawa, ang mga pangalan at uri ng mga column na bubuo ng talahanayan (tingnan din ang Talahanayan 1.1 sa Kabanata 1).

Id – record identifier. Nagtalaga ka ng uri ng SERIAL sa column na ito, na nagbibigay-daan sa iyong awtomatikong bilangin ang mga row ng talahanayan. Ang SERIAL keyword ay nangangahulugang BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE. Nangangahulugan ito na ang malalaking integer (BIGINT) na positibo (UNSIGNED) na mga numero ay maaaring ipasok sa column, habang ang kawalan ng hindi natukoy at dobleng mga halaga (HINDI NULL NATATANGI) ay awtomatikong kinokontrol. Kung, kapag nagdadagdag ng row sa isang table, hindi ka tumukoy ng value para sa column na ito, ilalagay ng MySQL program ang susunod na sequence number (AUTO_INCREMENT) sa column na ito.

Tandaan

Ang NULL ay isang pare-pareho na nagpapahiwatig ng kawalan ng isang halaga. Kung ang isang column ay naglalaman ng isang NULL na halaga, pagkatapos ay ipinapalagay na walang tinukoy na halaga para sa column na iyon (kaya naman kung bakit tinatawag din namin ang NULL na isang null na halaga). Ang NULL ay hindi dapat malito sa walang laman na string ("") o ang numerong 0. Ang mga halaga ng NULL ay naiiba sa pagtrato: karamihan sa mga function at operator ay nagbabalik ng NULL kung ang isa sa mga argumento ay NULL. Halimbawa, ang resulta ng paghahambing 1 = 1 ay isang tunay na halaga (TRUE), at ang resulta ng paghahambing na NULL = NULL ay isang hindi natukoy na halaga (NULL), iyon ay, dalawang hindi natukoy na mga halaga ay hindi itinuturing na pantay.

Ang Nam ay ang pangalan ng kliyente, ang telepono ay ang numero ng telepono at ang address ay ang address. Itinalaga mo ang uri ng VARCHAR sa mga column na ito dahil maglalaman ang mga ito ng mga value ng character. Ang maximum na pinapayagang bilang ng mga character sa halaga ng column ay ipinahiwatig sa mga panaklong.

Pangatlo, tinukoy mo na ang column ng id ang magiging pangunahing key ng talahanayan sa pamamagitan ng pagsasama ng sugnay na PANGUNAHING KEY (id) sa command sa paggawa ng talahanayan.

Pang-apat, tinukoy mo ang dalawang opsyonal na parameter para sa talahanayang ito. Tinutukoy ng parameter ng ENGINE ang uri ng talahanayan. Itinalaga mo ang talahanayan ng Mga Customer ng uri ng InnoDB, dahil ang ganitong uri lang ang nagsisiguro na mapanatili ang integridad ng mga ugnayan sa pagitan ng mga talahanayan (tatalakayin ang higit pang mga detalye tungkol sa mga uri ng talahanayan sa seksyong "Mga opsyonal na katangian ng talahanayan"). Ang parameter ng CHARACTER SET ay tumutukoy sa default na pag-encode para sa data sa talahanayan. Dahil hindi mo itinakda nang hiwalay ang pag-encode para sa mga column ng pangalan, telepono, at address, maiimbak ang data sa mga column na ito sa UTF-8, na siyang default na encoding para sa talahanayan ng Mga Customer.

Ang susunod na halimbawang titingnan natin ay ang utos ng paglikha ng talahanayan ng Mga Produkto na ipinapakita sa Listahan 2.3.

Listahan 2.3. Utos sa paggawa ng talahanayan ng mga produkto

GUMAWA NG MGA Produkto ng TABLE

(id SERIAL,

paglalarawan VARCHAR(100),

mga detalye TEXT,

presyong DECIMAL(8,2),

PANGUNAHING SUSI (id))

ENGINE InnoDB CHARACTER SET utf8;


Ang utos na ito ay halos kapareho sa utos na lumikha ng talahanayan ng Mga Customer at naiiba lamang sa pangalan ng talahanayan at hanay ng mga hanay. Ang mga column ng id (numero ng produkto) at paglalarawan (pangalan ng produkto) ng talahanayan ng Mga Produkto ay may mga uri na pamilyar na sa amin. Ang column ng mga detalye ay may uri na TEXT. Maginhawang gamitin ang ganitong uri sa halip na ang uri ng VARCHAR kung maglalaman ang column ng mahahabang halaga: ang kabuuang haba ng mga value ng lahat ng column ng VARCHAR ay limitado sa 65,535 bytes para sa bawat talahanayan, at walang limitasyon sa kabuuang haba ng ang mga column ng TEXT. Ang kawalan ng uri ng TEXT ay ang kawalan ng kakayahang isama ang mga naturang column sa foreign key ng isang table, iyon ay, upang lumikha ng isang relasyon sa pagitan ng mga talahanayan batay sa mga column na ito.

Ang hanay ng presyo ay may uri na DECIMAL, na idinisenyo upang mag-imbak ng mga halaga ng pera at iba pang mga halaga kung saan mahalagang maiwasan ang mga error sa pag-round. Nagpahiwatig kami ng dalawang numero sa panaklong: ang una sa mga ito ay tumutukoy sa maximum na bilang ng mga digit sa halaga ng column, ang pangalawa - ang maximum na bilang ng mga digit pagkatapos ng decimal separator. Sa madaling salita, ang presyo ng isang produkto ay maaaring maglaman ng hanggang anim na digit sa integer na bahagi (6 = 8–2) at hanggang dalawang digit sa fractional na bahagi.

At sa wakas, ang huling halimbawa ay ang utos upang lumikha ng talahanayan ng Mga Order, na ipinapakita sa Listahan 2.4.

Listahan 2.4. Utos sa paggawa ng talahanayan ng mga order

GUMAWA NG MGA ORDER NG TABLE

(id SERIAL,

petsa DATE,

product_id BIGINT UNSIGNED NOT NULL,

qty INT UNSIGNED,

halagang DECIMAL(10,2),

customer_id BIGINT UNSIGNED,

PRIMARY KEY (id),

FOREIGN KEY (product_id) MGA SANGGUNIAN Mga Produkto (id)

SA PAGBUBURA NG PAGHIhigpit SA UPDATE CASCADE,

FOREIGN KEY (customer_id) REFERENCES Customers (id)

SA PAGBURA NG PAGHIHIGPIT SA UPDATE CASCADE)

ENGINE InnoDB CHARACTER SET utf8;


Ang isang espesyal na tampok ng talahanayan ng Mga Order ay ang pagkakaroon ng mga dayuhang key: ang column ng product_id ay naglalaman ng mga numero ng produkto mula sa talahanayan ng Mga Produkto, at ang column na customer_id ay naglalaman ng mga numero ng customer mula sa talahanayan ng Mga Customer (tingnan din ang Talahanayan 1.2 sa Kabanata 1). Dahil malalaking positive integer ang mga numero ng produkto at customer, itinalaga namin ang mga column ng product_id at customer_id upang i-type ang BIGINT UNSIGNED.

Susunod, upang matiyak na ang integridad ng mga relasyon ay awtomatikong pinananatili (napag-usapan namin ang tungkol sa integridad sa Kabanata 1), sinabi namin sa MySQL kung aling pangunahing susi ang tumutugma sa bawat dayuhang key. Kaya, ang FOREIGN KEY (customer_id) REFERENCES Customers (id) construct ay nangangahulugan na ang customer_id column ay maaari lamang maglaman ng mga value mula sa id column ng Customers table at null values, at ang iba pang value ay ipinagbabawal. Para sa column na product_id, nagtakda kami ng katulad na hadlang at itinalaga ang NOT NULL property sa column na ito upang maiwasan ang pagrehistro ng mga order na may hindi natukoy na produkto. Bukod pa rito, ipinahiwatig namin ang mga patakaran para sa pagpapanatili ng integridad para sa bawat isa sa mga koneksyon (tinalakay din namin ang mga ito sa Kabanata 1). Nangangahulugan ang panuntunang ON DELETE RESTRICT na hindi ka makakapagtanggal ng record ng customer kung may nakarehistrong order ang customer na iyon, at hindi ka makakapagtanggal ng record ng produkto kung inorder ng isang tao ang produktong iyon. Ang ON UPDATE CASCADE na panuntunan ay nangangahulugan na kapag ang isang customer number sa Customers table o isang item number sa Products table ay nagbago, ang mga kaukulang pagbabago ay gagawin sa Orders table.

Tandaan

Tandaan na huli naming ginawa ang talahanayan ng Mga Order dahil ang mga pangunahing key sa mga talahanayan ng Mga Customer at Produkto ay dapat gawin bago ang mga dayuhang key sa talahanayan ng Mga Order na tumutukoy sa kanila. Gayunpaman, posibleng gumawa ng mga talahanayan na walang mga dayuhang key sa anumang pagkakasunud-sunod, at pagkatapos ay magdagdag ng mga dayuhang key gamit ang ALTER TABLE command, na titingnan natin sa subsection na "Pagbabago ng istraktura ng talahanayan."

Sa aming mga halimbawa, tiningnan lang namin ang ilan sa mga parameter ng utos ng paglikha ng talahanayan. Ngayon ay ililista namin ang lahat ng mga pangunahing parameter na maaaring maging kapaki-pakinabang sa iyo kapag lumilikha ng mga talahanayan. Sa seksyong "Mga Uri ng Data sa MySQL" ay pag-uusapan natin ang tungkol sa mga uri ng hanay, sa seksyong "Mga Katangian ng Hanay" ay pag-uusapan natin ang tungkol sa pag-set up ng mga pangunahing hanay, at sa wakas sa seksyong "Mga Pangunahing Haligi at Index" ay pag-uusapan natin ang tungkol sa mga opsyonal na katangian ng talahanayan .

Mga uri ng data sa MySQL

Tulad ng alam mo na, kapag lumikha ka ng talahanayan, kailangan mong tumukoy ng uri ng data para sa bawat column. Nagbibigay ang MySQL ng maraming uri ng data upang mag-imbak ng mga numero, petsa/oras, at mga string ng character (mga teksto). Bilang karagdagan, may mga uri ng data para sa pag-iimbak ng mga spatial na bagay, na hindi tatalakayin sa aklat na ito.

Tingnan natin ang mga numeric data type.

BIT[(<Количествобитов>)].

Isang bit na numero na naglalaman ng isang tinukoy na bilang ng mga bit. Kung ang bilang ng mga bit ay hindi tinukoy, ang bilang ay binubuo ng isang bit.

Isang integer sa hanay ng alinman sa -128 hanggang 127, o (kung tinukoy ang UNSIGNED property) 0 hanggang 255.

BOOL o BOOLEAN.

Ang mga ito ay kasingkahulugan para sa TINYINT(1) na uri ng data (ang numero sa panaklong ay ang bilang ng mga digit na ipapakita, tingnan ang tala sa ibaba). Sa kasong ito, ang isang hindi zero na halaga ay itinuturing na totoo (TRUE), ang isang zero na halaga ay itinuturing na mali (FALSE).

Isang integer sa hanay ng alinman sa -32,768 hanggang 32,767, o (kung tinukoy ang UNSIGNED property) 0 hanggang 65,535.

Isang integer sa hanay ng alinman sa -8,388,608 hanggang 8,388,607, o (kung tinukoy ang UNSIGNED property) 0 hanggang 16,777,215.

INT o INTEGER.

Isang integer sa hanay ng alinman sa -2,147,483,648 hanggang 2,147,483,647, o (kung tinukoy ang UNSIGNED property) 0 hanggang 4,294,967,295.

Isang integer sa hanay ng alinman sa -9,223,372,036,854,775,808 hanggang 9,223,372,036,854,775,807, o (kung tinukoy ang UNSIGNED property) mula 0 hanggang 18,446,744,973 .

Kasingkahulugan ng BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE (isang malaking unsigned integer na tumatanggap ng awtomatikong incremented unique values; NULL values ​​​​ay hindi pinapayagan). Ginagamit upang awtomatikong makabuo ng mga natatanging halaga sa isang hanay ng pangunahing key. Makakakita ka ng paglalarawan ng UNSIGNED at AUTO_INCREMENT na mga katangian sa subsection na ito, at ang NOT NULL at NATATANGING mga katangian sa seksyong "Mga Column Properties".

Tandaan

Para sa lahat ng uri ng data ng integer, maliban sa BOOL (BOOLEAN) at SERIAL, maaari mong tukuyin sa mga panaklong ang bilang ng mga ipinapakitang digit, na ginagamit kasabay ng parameter na ZEROFILL: kung ang numero ay naglalaman ng mas kaunting mga digit, pagkatapos ay kapag ang output ay may palaman sa naiwan na may mga zero. Halimbawa, kung ang isang column ng talahanayan ay tinukoy bilang INT(5) ZEROFILL, kung gayon ang mga value na "1234567" at "12345" ay ipinapakita kung ano, at ang value na "123" ay ipinapakita bilang "00123". Para sa uri ng data ng BIT, ang laki ng numero, iyon ay, ang maximum na bilang ng mga bit na nakaimbak, ay ipinahiwatig sa mga panaklong.

Nasa ibaba ang isang listahan ng mga pinakakapaki-pakinabang at madalas na ginagamit na mga utos MySQL na may mga halimbawa.

Ang mysql sa simula ng linya ay nangangahulugan na ang command ay naisakatuparan pagkatapos mag-log in MySQL.

Ang # o $ na simbolo sa simula ng linya ay nangangahulugan na ang command ay naisakatuparan mula sa command line.

Upang suriin ang katayuan ng server MYSQL gawin:

Para sa LibrengBSD:

# katayuan ng mysql-server ng serbisyo

V CentOS/RHEL:

# serbisyo mysqld status

MySQL mula sa console kung ang server MySQL ay nasa parehong host:

Upang kumonekta sa server MySQL mula sa console kung ang server MySQL ay matatagpuan sa remote host db1.example.com:

$ mysql -u username -p -h db1.example.com

Paggawa gamit ang mga database at talahanayan - pagtingin, pagtanggal, pag-edit ng mga talaan. Console

Lumikha ng database sa MySQL server:

Lumikha ng database ang MySQL

Magpakita ng listahan ng lahat ng database sa server MySQL:

paggamit ng mysql;

Ipakita ang lahat ng mga talahanayan sa database:

Mysql ipakita ang mga talahanayan;

Tingnan ang format ng talahanayan sa database:

paglalarawan ng mysql;

Tanggalin ang database:

Mysql drop database ;

Tanggalin ang isang talahanayan mula sa database:

Mysql drop table ;

Ipakita ang lahat ng nilalaman ng talahanayan:

Mysql SELECT * FROM ;

Ipakita ang mga column at nilalaman ng column sa napiling talahanayan:

Mysql ipakita ang mga haligi mula sa ;

Ipakita ang mga hilera sa isang partikular na talahanayan na naglalaman ng " whatever ":

Mysql SELECT * FROM WHERE = "whatever";

Ipakita ang lahat ng mga tala sa isang partikular na talahanayan na naglalaman ng "Bob" at ang numero ng telepono na "3444444:

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

Ipakita ang lahat ng mga entry, HINDI naglalaman ng pangalang "Bob" at numero ng telepono na "3444444", pinagsunod-sunod ayon sa field ng phone_number:

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

Ipakita ang lahat ng mga entry na nagsisimula sa mga titik na "bob" at ang numero ng telepono "3444444" sa isang partikular na talahanayan:

Mysql SELECT * FROM WHERE pangalan tulad ng "Bob %" AT phone_number = "3444444";

Ipakita ang lahat ng mga entry na nagsisimula sa mga titik na "bob" at ang numero ng telepono na "3444444", nililimitahan ang mga entry 1 hanggang 5:

Mysql SELECT * FROM WHERE name like "Bob %" AND phone_number = "3444444" limit 1.5;

Paggamit ng mga regular na expression ("REGEXP BINARY") upang maghanap ng mga tala. Halimbawa, para sa isang case-insensitive na paghahanap, hanapin ang lahat ng mga talaan na nagsisimula sa titik A:

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

Ipakita ang lahat ng natatanging mga entry:

Mysql SELECT DISTINCT MULA SA ; mysql SELECT , MULA SA ORDER NG DESC;

Ipakita ang bilang ng mga hilera sa talahanayan:

Mysql SELECT COUNT(*) FROM ;

Mysql SELECT SUM(*) FROM ;

Pag-alis ng column:

Mysql baguhin ang talahanayan drop column ;

Pagdaragdag ng column sa database:

Mysql alter table magdagdag ng column varchar(20);

Pagbabago ng pangalan ng column:

Mysql alter table change varchar(50);

Gumawa ng column na may natatanging pangalan para maiwasan ang mga duplicate na pangalan:

Mysql alter table magdagdag ng unique();

Pag-resize ng column:

Mysql alter table baguhin ang VARCHAR(3);

Pag-alis ng column mula sa isang table:

Mysql baguhin ang talahanayan drop index;

Mysql LOAD DATA INFILE " /tmp/filename.csv " palitan INTO TABLE FIELDS WAKAS NG "," LINES WAKAS NG "n" ​​(field1,field2,field3);

Mga user ng MySQL server, mga password - pagdaragdag, pagpapalit ng mga user at password. Console

Paglikha ng bagong user - kumokonekta sa server MySQL bilang ugat, lumipat sa database, magdagdag ng user, mag-update ng mga pribilehiyo:

# mysql -u root -p mysql gumamit ng mysql; mysql INSERT INTO user (Host,User,Password) VALUES("%"," username ", PASSWORD(" password ")); mysql flush privileges;

Pagbabago ng password ng user mula sa console sa remote host db1.example.org:

# mysqladmin -u username -h db1.example.org -p password " new-password "

Pagbabago ng password ng user mula sa console MySQL- kumonekta bilang ugat, i-update ang password, i-update ang mga pribilehiyo:

# mysql -u root -p mysql SET PASSWORD PARA SA " user "@" hostname " = PASSWORD(" password here "); mysql flush privileges;

Pagbawi/pagpapalit ng password ng root server MySQL- huminto MySQL, magsimula nang walang mga talahanayan ng pribilehiyo, kumonekta bilang ugat, magtakda ng bagong password, lumabas at mag-restart MySQL.

# /etc/init.d/mysql stop # mysqld_safe -skip-grant-tables & # mysql -u root mysql gumamit ng mysql; mysql update user set password=PASSWORD(" newrootpassword ") where User="root"; mysql ; mga pribilehiyo ng flush; mysql quit # /etc/init.d/mysql stop # /etc/init.d/mysql start

Magtakda ng root password kung mayroong root password.

# mysqladmin -u root password bagong password

I-update ang root password:

# mysqladmin -u root -p oldpassword newpassword

Ang pagtatakda ng karapatang kumonekta sa server mula sa host localhost gamit ang password na "passwd" - pagkonekta sa subroot, paglipat sa database, pagtatakda ng mga pribilehiyo, pag-update ng mga pribilehiyo:

# mysql -u root -p mysql gumamit ng mysql; mysql grant ang paggamit sa *.* kay bob @localhost na kinilala ng " passwd "; mysql flush privileges;

Pagtatakda ng mga pribilehiyo ng user na gamitin ang database - pagkonekta bilang ugat, paglipat sa database, pagtatakda ng mga pribilehiyo, pag-update ng mga pribilehiyo:

# mysql -u root -p mysql gumamit ng 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"); mysql flush privileges;

Ibigay ng Mysql ang lahat ng mga pribilehiyo sa databasename .* sa username @localhost; mysql flush privileges;

Pag-update ng impormasyon sa database:

Mysql UPDATE SET Select_priv = "Y",Insert_priv = "Y",Update_priv = "Y" where = user";

Pagtanggal ng row sa isang table:

Mysql DELETE from where = "whatever";

Pag-update ng mga pribilehiyo sa database:

Mga pribilehiyo ng flush ng Mysql;

Mga backup - paglikha, pagpapanumbalik ng mga database. Console

Gumawa ng backup na kopya (dump) ng lahat ng database sa alldatabases.sql file:

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

I-back up ang isang database sa databasename.sql file:

# mysql dump -u username -p password -databases databasename ; /tmp/databasename.sql

I-back up ang isang table sa file databasename.tablename.sql:

# mysql dump -c -u username -p password databasename tablename ; /tmp/databasename.tablename.sql

Pagpapanumbalik ng isang database (o talahanayan) mula sa isang backup:

# mysql -u username -p password databasename< /tmp/databasename.sql

Paglikha ng mga talahanayan ng database. Console

ang mga pangalan ng hanay ay ipinahiwatig sa maliliit na titik;
CAPITAL letters - mga uri at katangian ng mga column;
sa (mga bracket) - ang halaga ng uri ng hanay.

Lumikha ng talahanayan, halimbawa 1:

mysql CREATE TABLE (firstname VARCHAR(20), middleinitial VARCHAR(3), lastname VARCHAR(35), suffix VARCHAR(3), officeid VARCHAR(10), userid VARCHAR(15), username VARCHAR(8), email VARCHAR(35 ), telepono VARCHAR(25), mga pangkat VARCHAR(15), datestamp DATE, timestamp TIME, pgpemail VARCHAR(255));

Lumikha ng talahanayan, halimbawa 2:

Mysql create table (personid INT(50) NOT NULL AUTO_INTCREMENT PRIMARY KEY, firstname VARCHAR(35), middlename VARCHAR(50), lastname VARCHAR(50) default na "bato");

Mula sa may-akda: babae, hindi umaandar ang sasakyan mo? Siguro maaari nating subukan ito "mula sa pusher"? Tutulong ako! Hindi mo alam kung paano ito? Sinimulan mo lang ba ang DBMS server sa pamamagitan ng cmd? Nangangahulugan ito na alam mo kung paano simulan ang MySQL sa pamamagitan ng command line, ngunit hindi mo alam kung paano magsimula ng kotse. Mademoiselle, isa kang "kakaibang" blonde!

Mga kakaiba sa paglalarawan ng MySQL

Kapag inihahanda ang bawat artikulo, kailangan kong "masusing" suriin ang Internet sa paghahanap ng mga sangguniang materyales sa isa o isa pang disiplina sa "pagbuo ng site". Para sa karamihan, mayroong maraming mga detalyadong gabay at tutorial na inilathala sa Internet, ngunit hindi para sa MySQL.

Siyempre, may mga karapat-dapat na pang-edukasyon, ngunit ang pangunahing bahagi sa DBMS ay nagbibigay lamang ng mga halimbawa ng pagsusulat ng mga utos, at kahit na hindi ipinapahiwatig ang syntax. Sa ganoong sitwasyon, halos imposible para sa anumang "dummies" na maunawaan, halimbawa, kung paano kumonekta sa MySQL sa pamamagitan ng command line.

Upang makahanap ng sagot para sa isang baguhan, kakailanganin mong maghanap sa pamamagitan ng isang dosenang mga pampakay na forum, kung saan ang mga propesyonal na developer (nagpapanggap bilang halos "akademiko") ay papayag na magpaliwanag ng kahit isang bagay na normal sa isang baguhan.

Ito ay nagkakahalaga ng pag-unawa na ang isang tunay na administrator ay dapat malaman ang lahat ng mga paraan upang ilunsad at magtrabaho kasama ang isang database server. Malinaw na ang mga shell ng software ay ang pinaka-maginhawang paraan, ngunit maaaring hindi ito palaging nasa kamay. Samakatuwid, ang pag-alam kung paano paganahin ang MySQL sa pamamagitan ng command line ay higit sa isang beses na magse-save ng parehong data ng site at ang iyong reputasyon bilang isang espesyalista (kung ikaw ay nagpaplano na makisali sa web development nang propesyonal).

Tingnan natin ang paksang ito nang mas detalyado. At mangyaring huwag gumawa ng mga mukha kung ang anumang sinabi sa materyal na ito ay tila kasing simple sa iyo ng pagsisimula ng isang kotse "mula sa isang pushrod".

Ilunsad ang cmd

Upang ilunsad ang MySQL mula sa command line, i-activate muna ang utility mismo (cmd), na kasama sa karaniwang set ng Windows. Magagawa mo ito sa maraming paraan:

Ang keyboard shortcut na Win + R, at pagkatapos ay sa lalabas na dialog na "Run", ipasok ang cmd

Sa pamamagitan ng Start panel.

Bilang karagdagan, ang MySQL ay maaaring may isang katutubong shell. Halimbawa, kung nag-install ka ng database server sa isang lokal na makina bilang isang standalone na "application" na hindi kasama sa package na "gentlemen's".

Ang katutubong MySQL command line ay inilunsad tulad ng isang regular na cmd. Ang mga pagkakaiba sa pagpapatakbo ng parehong mga utility ay lilitaw sa ibang pagkakataon. Pag-uusapan natin ito sa susunod na seksyon.

Paggawa gamit ang command line

Una, harapin natin ang utility na binuo sa operating system. Tingnan natin kung paano ilunsad ang MySQL mula sa Windows command line. Upang gawin ito kailangan mo:

Path sa folder sa PC file system kung saan mo na-install ang database server.

User account – login at password.

Kung nagtatrabaho ka sa Denver, kung gayon ang executable file ay matatagpuan sa virtual disk na nilikha pagkatapos simulan ang lokal na server, kasama ang landas na ito: Z:\usr\local\mysql-5.5\bin

Tulad ng nasabi ko na, ang MySQL command line sa Denwer ay inilunsad sa pamamagitan ng cmd OC. Iyon ay, inilunsad muna namin ito, at pagkatapos ay tukuyin ang landas sa DBMS executable file. Ang password at pag-login para sa pag-access ay maaaring tukuyin muna o mas bago pagkatapos i-activate ang MySQL utility. Para sa akin, mas maginhawang irehistro ang lahat nang sabay-sabay: Z:\usr\local\mysql-5.5\bin\mysql.exe -u root

Nag-log in kami sa DBMS server na may mga karapatan ng administrator. Wala akong nakatakdang password para sa root, kaya hindi tinukoy ang halaga nito. Pagkatapos naming ilunsad ang MySQL mula sa command line, lalabas sa ibaba ang impormasyon ng tulong tungkol sa bersyon ng utility, server at connection id.

Ngayon suriin natin ang kawastuhan ng pamamaraan at ang "lakas" ng ating mga karapatan. Halimbawa, ipakita natin ang isang listahan ng lahat ng mga talahanayan na kasalukuyang ginagamit sa server:

MAGPAKITA NG OPEN TABLES;

MAGPAKITA NG OPEN TABLES ;

Ang MySQL sa command line ng Windows ay nagbigay lamang sa amin ng mga talahanayan na bahagi ng database ng system. Ito ay dahil ang lahat ng data na nakaimbak dito ay ginagamit sa tumatakbong halimbawa ng DBMS. Sa ganitong paraan, alam namin na tumatakbo ang server at naka-log in kami dito nang may mga karapatan ng administrator, gaya ng pinlano.

Ang pamamaraan para sa pagtatrabaho sa shell na naka-install kasama ang database management system ay bahagyang naiiba. Upang "maranasan" ang lahat ng ito para sa ating sarili, buhayin natin ang MySQL sa pamamagitan ng command line na ito.

Pagkatapos ilunsad ito, lilitaw ang isang window kung saan dapat mong agad na magpasok ng isang password. Kung hindi, ang buong proseso ng pakikipag-ugnayan sa utility ay pareho.

Paggawa sa iba pang mga application

Ang komposisyon ng isang karaniwang hanay ng mga tool ng DBMS ay hindi limitado sa isang server na maipapatupad. Ang kanilang assortment ay maaaring matingnan sa pamamagitan ng pagtingin sa parehong folder kung saan matatagpuan ang database server. Halimbawa, patakbuhin natin ang MySQL dump utility sa pamamagitan ng command line.

Una, pumunta sa virtual disk, pagkatapos ay gamitin ang cd command sa folder kung saan naka-imbak ang utility. Hayaan akong ipaalala sa iyo na ito ay inilaan para sa paglikha ng mga backup na kopya ng mga database.

Sa susunod na hakbang, bago mag-log in sa MySQL sa pamamagitan ng command line, kakailanganin naming tumukoy ng account at password para dito. Halimbawa ng paggamit ng mysqldump command:

mysqldump -uroot world>C:\Users\home\Desktop\dump\copy.sql

Para gumana nang tama ang utos, dapat gawin ang tinukoy na direktoryo sa oras ng pagpapatupad. Kung hindi, ang utility ay magbabalik ng isang mensahe na ang naturang landas ay hindi umiiral.

Dapat ding tandaan na ang tinukoy na gumagamit ng MySQL sa command line ay dapat may mga karapatan na baguhin ang database o isang administrator account.

Ang ibang mga utility na kasama sa standard set ay inilunsad sa katulad na paraan. Sa tulong nila, magagawa mo ang lahat ng pangunahing pagpapatakbo ng pangangasiwa ng DBMS: pamahalaan ang mga tungkulin, lumikha ng mga backup, i-edit ang mga nilalaman ng mga imbakan. At i-install din ang serbisyo ng MySQL mula sa command line. Sa pangkalahatan, ang lahat nang wala ang database server ay hindi magsisimula "mula sa pusher".

Para sa Win 32, piliin ang pamamahagi: Windows (x86, 32-bit), Zip-Archive.

Para sa Win 64: Windows (x86, 64-bit), Zip-Archive.

Pagkatapos mag-click sa pindutang I-download, makakakita ka ng isang form sa pagpaparehistro, maaari mo itong laktawan sa pamamagitan ng pag-click sa link sa ibaba - Hindi, salamat, dalhin mo lang ako sa mga pag-download.

2. Lumikha ng folder ng pag-install. Halimbawa . At i-unpack ang mga nilalaman ng archive sa ito upang ang mga folder bin, data, docs at iba pa ay nasa ugat ng folder ng pag-install.

3. Lumipat tayo sa paggawa ng configuration file (my.ini). Kinukuha namin ang isa sa mga karaniwang file bilang batayan:

  • my-small.ini - angkop para sa mga gumagamit ng MySQL paminsan-minsan at hindi nais na ang server ay kumuha ng maraming mapagkukunan.
  • Ang my-medium.ini ay isa ring mababang-resource na configuration, ngunit ito ay angkop para sa mga gumagamit ng MySQL sa isang regular na batayan (isang magandang pagpipilian para sa isang home web server).
  • my-large.ini at my-huge.ini - para sa mga system na ginamit bilang dedikadong MySQL server. Gayunpaman, ang my-large.ini ay maaaring gamitin para sa isang home server kung kailangan mo ng karagdagang pagganap ng MySQL (512 MB ng RAM ay hindi gaanong sa mga araw na ito).
  • my-innodb-heavy-4G - para sa mga nakalaang server na may hindi bababa sa 4 GB ng RAM at gumagamit lamang ng mga talahanayan ng InnoDB.

Sa halimbawang ito, pinili ko ang my-medium.ini bilang batayan. Palitan ang pangalan nito sa my.ini at ilagay ito sa ugat ng folder ng pag-install ( C:\Program Files\MySQL\MySQL Server 5.5).

Buksan para sa pag-edit (sa regular na Notepad) at kaagad pagkatapos ng linya magdagdag ng dalawang parameter:

Basedir=C:/Program Files/MySQL/MySQL Server 5.5 datadir=C:/Program Files/MySQL/MySQL Server 5.5/data

Tandaan na ang mga path ay gumagamit ng forward slashes (/) sa halip na backslashes (\).

basedir ay ang landas sa folder ng pag-install.

datadir - landas sa folder ng data (kung saan nakaimbak ang lahat ng database). Minsan makatuwirang maglagay ng data sa isang hiwalay na disk upang mapabuti ang pagganap o matiyak ang pagiging maaasahan.

Kung sakali, narito ang isang fragment ng configuration file pagkatapos gawin ang mga pagbabago:

# Ang MySQL server 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_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M

4. Ang susunod na hakbang ay idagdag ang landas C:\Program Files\MySQL\MySQL Server 5.5\bin sa PATH environment variable upang gawing mas madaling ilunsad ang MySQL mula sa command line. Upang gawin ito, buksan ang System Properties -> Mga karagdagang setting ng system -> sa tab na Advanced, sa pinakaibaba, ang button na “Mga Variable ng Kapaligiran...”. Sa window na bubukas, mag-scroll sa mga variable ng system hanggang sa makita namin ang Path. Piliin ang linyang ito at i-click ang “Baguhin...”. Sa dulo ng linya idinaragdag namin ang aming landas, pinapanatili ang umiiral na mga parameter:

Tandaan na ang mga path ay pinaghihiwalay ng mga semicolon. Tiyaking mayroong semicolon sa simula at dulo ng iyong landas.

5. Bago magsagawa ng test run, buksan ang papasok na TCP port 3306 sa Windows Firewall:

Kung mayroon kang karagdagang firewall na naka-install sa iyong system, dapat mo ring buksan ang TCP port 3306 para sa mga papasok na koneksyon.

6. Ngayon ay nagsasagawa kami ng pagsubok. Sa command line na inilunsad bilang administrator (ito ay kinakailangan kung ang UAC ay pinagana sa Seven o Vista), patakbuhin ang:

Mysqld --console

Ilang linya ang ipapakita sa screen. Kung matagumpay ang paglunsad, magiging ganito ang hitsura ng huling linya:

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

Iwanang bukas ang window na ito, at magbukas ng isa pang command line window, kung saan kami pumapasok:

Mysql -u ugat

Kung matagumpay ang koneksyon, makakakita ka ng command prompt: mysql>

Tingnan natin kung anong mga database ang mayroon tayo:

Ipakita ang mga database;

Ang semicolon sa dulo ng SQL query ay MANDATORY!

Sagot ng pangkat:

Ngayon kami ay sa wakas ay kumbinsido na ang server ay gumagana.

7. Lumipat tayo sa susunod na hakbang - kailangan mong itakda ang password ng administrator ng MySQL (root user). Walang password na nakatakda bilang default, at kailangan itong ayusin. Sa parehong MySQL window, ipasok ang mga sumusunod na command:

Gamitin ang mysql UPDATE user SET password = PASSWORD("your_password") WHERE user = "root";

Tingnan natin ang resulta:

PUMILI ng user, host, password MULA sa user;

Tulad ng nakikita mo sa screenshot, napuno ang column ng password, na nangangahulugang naitakda na ang password.

Bago lumabas, patakbuhin ang command:

FLUSH PRIVILEGES;

Ngayon, kapag kumokonekta, dapat kang magpasok ng isang password. Upang gawin ito, gamitin ang -p switch:

Mysql -u ugat -p

Upang i-shutdown ang MySQL run:

Mysqladmin -u root -p shutdown

8. Ang huling hakbang ay ang paglunsad ng MySQL bilang isang serbisyo ng Windows system.

Tiyaking walang aktibong proseso ng MySQL sa system.

Sa command line na tumatakbo bilang administrator, patakbuhin ang:

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

Ang path sa mysqld ay dapat na tinukoy nang buo (kahit na ito ay nakalista sa PATH)!

Upang simulan ang serbisyo, buksan ang "Computer Management" at manu-manong simulan ang serbisyo ng MySQL:

O mas madali sa pamamagitan ng command line:

Net simulan ang mysql

Upang alisin ang isang serbisyo, itigil muna ito:

Net stop mysql

at isagawa:

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

Mula sa may-akda: Naligaw ka na naman ba at hindi mo alam kung paano mag-log in sa MySQL? Hindi ikaw ang una! Ipunin ang lahat ng nawawala, at ngayon ay dumiretso tayo upang bisitahin siya. Kanino “sa kanya”? Sa pinakasikat na DBMS sa World Wide Web!

Saan matatagpuan ang lokasyon ng MySQL sa Denver?

Hindi ito nangangahulugan ng kabisera ng estado ng Colorado sa USA, ngunit isang software package para sa paglikha at pagsubok ng mga application sa PHP. Kasama sa kit para sa "mga ginoo" ang isang lokal na Apache server, isang MySQL server at isang phpMyAdmin shell. Ito ay sa tulong ng software package na ito na ang mga "newbies" ay kadalasang natututo sa lahat ng mga intricacies ng pagtatrabaho sa database management system na ito.

Bago mag-log in sa MySQL sa pamamagitan ng isang browser, kailangan mong magsimula ng isang lokal na server, pagkatapos ay i-type ang localhost sa address bar, at sa lalabas na window, "Hurray, ito ay gumagana!" Sa seksyong utilities, piliin ang phpMyAdmin.

Pagkatapos nito ay makikita mo ang iyong sarili doon (sa phpMyAdmin).

Pumunta kami sa mga database sa pamamagitan ng "labyrinth"

Ikaw at ako ay pupunta sa "siksik" na kagubatan at susubukan na "malampasan" ito sa server ng database. Huwag mong isipin na may tinatago tayo, ngayon lang tayo kikilos na parang... Go!

Bago mag-log in sa MySQL sa pamamagitan ng command line, dapat mong malaman kung saan matatagpuan ang pangunahing direktoryo ng database server. Kung gagamitin mo ang DBMS sa "pure" nitong anyo na walang "mga impurities" (sa labas ng set ng "gentleman's"), ang root folder ng server ay matatagpuan dito: C:\Program Files\MySQL\MySQL Server 5.5\bin\mysql.exe

Kung gumagamit ka ng Denver, ang file na iyong hinahanap ay matatagpuan sa landas na ito: Z:\usr\local\mysql-5.5\bin\mysql.exe,

kung saan ang Z ay ang virtual disk na nilikha pagkatapos simulan ang lokal na web server. Maaaring mayroon ka nito sa ilalim ng ibang pangalan (mas tiyak, isang titik).

Interesado kami sa mysql.exe file. Patakbuhin natin ito sa pamamagitan ng pagtukoy sa pangalan ng database server, password at user kung saan tayo magla-log in sa MySQL.

Paano paganahin ang MySQL sa pamamagitan ng command line: pumunta sa "Start", piliin ang "Command Prompt" mula sa karaniwang mga programa. Inilunsad namin ang utility, at mula ngayon ay ilalarawan namin ang buong pamamaraan ng "paglalakad" sa siksik na kagubatan nang hakbang-hakbang, upang ang buong grupo ng mga "naliligaw" na tao ay hindi na muling mawala. Magsimula tayo:

Sa itim na CMD (command line) na window, ipasok ang path kung saan naka-imbak ang MySQL executable file, at sa tabi nito ay ipahiwatig ang DBMS user name at password. Dahil mayroon kaming lokal na server, ipinasok namin ang root ng username nang walang password pagkatapos ng identifier u.

Ito ay talagang hindi tama at ang bawat gumagamit ng MySQL server ay dapat na may set ng password. Isasaalang-alang namin ang lahat ng isyu sa seguridad ng DBMS nang mas detalyado sa isa sa aming mga susunod na publikasyon.

Narito ang buong piraso ng "code": Z:\usr\local\mysql-5.5\bin\mysql.exe -u root

Kung naging maayos ang lahat, ang impormasyon tungkol sa bersyon ng tumatakbong serbisyo, ang taon ng paglabas at iba pang "hindi kailangan" na impormasyon para sa amin ay dapat lumitaw sa ibaba sa window ng command line.

Ngayon, upang suriin ang kawastuhan ng koneksyon, maglalagay kami ng isang query pagkatapos ng mysql> operator na magpapakita ng lahat ng mga database na nakaimbak sa server. Request code:

ipakita ang mga database;

Huwag kalimutang maglagay ng semicolon sa dulo ng kahilingan, kung hindi ay magpapakita ang system ng mensahe ng error. Matapos ipasok ang query at pindutin ang "Enter" key, nakatanggap kami ng isang listahan ng lahat ng mga database na nakaimbak sa DBMS server:

Ngunit ito ay hindi sapat para sa amin. Maghukay tayo ng mas malalim sa istraktura. Tingnan natin kung paano mag-log in sa isang database ng MySQL at makakuha ng isang listahan ng lahat ng mga talahanayan nito. Paalalahanan ko kayo na awtorisado na kami ngayon sa server, kaya kailangan na lang naming magpasok ng isa pang kahilingan:

ipakita ang mga talahanayan mula sa db1;

ipakita ang mga talahanayan mula sa db1;

db1 ang pangalan ng database na kailangan namin.

Sa screenshot nakita namin na ang hiniling na database ay naglalaman lamang ng isang talahanayan.

Maghukay tayo ng mas malalim!

Tulad ng sinasabi nila, ang "gana" ay dumarating pagkatapos matanggap ang mga resulta ng pagpapatupad ng code. Samakatuwid, susubukan naming maghukay ng mas malalim para makuha ang data na nakaimbak sa talahanayan. Bago mag-log in muli sa MySQL, narito ang isang halimbawa ng isang query sa SQL kung saan maaari nating maisakatuparan ang ating mga plano:

PUMILI * MULA sa hayop;

PUMILI * MULA sa hayop ;

Ipinasok namin ang kahilingan, ilunsad ito para sa pagpapatupad at... Sa ilang kadahilanan, binigyan kami ng server ng error.

At lahat dahil nakalimutan naming sabihin sa MySQL kung saang database kami interesado. Kaya't "nanunumpa" ang server na wala sa mga database ang inilalaan. Muli nitong pinatutunayan na ang pagtatrabaho sa isang DBMS sa pamamagitan ng command line ay ibang-iba sa pakikipag-ugnayan dito sa pamamagitan ng isang software shell.

Sa phpMySQL, matagumpay na maisasakatuparan ang query na ito at ibabalik ng server ang isang seleksyon ng lahat ng mga row na nasa hiniling na talahanayan.

Itama natin ang ating karaniwang pagkukulang (palaging mahirap aminin ang kasalanan ng isang tao), at bago mag-log in sa MySQL sa pamamagitan ng console muli, maghahanda kami ng isang "espesipiko" na query kung saan ituturo namin ang system sa nais na database:

GAMITIN ang db1 ;

Matapos ipasok ang linyang ito at isagawa ito, magpapakita ang server ng mensahe na nagpapatunay na ang nais na database ay inilalaan.

At ngayon, magpasok tayo at magpatakbo ng isang query upang makuha muli ang lahat ng data mula sa talahanayan ng hayop. "Magkaroon ng data!" - sabi ng administrator, at inilunsad ang SELECT. Nakarating kami sa ibaba ng db1 at nakuha ang mga nilalaman ng talahanayan ng hayop. Ito ay hindi para sa wala na bago pumasok sa MySQL database, nagsagawa kami ng isang buong "ritwal" at isinulat ang tamang "spell" sa SQL.

Ano pa ang maaari mong hukayin?

Naghukay kami ng malalim hanggang sa pinakailalim ng MySQL. Ngayon maghukay tayo ng kaunti sa gilid. Anong iba pang impormasyon ang maaaring makuha sa pamamagitan ng command line sa pamamagitan ng pagtatanong sa MySQL? Gusto mo bang malaman ang istraktura ng talahanayan, mga uri ng data ng lahat ng mga column, pangunahing key? Pakiusap! Patakbuhin ang query na ito:

ilarawan ang hayop;

ilarawan ang hayop;

Minsan, para malaman kung paano paganahin ang MySQL server, kailangan mong kumuha ng listahan ng lahat ng mga rehistradong user ng DBMS. Ang sumusunod na query ay ginagamit para dito.