Ръчно инсталиране на MySQL на Windows. Основи на администрирането на MySQL Използване на командния ред Спиране на mysql сървъра от командния ред




За Win 32 изберете дистрибуцията: Windows (x86, 32-bit), Zip-Архив.

За Win 64: Windows (x86, 64-bit), Zip-Архив.

След като щракнете върху бутона Изтегляне, ще видите регистрационен формуляр, можете да го пропуснете, като щракнете върху връзката по-долу - Не, благодаря, просто ме отведете до изтеглянията.

2. Създайте инсталационна папка. Например . И разопаковайте съдържанието на архива в него, така че папките bin, данни, документи и другибяха в корена на инсталационната папка.

3. Нека да преминем към създаването на конфигурационен файл (my.ini). За основа вземаме един от стандартните файлове:

  • my-small.ini – подходящ за тези, които използват MySQL от време на време и не искат сървърът да заема много ресурси.
  • my-medium.ini също е конфигурация с малко ресурси, но е подходяща за тези, които използват MySQL редовно (добър избор за домашен уеб сървър).
  • my-large.ini и my-huge.ini – за системи, използвани като специален MySQL сървър. Въпреки това, my-large.ini може да се използва за домашен сървър, ако имате нужда от допълнителна производителност на MySQL (512 MB RAM не е толкова много в наши дни).
  • my-innodb-heavy-4G – за специализирани сървъри с поне 4 GB RAM и използващи само InnoDB таблици.

В този пример избрах my-medium.ini като основа. Преименувайте го на my.ini и го поставете в корена на инсталационната папка ( C:\Program Files\MySQL\MySQL Server 5.5).

Отворете за редактиране (в обикновен Notepad) и веднага след реда добавете два параметъра:

Basedir=C:/Програмни файлове/MySQL/MySQL Server 5.5 datadir=C:/Програмни файлове/MySQL/MySQL Server 5.5/данни

Обърнете внимание, че пътищата използват наклонени черти (/), а не обратни наклонени черти (\).

basedir е пътят до инсталационната папка.

datadir – път до папката с данни (където се съхраняват всички бази данни). Понякога има смисъл да поставите данни на отделен диск, за да подобрите производителността или да осигурите надеждност.

За всеки случай, ето фрагмент от конфигурационния файл след извършване на промените:

# MySQL сървърът 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 InnoDB_sort_buffer_size = 8M

4. Следващата стъпка е да добавите пътя C:\Program Files\MySQL\MySQL Server 5.5\binкъм променливата на средата PATH, за да улесните стартирането на MySQL от командния ред. За да направите това, отворете Системни свойства -> Допълнителни системни настройки -> в раздела Разширени, най-долу, бутона „Променливи на средата...“. В прозореца, който се отваря, превъртете през системните променливи, докато намерим Path. Изберете този ред и щракнете върху „Промяна...“. В края на реда добавяме нашия път, запазвайки съществуващите параметри:

Имайте предвид, че пътищата са разделени с точка и запетая. Уверете се, че има точка и запетая в началото и в края на вашия път.

5. Преди да извършите тестово изпълнение, отворете входящия TCP порт 3306 в защитната стена на Windows:


Ако имате инсталирана допълнителна защитна стена на вашата система, трябва също да отворите TCP порт 3306 за входящи връзки.

6. Сега извършваме тестово пускане. В командния ред, стартиран като администратор (това е необходимо, ако UAC е активиран на Seven или Vista), изпълнете:

Mysqld --конзола

На екрана ще се покажат няколко реда. Ако стартирането е успешно, последният ред ще изглежда така:

Версия: "5.5.9-log" сокет: "" порт: 3306 MySQL Community Server (GPL)

Оставете този прозорец отворен и отворете друг прозорец на командния ред, в който въвеждаме:

Mysql -u root

Ако връзката е успешна, ще видите команден ред: mysql>

Нека да видим какви бази данни имаме:

Показване на бази данни;

Точката и запетая в края на SQL заявката е ЗАДЪЛЖИТЕЛНА!

Отговор на екипа:


Сега най-накрая сме убедени, че сървърът работи.

7. Нека да преминем към следващата стъпка - трябва да зададете MySQL администраторска парола (root потребител). Няма зададена парола по подразбиране и това трябва да бъде коригирано. В същия прозорец на MySQL въведете следните команди:

Използвайте mysql UPDATE потребител SET парола = ПАРОЛА("вашата_парола") WHERE потребител = "root";

Да проверим резултата:

ИЗБЕРЕТЕ потребител, хост, парола ОТ потребител;

Както можете да видите на екранната снимка, колоната за парола е попълнена, което означава, че паролата е зададена.

Преди да излезете, изпълнете командата:

ПРИВИЛЕГИИ ЗА ПРОМИВАНЕ;

Сега, когато се свързвате, трябва да въведете парола. За да направите това, използвайте ключа -p:

Mysql -u root -p

За да изключите стартирането на MySQL:

Mysqladmin -u root -p изключване

8. Последната стъпка е да стартирате MySQL като системна услуга на Windows.

Уверете се, че няма активни MySQL процеси в системата.

В командния ред, работещ като администратор, изпълнете:

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

Пътят до mysqld трябва да бъде указан изцяло (дори ако е посочен в PATH)!

За да стартирате услугата, отворете „Управление на компютъра“ и стартирайте ръчно услугата MySQL:


Или по-лесно чрез командния ред:

Нетно стартиране на mysql

За да премахнете услуга, първо я спрете:

Нетно спиране на mysql

и изпълни:

"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld" --премахване

Приятелите ми често ми задават определени въпроси относно администрацията и си помислих, защо вместо да обяснявам едно и също нещо по 100 пъти, да не пиша такива статии и бележки в сайта? В допълнение, това е отлична възможност, ако е необходимо, сами да използвате такава бележка, защото сами знаете, че понякога не е възможно да запазите всичко в главата си и по един или друг начин понякога трябва да се обърнете към справочник, така че нека една от секциите на този сайт стане такава книга. Днес ще говорим за това как да работим с MySQL DBMS от командния ред, да, някой ще каже - „Кой? В края на краищата има phpMyAdmin“, отговарям – защо да хабим ценни сървърни ресурси за инсталиране на всякакви глупости като WebMin, phpMyAdmin и т.н., ако същото може лесно да се направи с надеждни, доказани инструменти. Настройването от терминал чрез SSH тунел е нашият избор!

Е, да започваме. Ние се свързваме със сървъра чрез SSH, например чрез добре познатия PuTTY (A Free Telnet/SSH Client). Сега да преминем към описанието на командите.

Влезте в MySQL сървъра с помощта на програмата mysql:

mysql -u root -h localhost -p

Опцията -u указва потребителя, към който да влезете. Опцията -h указва хоста. Това обикновено е localhost, ако настройвате неотдалечен сървър. И накрая, -p казва на клиентската програма mysql, че ще бъде въведена парола за достъп до базата данни. Обърнете внимание на подканата mysql>. Това е мястото, където ще въведете всичките си команди. Сега, когато сме в средата на mysql като root потребител, можем да започнем да настройваме базата данни.

Влязохме и подканата за mysql се появи на екрана. Първо, нека да разгледаме списъка на съществуващите бази данни. За да направите това, въведете командата SHOW DATABASES.

От отговора става ясно, че командата е изпълнена без никакви грешки. В този случай един ред е променен. Това се отнася до основната база данни на mysql, която съдържа списък на всички бази данни. Но не е нужно да се притеснявате твърде много за дребни детайли. Последното число показва времето за изпълнение на заявката. Можем да проверим дали базата данни е създадена, като изпълним отново командата SHOW DATABASES.

За да започнем да създаваме таблици в новата тестова база данни, ще трябва да я зададем като текуща. За да направите това, използвайте командата USE. Параметърът на тази команда указва името на базата данни, която трябва да стане текуща. Можете също да инсталирате текущата база данни в командния ред, като посочите нейното име след параметъра -D. Нека да преминем към тестовата база данни.
База данни за превключване:

USE тест;

Привилегии в MySQL

Предоставяне на привилегии от екип ГРАНТ.
Привилегиите определят способността на потребителя да осъществява достъп до бази данни, таблици... почти всичко. В момента само MySQL root суперпотребител има достъп до тестовата база данни, според тези разрешения. Нека създадем друг потребител, например admin, който ще има достъп до тестовата база данни и ще работи с информация от нея. Но преди да започнем, нека да разгледаме донякъде опростения формат на командата GRANT.

Забележка: Командата GRANT се счита за начин за създаване на потребител. По-късните версии на MySQL обаче също съдържат функцията CREATE_USER, въпреки че все още се предпочита GRANT.
Сега се нуждаем от привилегии, които могат да бъдат присвоени. Използвайки всичко по-горе, можете да зададете следните привилегии:

ЗабележкаЗабележка: Ако използвате MySQL за комуникация с уеб приложение, привилегиите CREATE, SELECT, INSERT, обяснени тук, както и привилегиите DELETE и UPDATE (описани в ръководството на MySQL, раздел GRANT и REVOKE Syntax) са единствените, които вероятно ще се изисква. Много хора правят грешката да раздават всички привилегии, когато това не е наистина необходимо. Консултирайте се с разработчиците на приложения, за да видите дали такива разрешения наистина ще причинят оперативни проблеми.

Създаване на администраторски потребител:

И така, потребителите са създадени; Сега нека ги тестваме. Първо, нека излезем от mysql, като напишем quit на подканата:

Опциите са обяснени в раздела за команда GRANT. Сега ще откажем на потребителя всякакъв вид достъп. Да кажем, че установим, че администраторският акаунт причинява проблеми със сигурността. Решаваме да отменим всички права. Влизаме като root и правим необходимото.
Отмяна на разрешенията за администраторския потребител:

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

Забележка: В този случай потребителският достъп е лесен, така че отнемането на правата за една база данни не е проблем. Но като цяло, вероятно ще искате да използвате *.* вместо test.*, за да отмените достъпа на потребителя до всички други бази данни едновременно.

Сега нека да разгледаме как да изтриете напълно акаунт с помощта на командата DELETE и да разгледаме потребителската таблица на MySQL.

Изтриване на акаунти с команда ИЗТРИЙ.
Потребителската таблица на MySQL е списък с потребители и тяхната информация. Уверете се, че сте влезли като root. Използвайте основната база данни MySQL.

Използване на основната база данни mysql:

Потребителската таблица е това, от което се нуждаете. Има 30 различни полета и е труден за четене. За да улесним четенето, използваме третата форма на командата SELECT. Полетата, които търсите са Хост и Потребител.
Намиране на администраторския потребител в таблицата с потребители:

Сега, след като имаме информацията, можем да се отървем от администраторския потребител. Това става с командата DELETE; ето неговия синтаксис:

Може би сте забелязали, че форматът DELETE е донякъде подобен на формата SELECT. Нека уточним полето User и стойността admin. Това ще премахне записа от потребителската таблица, където потребителят е администратор, изтривайки нашия акаунт. Да го направим:
Премахване на администраторския потребител:

Командата FLUSH PRIVILEGES е необходима за актуализиране на разрешенията.

Това е всичко за днес. Съгласете се, това е просто! ;)

Добър ден колеги :)

Да, точно колеги, защото за простосмъртния командния ред на MySQL (или MySQL Shell, както обичат да го наричат ​​разработчиците), както и работата с MySQL в конзолата едва ли ще са полезни.

За да бъде тази тема интересна, трябва да сте най-малко начинаещ системен администратор, който по принцип не използва phpMyAdmin и други интерфейси.

Лично аз предпочитам да използвам phpMyAdmin като основен за работа с MySQL, защото... По природа съм визуален човек. Въпреки това, понякога на практика има ситуации, когато познаването на командния ред на MySQL и способността за работа с MySQL в сървърната конзола са просто необходими.

В момента имам три от тях:

  1. Първият път, когато се сблъсках с работа в MySQL конзолата, беше, когато трябваше да импортирам голяма база данни. Не беше зареден изцяло през phpMyAdmin, защото... падна някъде по средата поради таймаут, въпреки промяната на настройките за времето за изпълнение на операцията и размера на изтеглените файлове. По принцип беше възможно да се изберат необходимите стойности, но ми се стори твърде дълъг процес.
  2. Следващият път, когато трябваше да работя с MySQL чрез командния ред, беше да деактивирам проверката на чужди ключове, когато трябваше да изтрия данни от таблица, която беше свързана с други чрез ключове. Просто не можах да намеря как да направя това в phpMyAdmin.
  3. Сериозните компании използват само конзолата за работа с MySQL без никакви phpMyAdmins. Не знам защо точно, но знаещи хора казаха, че има нещо общо със сигурността. В резултат на това всички трябваше да работят с командния ред на MySQL, включително и аз :)

Но, отново, работата с MySQL в конзолата и командния ред е доста подходяща за ежедневна употреба. Всички известни визуални програми за работа с бази данни все още работят на базата на конзолни команди на MySQL. Затова както искате :)

Пускане на конзолата на различни ОС

Тъй като ще демонстрирам как да използвам командния ред на MySQL в конзолата на сървъра, би било добра идея първо да започнете с него.

Действието е просто, познато на мнозина, за което познаването на „горещите клавиши“ е достатъчно.

Стартиране на конзолата на Windows:

  • Win+R за отваряне на команден ред на Windows с администраторски права;
  • Въведете командата cmd
  • Кликнете Въведетена клавиатурата

Стартиране на конзолата в Linux дистрибуции (терминал): в Ubuntu, с който работих, е достатъчна системната комбинация от клавиши Ctrl+Alt+T. Не мога да кажа нищо за други операционни системи, базирани на Linux.

Стартиране на конзолата на MacOS: Не съм правил това сам, защото... Все още не съм се сдобил с Mac и едва ли ще си взема, защото не ми трябва, но доколкото успях да разбера, в тази ОС няма „горещи клавиши“ за извикване на терминал. Така че, ако сте потребител на продукти на Apple, тогава стартирайте конзолата през интерфейса на ОС, за щастие има много ръководства в Интернет.

Малко е неудобно дори да публикувате такава информация, в случай че някой професионален системен администратор с богат опит случайно попадне на тази статия, т.к. той ще си помисли: „Авторът смята своите читатели за програмисти, но в същото време учи как да стартирате конзола... Някакъв психопат :-).“

Да, съвсем логично :) Но просто вземам предвид ситуацията, че наред с професионалните разработчици тук могат да попаднат и начинаещи. Ето защо се опитвам да направя информацията пълна и достъпна за всички категории потребители, както вече споменах.

Основни конзолни команди на MySQL

И така, първо трябва да имаме достъп до командния ред на MySQL в конзолата. За да направите това, отворете конзолата на сървъра и ако имате инсталиран MySQL глобално като услуга, тогава за „проверка на връзката“ пишем следното:

Mysql -V

Конзолна команда mysqlни позволява да стартираме помощната програма със същото име, която е команден ред на MySQL.

Това ще ни позволи да разберем версията на MySQL, инсталирана на компютъра, и да се уверим, че изобщо е инсталирана като услуга. Ако случаят е такъв, тогава ще видите нещо като следния текст в конзолата: .

Да, не съм „луд кодер“, защото използвам Windows :) Но не е това важното. На Unix системи процедурата ще бъде същата.

Ако изведнъж MySQL не е инсталиран глобално на вашия компютър или трябва да работите с няколко версии на MySQL, в които има само директории с MySQL файлове и библиотеки, тогава стартирането на MySQL през конзолата ще изглежда така.

В конзолата отидете в директорията, където се намира изпълнимият файл на MySQL (в Windows, това е поне mysql.exe) със следната команда:

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

Естествено, вашият път към разпространението може да е различен. Като пример реших да стартирам една от версиите на MySQL, включени в OpenServer.

И стартираме MySQL, проверявайки версията му по пътя:

Mysql.exe -V

В резултат на това в конзолата трябваше да се покаже съобщение, подобно на първия случай mysql версия 14.14 Distrib 5.7.16, за Win64 (x86_64).

Това е всичко, решихме стартирането на MySQL от командния ред през сървърната конзола, сега ще се свържем директно към MySQL сървъра.

Свързване към MySQL сървъра в конзолата

MySQL сървърът може да не е непременно на същата машина, на която се опитвате да получите достъп до него в конзолата. Следователно, за да се направи възможно свързването към отдалечен MySQL сървър чрез конзолата, помощната програма mysql има много параметри, с които можете да зададете необходимите настройки.

За да стартираме командния ред на MySQL в конзолата, просто трябва да напишем следното в конзолата на сървъра:

В този случай обаче ще получите следната грешка: ГРЕШКА 1045 (28000): Достъпът е отказан за потребител ‘ODBC’@’localhost’ (с парола: NO). Ето как изглежда съобщението за грешка на моя Windows. Ако използвате Linux, тогава вместо ODBC ще има името на вашия системен потребител, под който извършвате действия в системата.

Всичко това е така, защото по подразбиране, когато се свързва към MySQL сървър, конзолата използва ODBC потребителя на Windows без парола и системния потребител на Linux със същата парола. Хостът по подразбиране е localhost, т.е. Този потребител може да се свързва само от локалната машина.

Следователно имате две възможности: или да използвате друг потребител, за да влезете в командния ред на MySQL, или да създадете MySQL потребител с необходимия акаунт. Но за втория метод все още не можем без първия :) Затова първо се свързваме към MySQL сървъра под стандартен потребител корен, който се създава при инсталиране на MySQL на компютър и за който достъпът от localhost е разрешен по подразбиране:

Mysql -u root -p

Когато бъдете подканени да въведете парола, просто натиснете Enter (ако не сте я въвели, разбира се, когато инсталирате MySQL). След това ще бъдете свързани към MySQL сървъра, ще ви бъде присвоен идентификатор за връзка и ще ви бъде предоставен достъп до командния ред на MySQL.

Ако искате да се свържете към MySQL сървър, който има конкретно име на хост или IP, или искате да влезете като различен потребител, използвайте команда в следния формат:

Mysql -u потребителско_име -p потребителска_парола -h MySQL_сървър_хост_или_IP

Вместо кирилица с долна черта, разбира се, трябва да въведете данните си на латиница. Между другото, ако желаете, можете да напишете тази команда в малко по-различен формат:

Mysql --user=потребителско_име --password=потребителска_парола --host=хост_или_IP_на_MySQL_сървър

Ако по някаква причина не искате вашата парола за връзка с MySQL да се показва в конзолата (което всъщност е правилно), можете да използвате следната команда:

Mysql -u потребителско_име -h MySQL_сървър_хост_или_IP -p

Тъй като паролата не е изрично посочена, ще бъдете подканени да я въведете в следващата стъпка. Освен това въведените от вас знаци няма да се показват дори под формата на звездички (заместващи знаци), вместо това ще има само празен ред.

В допълнение към посочените настройки за връзка е възможно да се използват следните параметри, чиито стойности ще бъдат посочени по начин, подобен на изброените по-горе:

  1. --port или -P - за указване на порта за свързване към MySQL сървъра;
  2. —протокол — протоколът, чрез който ще се осъществява връзката (възможни опции: TCP за Windows и Linux, SOCKET за Linux, PIPE и MEMORY за Windows);
  3. --socket или -S - този параметър е полезен, ако искате да се свържете чрез гнезда, следователно стойността на параметъра ще бъде socket;
  4. --pipe или -W - параметърът е необходим, ако искате да използвате наречени „тръбопроводи“ или „тръби“ за връзки;
  5. --shared-memory-base-name - този параметър ще бъде полезен за MEMORY връзки чрез споделена памет в Windows;

Ясно е, че списъкът с всички параметри за свързване към MySQL сървъра не се ограничава до това. В действителност те са много повече.

Ако по някаква причина стандартната опция, посочваща хост, потребител и парола, не ви подхожда, тогава за да разберете пълния списък с параметри на връзката, ще ви бъде полезна следната информация - https://dev.mysql.com/doc/ refman/5.7/en/connecting.html

Как да създадете база данни в MySQL конзолата

След като се свържем с MySQL сървъра и стартираме MySQL командния ред, е време да започнем жизнения цикъл на базата данни на нашия сайт, който започва с нейното създаване. За да създадете MySQL база данни чрез командния ред, трябва да въведете следната команда:

CREATE DATABASE име на_база_данни;

Същото действие може да се извърши с помощта на специална помощна програма MySQL mysqladmin. Той работи изолирано от командния ред на MySQL, т.е. За да го използвате, ще трябва да излезете от него или да отворите нова сървърна конзола.

И след това извикайте следната команда:

mysqladmin създаване име_база_данни;

Между другото, с помощта на помощната програма mysqladmin можете не само да създавате и изтривате бази данни, без да влизате в конзолата на MySQL, но също така да управлявате конфигурацията на сървъра, процесите на MySQL, да управлявате репликации, да пингвате сървъри и да правите много други интересни неща.

Как да създадете MySQL потребител в командния ред

Не често, но понякога трябва да създадете нов MySQL потребител. Освен това в конзолен режим.

В командния ред на MySQL това се прави по следния начин:

CREATE USER "user_name"@"host_or_machine_IP" ИДЕНТИФИЦИРАН ОТ "user_password";

Потребителят е създаден. Параметър хост_или_IP_машинаозначава, че когато създавате потребител, трябва да посочите IP, от който той може да се свърже със сървъра, или името на хоста (подходящо е името на домейна на работещата машина в мрежата).

Между другото, когато посочвате хоста за свързване към MySQL сървъра, можете да използвате символа за процент - % , което означава, че създаденият потребител може да се свърже към MySQL сървъра от всеки IP адрес или хост.

Трябва да се има предвид, че в този случай localhost не е включен в списъка с адреси, посочени с %, тъй като localhost обозначава връзка чрез UNIX сокет вместо стандартния TCP/IP. Тези. Ако създаденият потребител на MySQL ще се свърже към сървъра, не използвайки сокети, а използвайки различен протокол, посочен при свързване към MySQL сървъра в конзолата, тогава той ще трябва да създаде два потребителски акаунта:

СЪЗДАВАНЕ НА ПОТРЕБИТЕЛ "потребителско име"@"%" ИДЕНТИФИЦИРАН С "парола"; CREATE USER "username"@"localhost" ИДЕНТИФИЦИРАН С "password";

Разбрахме как да създадем потребител на MySQL в конзолата. Сега нека зададем потребителските права за извършване на всякакви действия с нашата новосъздадена база данни със следната команда:

ПРЕДОСТАВЯЙТЕ ВСИЧКИ ПРИВИЛЕГИИ ВЪРХУ име_на_база_данни.* НА "потребителско_име"@"host_or_machine_IP";

опция ВСИЧКО, както разбирате, просто показва, че на потребителя са разрешени всякакви действия с конкретна база данни. Пълен списък с права, които могат да бъдат предоставени на потребителите чрез командата ГРАНТ, можете да намерите тук (въпреки че описанието на параметрите е на английски) - https://dev.mysql.com/doc/refman/5.7/en/grant.html#grant-privileges

Между другото, можете да използвате няколко параметъра за привилегии, като ги посочите при извикване на командата, разделени със запетаи.

Ако искате да създадете суперпотребител, т.е. има глобални привилегии за извършване на различни действия с всички бази данни на сървъра, след което използвайте следното извикване на команда:

GRANT ALL ON *.* TO "user_name"@"host_or_machine_IP";

Между другото, би било добра идея да изчистите кеша на MySQL сървъра след задаване на привилегии. Ако ги промените, не забравяйте да направите това, като извикате следната команда:

ПРИВИЛЕГИИ ЗА ПРОМИВАНЕ;

И ако искате да промените потребителските права, първо използвайте следната команда, за да нулирате всички права:

ОТМЕНЯ ВСИЧКИ ПРИВИЛЕГИИ НА *.* ОТ "user_name"@"host_or_machine_IP";

И след това инсталирайте тези, които трябва да използва ГРАНТ, както е описано по-рано.

Ако в бъдеще трябва да промените потребителската парола на MySQL, за да направите това, просто изпълнете следните команди в MySQL Shell:

ЗАДАДЕТЕ ПАРОЛА ЗА "user_name"@"host_or_machine_IP" = ПАРОЛА("нова_парола"); ПРИВИЛЕГИИ ЗА ПРОМИВАНЕ;

Нулирането на кеша на привилегиите на MySQL сървъра е необходимо за същата цел, както при промяна на правата - без това действие промяната на потребителската парола на MySQL може да не се отчете, така че не бъдете мързеливи да я използвате :)

Между другото, Интернет е пълен с примери за използване на следната команда за нулиране на паролата на MySQL на потребител:

UPDATE mysql.user SET Password=PASSWORD("password") WHERE User="username";

Но тази опция не работи за мен на MySQL 5.7, давайки грешка ГРЕШКА 1054 (42S22): Неизвестна колона „Парола“ в „списък с полета“. Причината се оказа липсата на поле Password в таблицата mysql.user.

От което можем да предположим, че тази опция работи само за по-стари версии на MySQL, където това поле съществува в потребителската таблица. Затова, за да сте сигурни, използвайте първата ми опция, освен ако, разбира се, не сте принудени да работите с допотопен софтуер без възможност за актуализиране на версии :)

Това завършва създаването на нов MySQL потребител и прегледа на действията с неговите права и пароли. Да продължим.

Избор на база данни при работа с MySQL през командния ред

Сега, след като създадем потребител в MySQL Shell и му дадем права за работа с базата данни, трябва да изберем същата база данни, за да можем да работим със самата база данни и данните, съхранявани в нея.

За да направите това, използвайте следната команда в MySQL конзолата:

USE име_на_база_данни;

Ако всичко е минало добре, в конзолата ще се покаже съобщение Базата данни е променена, което ще сигнализира, че сме влезли в MySQL базата данни през конзолата. Между другото, когато се свързвате към MySQL сървър, можете първоначално да посочите базата данни, с която ще трябва да работите. За да направите това, трябва да въведете следната команда в конзолата на сървъра:

Mysql --user=user_name --password=user_password --host=MySQL_server_host_or_IP --database=database_name

Или същото нещо, само питане за потребителската парола на MySQL:

mysql -u потребителско_име -h хост_или_IP_MySQL_сървър_име_база_данни -p

Това е всичко. Мисля, че сега няма да имате никакви затруднения да се свържете с MySQL базата данни през конзолата :)

Работа с MySQL таблици през MySQL конзолата

И така, създадохме MySQL база данни чрез конзолата. Сега би било хубаво да се научите как да работите с него за случая, когато командният ред на MySQL ще бъде единственото средство за достъп до данните, съхранявани на сървъра (какъвто беше случаят с мен, за който говорих в началото на статия).

Както знаете, той се състои от таблици, в които вече се съхранява информация под формата на записи с няколко полета. Следователно, следвайки йерархията на разположение на информацията, първо ще научим как да извършваме типични CRUD операции с таблици.

CRUD операциите, ако някой не е наясно, са операции за създаване, четене, актуализиране и изтриване на данни от английски. „Създаване, четене, актуализиране, изтриване“ (може да ви е необходимо по време на интервюта).

Позволете ми да ви напомня, че за да извършвате действия с таблици, първо трябва да се свържете с базата данни MySQL, като използвате командата ИЗПОЛЗВАНЕ.

И така, първото нещо в нашия дневен ред е командата за създаване на MySQL таблица в базата данни чрез командния ред, която изглежда така:

CREATE TABLE име на таблица (име_на_1 поле_тип_1, име_на_2 поле_тип_2(размер_на_2), ИНДЕКС(име_на_1), ...);

Както разбирате, може да има колкото искате полета, типовете им могат да бъдат различни, както и наличието на индекси и ключове не е задължително.

Между другото, ако искате да копирате таблица в друга база данни или просто да създадете копие в текущата, следните команди ще ви помогнат:

CREATE TABLE new_table_name LIKE old_table_name; INSERT new_table_name SELECT * FROM old_table_name;

Тези команди ви позволяват да копирате структурата на таблицата и нейните данни заедно с индексите на таблицата и тригерите. Ако имате нужда само от данни и структура (имена на полета и техните типове данни), тогава можете да преминете с извикване на една команда:

CREATE TABLE new_table_name AS SELECT * FROM old_table_name;

Следващата операция от блока CRUD е четене. В случай на таблици, четенето ще показва тяхната структура. За да направите това, има следните четири команди:

ПОКАЗВАНЕ НА ПЪЛНИ КОЛОНИ ОТ table_name; DESCRIBE table_name; ОБЯСНЕТЕ table_name; ПОКАЗВАНЕ НА СЪЗДАВАНЕ НА ТАБЛИЦА table_name;

Първият показва информация за полетата на таблицата на базата данни в таблична форма към MySQL конзолата, като посочва името на полето, типа на данните, наличието на ключове, стойността по подразбиране и т.н. Когато използвате ключова дума ПЪЛЕНможете да получите разширена информация, включително привилегии за всяко поле за текущия потребител, коментари за всеки от тях и стойността на кодиране.

Втората и третата команда са просто съкратени форми на първата команда без разширената информация. Защо е имало нужда да се произвеждат - дори не мога да си представя... За да има какво да питам на интервюта за работа ли? 🙂

Четвъртата команда, в допълнение към името, типовете полета и техните стойности по подразбиране, ви позволява да получите стойностите на ключовете на таблицата, табличните машини (InnoDB, MyISAM), кодирането и т.н.

Операцията за актуализиране в случая на таблици представлява промяна в тяхната структура, т.е. различни действия с полета на MySQL таблица:

ALTER TABLE table_name DROP COLUMN име на поле; ALTER TABLE table_name ADD COLUMN field_name VARCHAR(20); ALTER TABLE table_name CHANGE старо_име_на_поле new_field_name VARCHAR(50); ALTER TABLE table_name MODIFY field_name VARCHAR(3);

Първата команда ви позволява да изтриете конкретно поле на таблица, втората ви позволява да го добавите, третата ви позволява да преименувате поле и едновременно с това да промените типа на данните, съхранявани в него, а четвъртата ви позволява да промените само типа на данните .

Същото може да се направи с индекси на таблици, като се използват до голяма степен подобни команди:

ALTER TABLE table_name ADD UNIQUE INDEX index_name (field_name_1, ...); ALTER TABLE table_name преименуване INDEX старо име на индекс TO ново име на индекс; ALTER TABLE име_на_таблица DROP INDEX име_на_индекс;

Следните команди ви позволяват да добавяте, преименувате и премахвате индекси от MySQL таблици чрез командния ред. За добавяне и премахване на индекси, между другото, има друга алтернативна опция за използване на независими команди, вместо да го правите чрез АЛТЕР ТАБЛИЦА. Ето защо, ако желаете, можете да ги използвате:

CREATE UNIQUE INDEX index_name (field_name_1, ...) ON table_name; DROP INDEX index_name ON table_name;

Дадените команди са еквивалентни на първата и последната от предишния блок. За съжаление няма отделна команда за преименуване на индекс. И за да промените типа на индекса, за съжаление, в MySQL изобщо няма начин. Единственото решение е да изтриете индекса и да го създадете отново с желания тип.

Е, най-накрая стигнахме до последната операция от CRUD блока - изтриване. Премахването на MySQL таблици от база данни е много лесно. Просто изпълнете следната команда в MySQL конзолата:

DROP TABLE table_name;

Понякога в практиката възникват ситуации, които правят невъзможно изтриването на таблица или промяната на нейната структура. Като правило това се дължи на използването на външни ключове в базата данни за свързване на таблици една с друга. Аз лично се сблъсках с тази ситуация повече от веднъж, както говорих в началото на статията.

Следователно, ако при изтриване или актуализиране на структура на таблица или нейните данни MySQL ви върне грешка с текста Не може да се изтрие или актуализира родителски ред: ограничение за външен ключ е неуспешно, тогава следната информация ще ви бъде полезна.

За да изпълним нашия план, трябва временно да деактивираме проверката за наличие на външни ключове, да извършим необходимата операция и след това да активираме проверката отново, т.к. това е наистина необходимо и ви позволява да се предпазите от нарушения на целостта на данните в повечето случаи.

В интерес на истината за тази цел са необходими външни ключове на MySQL.

Така че, за да изтриете данни, които се намесват от външни ключове, трябва да изпълните следните стъпки в MySQL конзолата:

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

Между другото, ако искате да изтриете външен ключ, процедурата ще бъде същата като при изтриване на индекс:

ALTER TABLE име на таблица DROP FOREIGN KEY име на чужд_ключ;

За да разберете името на MySQL външния ключ на таблица, използвайте вече познатата конзолна команда MySQL ПОКАЖИ СЪЗДАВАНЕ НА ТАБЛИЦА.

Работа с MySQL таблични данни чрез командния ред

За CRUD таблици разгледахме операциите в MySQL конзолата. За пълна представа, в тази измамна таблица липсват само команди за работа със самите данни, съхранявани в таблиците на базата данни. Мисля, че много хора знаят тези команди и са ги използвали на практика, но все пак ще ви ги припомня отново.

CRUD операциите за работа с MySQL таблични данни ще изглеждат така:

INSERT INTO table_name (field1, field2, ...) VALUES (field_1 value, field_2 value, ...); SELECT field1, field2, ... FROM table_name; UPDATE table_name SET field1 = поле_1 стойност, field2 = поле_2 стойност; DELETE FROM table_name WHERE field1 = поле_1 стойност;

Горните команди съответстват на операциите за създаване, четене, актуализиране и изтриване на данни от таблици на MySQL база данни. Когато използвате SELECT и UPDATE, също е възможно да използвате квалифицираща клауза WHERE, която може да се използва за указване на избора на данни по същия начин, както е описано при използване на DELETE.

Освен това, когато извличате данни от база данни с помощта на SELECT, можете да използвате следната опция, за да получите стойностите на всички полета на таблицата:

SELECT * FROM table_name;

Естествено, тези операции могат да използват и други оператори освен WHERE. Има особено много от тях при извличане на данни с помощта на SELECT: тук има UNION за комбиниране на резултатите от няколко заявки и различни видове JOIN. Изброяването на всичко е много дълго и ще бъде досадно и за мен, и за вас да четем това.

Затова нека се съгласим: ако искате да научите повече за нещо, просто напишете за това в коментарите и аз ще се опитам да ви отговоря. Или други знаещи членове на нашата общност ще го направят. ДОБРЕ? 😉

Така че засега няма да се спираме на този блок.

Ако трябва да изтриете всички данни от таблица, можете да използвате следната команда MySQL:

TRUNCATE table_name;

Преди да го извикате, както бе споменато по-рано, може да се наложи да деактивирате проверката на външния ключ в случай, че има свързани MySQL таблици, което може да попречи на необходимото действие да бъде извършено.

Друг интересен момент, който трябва да се отбележи тук, е, че тази команда не нулира брояча AUTO_INCREMENT, за който е известно, че се използва за автоматично генериране на стойност на поле, без да е необходимо ръчно да се задава.

Полета от този тип най-често се използват за генериране на стойности за id на основното ключово поле, което се използва за установяване на връзки между данни от различни таблици.

Тоест, ако преди да изтриете данните от таблицата с помощта на ТРЪНЦИРАНЕмаксималната стойност на брояча беше 1200, тогава първият запис след тази процедура ще има идентификатор 1201. По принцип всичко е наред. Ако сте задали достатъчен размер за това поле, тогава няма да сте в опасност от препълване на стойностите скоро.

В някои случаи обаче, когато кодът на приложението има някакъв вид обвързване със стойността на дадено поле, това поведение може да причини неудобство.

За да избегнете това, използвайте тази опция вместо горната команда:

TRUNCATE TABLE someTable RESTART ИДЕНТИЧНОСТ;

Тази опция за извикване на команда ТРЪНЦИРАНЕще ви позволи да нулирате стойността на брояча на полето от АВТОМАТИЧНО УВЕЛИЧАВАНЕ. Следователно стойността на полето на първия добавен запис след това изтриване ще бъде 1 вместо 1201, както в примера по-горе.

Как да изтриете MySQL база данни чрез командния ред

Жизненият цикъл на работа с база данни е към своя край и приключва съвсем логично – с нейното изтриване. За да извършите тази операция в MySQL конзолата, трябва да изпълните следната команда (в този случай базата данни за изтриване може да не е избрана от командата ИЗПОЛЗВАНЕ):

ИЗТРИВАНЕ НА БАЗА ДАННИ име на_база_данни;

Същото действие може да се извърши с помощта на помощната програма MySQL mysqladmin, която вече споменах в началото на статията при създаване на база данни:

Mysqladmin drop database_name;

Когато извикате командата, в конзолата на сървъра се появява следното съобщение:

Изтриването на базата данни е потенциално много лошо нещо.
Всички данни, съхранявани в базата данни, ще бъдат унищожени.

Наистина ли искате да премахнете базата данни „database_name“.

Накратко, това е предупреждение, че изтриването на MySQL база данни е много лоша идея. Иска се и потвърждение на действието. Ако сте съгласни пишете ги натиснете Въведетена клавиатурата, след което на екрана ще се покаже следното съобщение (ако всичко е минало добре, разбира се):

Базата данни „име_на_база_данни“ отпадна

Това е :)

Как да изтриете MySQL потребител в конзолата

Сега същата съдба ще сполети потребителя на MySQL, който създадохме, за да ви покажем как се прави. Но първо би било добра идея да проверите дали необходимият потребител действително съществува, преди да го изтриете.

От MySQL 5.7 има една команда за двете от тези действия:

DROP USER IF EXISTS потребителско име;

По-ранните версии на MySQL изискваха две отделни команди:

ПРЕДОСТАВЯНЕ НА ИЗПОЛЗВАНЕ НА *.* НА "user_name"@"host_or_IP_address"; ОТПУСКАНЕ НА ПОТРЕБИТЕЛЯ "user_name"@"host_or_IP_address";

За съжаление в този случай съобщението за изпълнението на операцията в MySQL конзолата традиционно е неинформативно 🙁 Следователно, за да разберете, че потребителят на MySQL потребител е изтрит, можете да използвате следната команда, която показва списък на всички потребители съществуващ на текущия MySQL сървър:

ИЗБЕРЕТЕ потребител ОТ mysql.user;

Тази опция на командата ще показва само потребителски имена. Ако трябва да видите хостовете, от които потребителите могат да се свързват към сървъра, и списъка с привилегии, можете да извикате командата в следната форма:

ИЗБЕРЕТЕ Потребител, Хост, Grant_priv ОТ mysql.user;

Също така в таблицата mysql.user има много други полета, които съхраняват други видове привилегии и друга информация, пълен списък на които можете да намерите тук - https://mariadb.com/kb/en/library/mysqluser- маса/

Не се бъркайте, че това е документация за СУБД MariaDB. Технически това е същото като MySQL, защото... MariaDB е само неговият клон или разклонение от английското “fork” - разклонение, разклонение.

Защо беше направено - пак нямам представа 🙂 Може би за да заявя гордо пред всички, че "имам собствена СУБД"?.. Но, честно казано, не съм много наясно с точните мотиви и разлики между MySQL и MariaDB. Ето защо, ако знаете нещо за това, би било интересно да прочетете за това в коментарите.

Излизане от MySQL Console

Това е всичко, жизненият цикъл на базата данни и потребителя, който започна със създаването им и завърши с изтриването им, приключи. Следователно командният ред на MySQL, с който работихме в конзолата на сървъра, използвайки помощната програма mysql, вече не ни трябва.

Остава само да се измъкнем от него...

Изглежда, че действието е тривиално, но много хора в ситуация, в която трябва да излязат от командния ред на MySQL, просто затварят конзолата на сървъра и го отварят отново. Можете, разбира се, да действате така, но това отнема допълнителни секунди работно време и ви кара да се дразните всеки път, когато трябва да го направите.

Правилното поведение в тази ситуация би било просто да извикате командата изходв командния ред на MySQL, след което услугата учтиво ще се сбогува с нас :)

И това е всичко 🙂 Така че следващия път не е необходимо да създавате множество конзоли и да ги отваряте отново всеки път, когато трябва да излезете от MySQL в конзолата и да влезете отново в нея, за да управлявате сървъра.

Това е всичко, което исках да ти кажа днес. Надявам се, че моят измамен лист за работа с командния ред на MySQL през конзолата ще бъде полезен не само за мен, но и за вас.

Говорейки за практическото приложение на информацията, представена в статията, бих искал да ви напомня, че горните конструкции могат да се използват не само в командния ред на MySQL и сървърната конзола, но и в конзолата на phpMyAdmin и друг софтуер, който предоставя такава възможност.

Дали ще го използвате или не е ваша работа. Но, както казах в самото начало на статията, има ситуации, когато използването на MySQL конзолата може да ви спести време и стрес. Дали да използвате командния ред всеки ден или не е чисто въпрос на вкус и индивидуални предпочитания.

Напишете в коментарите кои команди използвате най-често. Или може би знаете някои други трикове. Във всеки случай споделете мнението си с другите и поддържайте разговора в коментарите на други потребители.

Обещавам, че в процеса ще научите много нови неща, точно както правя аз, когато пиша всяка своя статия :)

Това е всичко! Успех и до нови срещи :)

P.S.: ако имате нужда от уеб сайт или трябва да направите промени във вече съществуващ, но нямате време или желание за това, мога да предложа услугите си.

Повече от 5 години опитпрофесионална изработка на уебсайтове. Работи с PHP, OpenCart, WordPress, Laravel, Yii, MySQL, PostgreSQL, JavaScript, Реагирайте, Ъгловаи други технологии за уеб разработка.

По-долу е даден списък на най-полезните и често използвани команди MySQLс примери.

mysql в началото на реда означава, че командата се изпълнява след влизане MySQL.

Символът # или $ в началото на реда означава, че командата се изпълнява от командния ред.

За да проверите състоянието на сървъра MYSQLнаправи:

За FreeBSD:

# услуга състояние на mysql-сървър

V CentOS/RHEL:

Състояние на # услуга mysqld

MySQLот конзолата, ако сървърът MySQLе на същия хост:

За да се свържете със сървъра MySQLот конзолата, ако сървърът MySQLсе намира на отдалечения хост db1.example.com:

$ mysql -u потребителско име -p -h db1.example.com

Работа с бази данни и таблици – преглед, изтриване, редактиране на записи. Конзола

Създайте база данни на MySQLсървър:

Mysql създава база данни

Показване на списък с всички бази данни на сървъра MySQL:

използване на mysql;

Показване на всички таблици в базата данни:

Mysql показва таблици;

Вижте формата на таблицата в базата данни:

mysql описва;

Изтриване на база данни:

Mysql drop база данни;

Изтриване на таблица от базата данни:

Mysql падаща таблица;

Показване на цялото съдържание на таблицата:

Mysql ИЗБЕРЕТЕ * ОТ;

Показване на колони и съдържание на колони в избраната таблица:

Mysql показва колони от ;

Показване на редове в конкретна таблица, съдържаща „каквото и да е“:

Mysql SELECT * FROM WHERE = "каквото и да е";

Показване на всички записи в конкретна таблица, съдържаща „Боб“ и телефонния номер „3444444:

Mysql SELECT * FROM WHERE име = "Боб" И phone_number = "3444444";

Покажи всички записи, НЕсъдържащ името „Боб“ и телефонния номер „3444444“, сортирани по полето phone_number:

Mysql SELECT * FROM WHERE name != " Bob " AND phone_number = " 3444444 " подреждане по phone_number;

Показване на всички записи, започващи с буквите "bob" и телефонния номер "3444444" в конкретна таблица:

Mysql SELECT * FROM WHERE име като "Bob %" AND phone_number = "3444444";

Покажи всички записи, започващи с буквите "bob" и телефонния номер "3444444", ограничавайки записите от 1 до 5:

Mysql SELECT * FROM WHERE име като "Bob %" AND phone_number = "3444444" limit 1.5;

Използване на регулярни изрази ("REGEXP BINARY") за търсене на записи. Например, за търсене без разлика на главни и малки букви, намерете всички записи, започващи с буквата A:

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

Показване на всички уникални записи:

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

Покажете броя на редовете в таблицата:

Mysql SELECT COUNT(*) FROM ;

Mysql SELECT SUM(*) FROM ;

Премахване на колона:

Mysql променя колона за изпускане на таблица;

Добавяне на колона към базата данни:

Mysql променя таблицата добавя колона varchar(20);

Промяна на името на колоната:

Mysql променя таблицата за промяна на varchar(50);

Създайте колона с уникално име, за да избегнете дублиране на имена:

Mysql alter table add unique();

Преоразмеряване на колона:

Mysql променя таблицата, променя VARCHAR(3);

Премахване на колона от таблица:

Mysql променя индекса на изпускане на таблица;

Mysql ЗАРЕЖДАНЕ НА ДАННИ ВЪВ ФАЙЛ " /tmp/filename.csv " замени В ПОЛЕТА НА ТАБЛИЦАТА, КРАЙНИ С "," РЕДОВЕ, КРАЙНИ С "n" (field1,field2,field3);

Потребители на MySQL сървър, пароли - добавяне, промяна на потребители и пароли. Конзола

Създаване на нов потребител - свързване към сървъра MySQLкато root, превключване към база данни, добавяне на потребител, актуализиране на привилегии:

# mysql -u root -p mysql използва mysql; mysql INSERT INTO user (Host,User,Password) VALUES("%","username", PASSWORD("password")); mysql привилегии за флъш;

Промяна на потребителската парола от конзолата на отдалечения хост db1.example.org:

# mysqladmin -u потребителско име -h db1.example.org -p парола "нова-парола"

Промяна на потребителската парола от конзолата MySQL- свържете се като root, актуализирайте парола, актуализирайте привилегии:

# mysql -u root -p mysql ЗАДАВАНЕ НА ПАРОЛА ЗА " потребител "@" име на хост " = ПАРОЛА (" парола тук "); привилегии за изтриване на mysql;

Възстановяване/промяна на паролата на главния сървър MySQL- Спри се MySQL, стартирайте без таблици с привилегии, свържете се като root, задайте нова парола, излезте и рестартирайте MySQL.

# /etc/init.d/mysql stop # mysqld_safe -skip-grant-tables & # mysql -u root mysql use mysql; mysql update потребителски набор парола=ПАРОЛА(" newrootpassword ") където потребител="root"; mysql; флъш привилегии; mysql quit # /etc/init.d/mysql stop # /etc/init.d/mysql start

Задайте root парола, ако има on root парола.

# mysqladmin -u root парола нова парола

Актуализирайте root паролата:

# mysqladmin -u root -p стара парола нова парола

Задаване на правото за свързване към сървъра от хоста localhost с парола "passwd" - свързване към suroot, превключване към базата данни, настройка на привилегии, актуализиране на привилегии:

# mysql -u root -p mysql използва mysql; mysql предоставя използване на *.* за bob @localhost, идентифицирано от " passwd "; привилегии за изтриване на mysql;

Задаване на потребителски привилегии за използване на базата данни - свързване като root, превключване към базата данни, задаване на привилегии, актуализиране на привилегии:

# mysql -u root -p mysql използва 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;

Mysql предоставя всички привилегии на databasename .* на потребителско име @localhost; привилегии за изтриване на mysql;

Актуализиране на информацията в базата данни:

Mysql UPDATE SET Select_priv = "Y", Insert_priv = "Y", Update_priv = "Y", където = потребител";

Изтриване на ред в таблица:

Mysql DELETE from where = "каквото и да е";

Актуализиране на привилегии в базата данни:

Привилегии за промиване на Mysql;

Архивиране - създаване, възстановяване на бази данни. Конзола

Създайте резервно копие (дъмп) на всички бази данни във файла alldatabases.sql:

# mysqldump -u root -p парола -opt; /tmp/alldatabases.sql

Архивирайте една база данни във файла databasename.sql:

# mysql dump -u потребителско име -p парола -бази данни име на база данни; /tmp/databasename.sql

Архивирайте една таблица във файла име на база данни.име на таблица.sql:

# mysql dump -c -u потребителско име -p парола име на база данни име на таблица; /tmp/databasename.tablename.sql

Възстановяване на база данни (или таблица) от резервно копие:

# mysql -u потребителско име -p парола име на база данни< /tmp/databasename.sql

Създаване на таблици от бази данни. Конзола

имената на колоните се изписват с малки букви;
ГЛАВНИ букви - видове и атрибути на колони;
в (скоби) - стойността на типа колона.

Създайте таблица, пример 1:

mysql CREATE TABLE (първо име VARCHAR(20), среден инициал VARCHAR(3), фамилия VARCHAR(35), суфикс VARCHAR(3), officeid VARCHAR(10), потребителски идентификатор VARCHAR(15), потребителско име VARCHAR(8), имейл VARCHAR(35) ), телефон VARCHAR(25), групи VARCHAR(15), клеймо за дата ДАТА, клеймо за време TIME, pgpemail VARCHAR(255));

Създайте таблица, пример 2:

Mysql създава таблица (personid INT(50) NOT NULL AUTO_INTCREMENT PRIMARY KEY, първо име VARCHAR(35), средно име VARCHAR(50), фамилно име VARCHAR(50) по подразбиране "bato");

Помощната програма за команден ред mysql е проста SQL обвивка (с възможностите на библиотеката readline на проекта GNU). Поддържа интерактивни и неинтерактивни режими. В интерактивен режим резултатите от заявката се представят в ASCII формат. Когато се използва в неинтерактивен режим (например като филтър), резултатът се представя в текстов формат, разделен с табулатори (форматът на изхода може да се промени с помощта на опциите на командния ред). Скриптовете могат да се изпълняват, както е показано по-долу:

Shell> mysql база данни output.tab

Ако възникнат проблеми поради недостатъчна памет на даден клиент, използвайте опцията --quick! Това ще принуди mysql да използва функцията mysql_use_result() вместо функцията mysql_store_result(), за да получи резултантната селекция от данни.

Използването на mysql е много лесно. Стартирайте mysql база данни или mysql --user=потребителско_име --password=вашата_парола база данни e. Въведете SQL командата директно в командния ред, като я завършите с един от следните знаци: `;", `\g" или `\G" и натиснете клавиша ``Enter".

Помощната програма за команден ред mysql поддържа следните опции:

Помощ Показва помощна информация за използването на програмата и излиза от нея. -A, --no-auto-rehash Деактивира автоматичното преразглеждане. rehash трябва да се използва за получаване на хеша на таблици и полета. Това кара mysql да стартира по-бързо. --prompt=... Задава подкана за въвеждане на команди в посочения формат. -b, --no-beep Изключва звуковия сигнал за грешка. -B, --batch Изходът води до пакетен режим, разделен с разделители, всеки ред на нов ред. Файлът с историята не се използва. --character-sets-dir=... Директория, където се намират наборите от знаци. -C, --compress Използвайте компресиране на данни в протокола сървър/клиент. -#, --debug[=...] Дневник за отстраняване на грешки. Стойността по подразбиране е "d:t:o,/tmp/mysql.trace". -D, --database=... Име на базата данни за използване. Най-често се използва в конфигурационния файл `my.cnf". --default-character-set=... Задайте набора от символи по подразбиране. -e, --execute=... Изпълнете командата и излезте от програмата (изведете резултата както за --batch), --vertical Вертикално отпечатване на резултатите от заявката (низове) Можете да генерирате изход по подобен начин без този параметър, завършвайки командите с \G -f, --force Продължете да обработвате. Открита е SQL грешка, --no-named-commands Забранява наименуваните команди във формата \* или само назованите команди в началото на реда, завършващ със знака `;". . Започвайки от версия 10.9 клиентът започва с тази опция, включени по подразбиране! С опцията -g обаче дългите команди все още работят от първия ред. -G, --enable-named-commands Разрешава наименувани команди. Разрешени са дълги команди, както и съкратени команди като \*. -i, --ignore-space Игнорира интервала след имената на функциите. -h, --host=... Свързване към базата данни на посочения хост. -H, --html Отпечатайте изход като HTML. -L, --skip-line-numbers Пропуска номера на редове за грешки. Полезно за сравняване на файлове с резултати, които включват съобщения за грешки. --no-pager Деактивира пейджъра (пейджър) и записва резултата в stdout (на Unix). Вижте също командата \h (онлайн помощ). --no-tee Заключва изходния файл. Вижте също командата \h (онлайн помощ). -n, --unbuffered Изчистване на буфера след всяка заявка. -N, --skip-column-names Пропускане на имена на колони в резултатите. -O, --set-variable var=option Задайте стойността на променлива. Списъкът с използвани променливи се показва чрез --help. -o, --one-database Актуализирайте само базата данни по подразбиране. Позволява ви да пропуснете актуализациите на друга база данни в журнала за актуализации. --pager[=...] Задава типа изходни данни. По подразбиране това е променливата на средата PAGER. Неговите възможни стойности са по-малко, повече, cat [> filename] и т.н. Вижте също командата \h (онлайн помощ). Тази опция не работи в пакетен режим. Пейджърът работи само под Unix. -p, --password[=...] Парола, използвана при свързване към сървъра на базата данни. Ако в командния ред не е посочена парола, потребителят получава подкана за такава. Когато използвате кратката форма -p, не оставяйте интервал между параметъра и стойността на паролата. -P --port=... Номер на TCP/IP порт, използван за връзка. -q, --quick Не кеширай резултатите. Отпечатайте го ред по ред, както идва от сървъра. Това може да забави скоростта на сървъра, ако изходът е на пауза. Файлът с историята не се използва. -r, --raw Показване на стойности на колони без преобразуване. Използва се с --batch. -s, --silent Тих режим. Показване само на съобщения за грешки. -S --socket=... Файлът на сокета, използван за връзката. -t --table Изведе резултата в табличен формат. Задайте по подразбиране за непакетен режим. -T, --debug-info Отпечатване на информация за отстраняване на грешки при излизане от програмата. --tee=... Добавете нещо към изходния файл. Вижте също командата \h (онлайн помощ). Тази опция не работи в пакетен режим. -u, --user=# MySQL потребителско име, ако този потребител не е активен в момента. -U, --safe-updates[=#], --i-am-a-dummy[=#] Позволява само операции UPDATE и DELETE с използване на ключове. Повече информация за тази опция е предоставена по-долу. Можете да нулирате този параметър, като зададете стойността на аргумента --safe-updates=0 в конфигурационния файл `my.cnf', --verbose По-разширен изходен режим (-v -v -v дава изходния формат на таблицата). .-V , --version Показване на информация за версията и изход от програмата, --wait Ако връзката със сървъра е неуспешна, изчакайте и опитайте да я възстановите, вместо да прекъсвате работата.

Следните променливи също могат да бъдат зададени чрез опциите на командния ред -O или --set-variable:

Ако въведете помощ в командния ред, mysql ще изведе командите, които поддържа:

Mysql> помощ Команди MySQL помощ (\h) Отпечатва дадения текст. ? (\h) Синоним за помощ. изчистване (\c) Команда за изчистване. свържете се (\r) Свържете се отново със сървъра. Допълнителни аргументи са db и host. редактиране (\e) Редактирайте текущата команда с помощта на $EDITOR. ego (\G) Изпраща текущата MySQL команда към сървъра и показва резултата вертикално. изход (\q) Излезте от програмата. Същото като напускане. go (\g) Изпраща текущата MySQL команда към сървъра. nopager (\n) Блокиране на пейджър, изход чрез stdout. бележка (\t) Не добавяйте записи към изходящия файл. пейджър (\P) Задайте ПЕЙДЖЪР . Показване на резултатите от заявката чрез PAGER. print (\p) Отпечатва текущата команда. подкана (\R) Промяна на формата на подкана за въвеждане на mysql команди. quit (\q) Излезте от програмата. rehash (\#) Възстановява хеш таблицата. източник (\.) Стартирайте файл с SQL скрипт. Въведете име на файл като аргумент. status (\s) Вземете информация за състоянието на сървъра. tee (\T) Задайте параметъра outfile. Добавете нещо към дадения изходен файл. използване (\u) Използване на друга база данни. Въведете името на базата данни като аргумент.

Командата пейджър работи само на Unix.

Резултатът от това е следният:

  • Не е позволено да се изпълняват команди UPDATE или DELETE, освен ако в клаузата WHERE не са посочени ключови ограничения. Можете обаче да накарате командите UPDATE / DELETE да се изпълнят, като използвате израза LIMIT: UPDATE table_name SET not_key_column=# WHERE not_key_column=# LIMIT 1;
  • Всички резултати, които са твърде големи, са ограничени от редовете #select_limit#.
  • SELECT, които може да изискват повече от #max_join_size# комбинации от редове за изпълнение, ще бъдат прекъснати.

Няколко полезни съвета за използване на mysql клиента:

Някои данни са по-четими, когато се показват вертикално вместо често използвания хоризонтален изходен прозорец. Например текст, който е по-дълъг, отколкото е широк и съдържа много нови редове, често е много по-лесен за четене във вертикален изглед.

Mysql> SELECT * FROM имейли WHERE LENGTH(txt) sbj: UTF-8 txt: >>>>> "Thimble" == Thimble Smith пише: Thimble> Здравей. Мисля, че това е добра идея. Някой запознат ли е с UTF-8 Thimble> или Unicode? В противен случай ще сложа това в моя списък със задачи и ще видя какво ще се случи Thimble>. Да, моля, направете го. Поздрави, Монти файл: inbox-jani-1 хеш: 190402944 1 ред в комплекта (0,09 сек.)

  • Можете да използвате опциите на командата tee, за да влезете. Може да се стартира с помощта на опцията --tee=... за mysql или интерактивно от командния ред чрез въвеждане на командата tee. Всички данни, представени на екрана, също ще бъдат добавени към посочения файл. Това може да бъде много полезно за целите на отстраняване на грешки в програмата. Помощната програма tee може да бъде деактивирана от командния ред с командата note. Изпълнението на командата tee отново ще активира регистриране отново. Ако параметърът на командата tee не е зададен, ще се използва предишният файл. Имайте предвид, че командата tee ще запише резултатите във файл след всяка изпълнена команда, точно преди да се появи командният ред за въвеждане на следващата команда.
  • С помощта на опцията --pager[=...] стана възможно интерактивното разглеждане или търсене на резултати с помощта на Unix програмите по-малко, повече или други подобни. Ако не посочите изрично аргумент в този параметър, mysql клиентът ще потърси променливата на средата PAGER и ще зададе стойност на пейджър. Програмата пейджър може също да бъде стартирана от интерактивния команден ред с командата пейджър и спряна с командата nopager. Командата може да приема аргумент, който не е задължителен; пейджър ще бъде настроен на стойността на този аргумент. Командата пейджър може да бъде извикана без аргумент, но това изисква използването на опцията --pager или съответната настройка по подразбиране на stdout. Командата пейджър работи само в Unix, защото използва функцията popen(), която не е налична в Windows. В Windows вместо това можете да използвате параметъра tee, въпреки че в някои ситуации това е по-малко удобно от използването на командата пейджър.
  • Няколко съвета относно командата пейджър: Може да се използва за запис във файл: mysql> пейджър котка > /tmp/log.txt и резултатите ще бъдат изпратени само във файла. Програмите, извикани от командата пейджър, могат да приемат всякакви валидни опции: mysql> пейджър по-малко -n -i -S Обърнете специално внимание на опцията -S в примера по-горе. Може да бъде много полезно при преглед на резултатите. Опитайте да го използвате с хоризонтален изход (завършете командите с "\g" или ";") и с вертикален изход (завършете командите с "\G"). Много обемисти изходни резултати понякога са трудни за четене от екрана, в този случай командата less с опцията -S ще ви позволи да преглеждате резултатите интерактивно отляво надясно и когато се появят линии с дължина, по-голяма от ширината на екран, техният изход ще продължи да се извежда от нов ред. Изходните данни в такива случаи са по-четливи. Когато интерактивно извиквате командата less с опцията "-S", можете да превключите нейния режим на работа (включване/изключване) от командния ред. За повече информация относно less вижте описанието на командата "h".
  • В заключение отбелязваме (ако вече не сте разбрали това от предишните примери), че е възможно да се комбинират много сложни методи за обработка на резултатите. Така в следващия пример резултатите ще бъдат изпратени до две различни директории, монтирани на два различни твърди диска в /dr1 и /dr2, но въпреки това резултатите могат да се видят на екрана с помощта на командата less: mysql> pager cat | tee /dr1/tmp/res.txt | \ tee /dr2/tmp/res2.txt | по-малко -n -i -S
  • Горните функции също могат да се комбинират: като стартирате tee и зададете пейджър на по-малко, можете да видите резултатите с помощта на Unix команда по-малко и в същото време да пишете във файл. Разликата между Unix помощната програма tee, използвана в програмата за пейджър, и вградената команда tee в mysql клиента е, че вградената команда tee работи дори ако помощната програма tee не е налична в Unix. Вградената команда tee също записва всичко, което се показва на екрана, докато помощната програма tee на Unix, използвана с пейджър, не прави това в достатъчна степен. Последен, но важен момент е, че интерактивната команда tee е по-удобна за включване/изключване на режими, ако понякога трябва да деактивирате тази функция, когато пишете във файл.

Можете да промените формата на подканата в командния ред на клиента mysql.

Възможни са следните опции за покана:

опция Описание
\vmysqld версия
име на използваната база данни
\hиме на хост за свързване
\pномер на порт, през който се осъществява връзката
\uПотребителско име
\Uпълен адрес потребителско име@хост
\\ обратна наклонена черта `\"
знак за нов ред
\Tтабулиране
\ пространство
\_ интервал с долна черта
\Rвоенна часова зона (0-23)
\rвреме според стандартната часова зона (1-12)
\mминути
две годишни категории
\Yчетиригодишни категории
пълен формат на датата
секунди
\wден от седмицата в трибуквен формат (пон, вт, ...)
\PВреме преди обяд/след обяд (сутрин/обяд)
месец в цифров формат
месец в трибуквен формат (януари, февруари, ...)
\° СБрояч, който отчита броя на въведените команди

Символът „\“, последван от всяка друга буква, просто допълва тази буква.

Можете да зададете опции за покана по следните начини:

В променливите на средатаМожете да зададете променливата на средата MYSQL_PS1 за подканящия низ. Например: shell> export MYSQL_PS1="(\u@\h) [\d]> " `my.cnf" `.my.cnf"Можете да зададете опцията за подкана във всеки конфигурационен файл на MySQL в групата mysql. Например: prompt=(\u@\h) [\d]>\_ На командния редМожете да зададете опцията --prompt от командния ред на mysql. Например: shell> mysql --prompt="(\u@\h) [\d]> " (user@host) > ИнтерактивноМожете също да използвате командата подкана (или \R), за да промените настройките на подкана интерактивно. Например: mysql> подкана (\u@\h) [\d]>\_ PROMPT зададена на "(\u@\h) [\d]>\_" (user@host) > (user@host) > подкана Върнете се към първоначалните (по подразбиране) PROMPT настройки в помощната програма mysql> mysql>