Робота з MySQL з командного рядка. Автоматичне встановлення MySQL на Windows Запуск mysql з командного рядка linux

Запуск та зупинення сервера MySQL з командного рядка

Запустити сервер MySQL вручну можна одним із двох способів:

Двічі клацніть на значку файлу mysqld-nt.exe, розташованого в підкаталозі bin каталогу, де інстальовано програму MySQL.

Відкрийте вікно командного рядка Windows. Для цього натисніть кнопку Пуск, в меню виберіть пункт Виконати, у вікні Запуск програми в полі Відкрити введіть команду cmd і натисніть кнопку OK. На екрані з'явиться вікно командного рядка (рис. 1.25).

Мал. 1.25.Вікно командного рядка


У командному рядку введіть команду

mysqld-nt

та натисніть клавішу Enter. Сервер MySQL буде запущено.

Якщо при налаштуванні сервера шлях до підкаталогу bin не був доданий до значення системної змінної Path, то для запуску сервера необхідно ввести не тільки ім'я файлу, але й повний шлях до нього, наприклад:

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

Якщо ви хочете переглядати діагностичні повідомлення про роботу сервера у вікні командного рядка, замість mysqld-nt введіть

mysqld-nt -console

Увага!

Якщо при налаштуванні сервера MySQL ви не вказували пароль користувача root, необхідно встановити пароль при першому запуску сервера (інакше хто завгодно зможе керувати сервером під ім'ям root без пароля).

Щоб встановити пароль root, відкрийте нове вікно командного рядка та введіть наступне:

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

(або C: \Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin -u root password<пароль>, якщо шлях до підкаталогу bin не було додано до значення системної змінної Path при налаштуванні сервера) і натисніть клавішу Enter.

Надалі, якщо потрібно змінити пароль користувача root, виконайте таку саму команду, тільки за допомогою опції – р:

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

Після появи запрошення Enter password (Введіть пароль) вкажіть колишній пароль та натисніть клавішу Enter.

Нарешті, якщо потрібно зупинити сервер MySQL, виконайте команду

mysqladmin -u root -p shutdown

та у відповідь на запрошення Enter password (Введіть пароль) введіть пароль користувача root. Натисніть клавішу Enter. Сервер MySQL буде зупинено.

Для запуску та зупинки сервера MySQL також можна використовувати графічну утиліту MySQL Administrator.

Запуск та зупинення сервера MySQL за допомогою MySQL Administrator

Щоб запустити сервер MySQL за допомогою графічної утиліти MySQL Administrator, виконайте такі дії.

1. Запустіть програму MySQL Administrator (Пуск → Усі програми → MySQL → MySQL Administrator). На екрані з'явиться вікно з'єднання із сервером (рис. 1.26).

Мал. 1.26.


2. Натисніть клавішу Ctrl і, утримуючи її, клацніть на кнопку Skip (Пропустити), що з'явиться в правому нижньому куті вікна замість кнопки Cancel (Скасувати). На екрані з'явиться головне вікно MySQL Administrator (рис. 1.27).

Мал. 1.27.Головне вікно MySQL Administrator


4. Якщо сервер MySQL не був налаштований як сервіс Windows, то кнопка Start Service (Запустити сервіс), розташована у правій області вікна, недоступна. Необхідно виконати такі попередні дії:

1) перейдіть на вкладку Configure Service (Налаштування сервісу). Знайдіть внизу вкладки кнопку Install new Service (Встановити новий сервіс) та натисніть її;

2) у діалоговій панелі, що з'явилася, вкажіть назву сервісу і натисніть кнопку OK;

3) у полі Config Filename (Ім'я конфігураційного файлу) введіть шлях до конфігураційного файлу my.ini (рис. 1.28), наприклад C: Program Files MySQL MySQL Server 5.0 my.ini. Червоний колір шрифту означає, що файл не знайдено; якщо колір змінився звичайний, шлях зазначений правильно;

4) у полі Path to binary (Шлях до виконуваного файлу) введіть шлях до файлу mysqld-nt.exe, наприклад C: \Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt;

6) поверніться на вкладку Start/Stop Service (Запуск/зупинка сервісу).

Мал. 1.28.Закладка Configure Service 5. Натисніть кнопку Start Service (Запустити сервіс). Сервер MySQL буде запущено.


Увага!

Якщо при налаштуванні сервера MySQL ви не вказували пароль користувача root, то необхідно встановити його при першому запуску сервера (інакше будь-хто може керувати сервером під ім'ям root без пароля). У поточній версії MySQL Administrator установка пароля root недоступна, і для виконання цієї операції потрібно використовувати утиліту командного рядка mysqladmin (див. підрозділ "Запуск та зупинення сервера MySQL з командного рядка").

Щоб зупинити сервер MySQL за допомогою MySQL Administrator, виконайте наведені нижче дії.

1. Запустіть програму MySQL Administrator (Пуск → Усі програми → MySQL → MySQL Administrator). На екрані з'явиться вікно з'єднання із сервером (див. мал. 1.26).

Server Host (Ім'я хоста) – значення localhost (локальний комп'ютер);

Port (Порт) – номер порту, вибраний під час налаштування сервера (за замовчуванням – 3306);

Usename (Ім'я користувача) – значення root;

Password (Пароль) – пароль користувача root. Натисніть OK.

3. У головному вікні MySQL Administrator у лівій області клацніть пункт Service Control (Керування сервісом).

4. У правій області вікна натисніть кнопку Stop Service (Зупинити сервіс). Сервер MySQL буде зупинено.

У наступному підрозділі ви дізнаєтесь, як запустити сервер MySQL за допомогою засобів адміністрування Windows.

Запуск та зупинення сервера MySQL з панелі керування

Якщо сервер MySQL був налаштований як сервіс Windows за допомогою майстра налаштування (див. підрозділ "Налаштування сервера MySQL") або за допомогою утиліти MySQL Administrator (див. підрозділ "Запуск та зупинка сервера MySQL за допомогою MySQL Administrator"), то запускати та зупиняти його можна використовувати компонент Служби панелі керування.

Щоб викликати компонент Служби, натисніть кнопку Пуск, в меню виберіть пункт Панель керування, потім на панелі керування двічі клацніть значок Адміністрація і, нарешті, у вікні засобів адміністрування двічі клацніть значок Служби. На екрані з'явиться вікно Служби (мал. 1.29) зі списком усіх локальних служб.

Мал. 1.29.Сервіс MySQL на панелі управління


У вікні Служби клацніть назву сервісу MySQL (назва визначається при створенні сервісу в майстрі налаштування або в MySQL Administrator). Потім натисніть потрібне посилання під назвою сервісу: Запустити службу, Зупинити службу або Перезапустити службу.

Після того, як сервер MySQL запущено, до нього можна підключитися. У наступних підрозділах ви дізнаєтесь, як це зробити.

Підключення до сервера з командного рядка

Щоб підключитися до сервера MySQL з командного рядка, виконайте наведені нижче дії.

1. Відкрийте вікно командного рядка Windows. Для цього натисніть кнопку Пуск, в меню виберіть пункт Виконати, у вікні Запуск програми введіть в поле Відкрити команду cmd і натисніть кнопку OK.

2. У командному рядку (див. мал. 1.25) введіть команду

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

(де<Имя компьютера>– це ім'я комп'ютера, на якому працює сервер) та натисніть клавішу Enter. Після появи запрошення Enter password (Введіть пароль) введіть пароль користувача.

Якщо потрібно підключитися до сервера MySQL, який працює на цьому ж комп'ютері, ім'я комп'ютера (localhost) можна не вказувати, наприклад

mysql -u root -p

Після підключення до сервера запрошення командного рядка зміниться на mysql> (рис. 1.30). Тепер можна приступати до роботи з базою даних: додавати таблиці, вводити та запитувати дані, реєструвати нових користувачів та ін.

Мал. 1.30.З'єднання з сервером MySQL з командного рядка


Щоб вимкнутись від сервера, просто наберіть у командному рядку команду

та натисніть клавішу Enter.

Альтернативний спосіб підключення до MySQL сервера надає графічна утиліта MySQL Query Browser.

Підключення до сервера за допомогою MySQL Query Browser

Утиліта MySQL Query Browser – інтерфейс для створення, редагування та виконання інструкцій SQL. Вона зручніша, ніж командний рядок. Якщо ви вирішили використовувати для роботи з базою даних MySQL Query Browser, для підключення до сервера виконайте такі дії.

1. Запустіть програму MySQL Query Browser (Пуск → Усі програми → MySQL → MySQL Query Browser). На екрані з'явиться вікно з'єднання із сервером (рис. 1.31).

Мал. 1.31.Вікно з'єднання з сервером MySQL


2. У вікні з'єднання з сервером введіть параметри з'єднання:

Server Host (Ім'я хоста) – ім'я комп'ютера, на якому працює сервер MySQL;

Port (Порт) – номер порту, вибраний при налаштуванні сервера (за замовчуванням – 330 6);

Username (Ім'я користувача) – ім'я користувача;

Password (Пароль) – пароль користувача;

Default Schema (Схема за замовчуванням) – ім'я бази даних, з якою ви будете працювати (це може бути як існуюча, так і нова база даних).

3. Натисніть кнопку OK. Якщо ви ввели ім'я нової бази даних, то в діалоговій панелі натисніть кнопку Yes (Так) для створення цієї бази даних.

Після підключення до сервера на екрані з'явиться головне вікно MySQL Query Browser (рис. 1.32). У ньому ви можете виконувати будь-які операції з базою даних: додавати таблиці, вводити та запитувати дані, реєструвати нових користувачів та ін.

Мал. 1.32.Головне вікно MySQL Query Browser


Увага!

Шрифт, який використовується в MySQL Query Browser для відображення SQL-запитів, не підтримує російські літери. Щоб вводити російські літери в тексти запитів, необхідно вибрати інший шрифт (наприклад, Arial або Book Antiqua). Для цього у головному вікні MySQL Query Browser відкрийте меню Tools (Сервіс) та виберіть Options (Параметри). У вікні Options (Параметри) у лівій області клацніть General Options (Загальні параметри) і у правій області в полі Code Font (Шрифт коду) виберіть зі списку потрібний шрифт. Натисніть кнопку Apply (Зберегти).

Щоб вимкнутись від сервера, просто закрийте вікно MySQL Query Browser.

На цьому ми закінчуємо знайомство з MySQL і переходимо до підбиття підсумків.

1.6. Резюме

У цьому розділі було розглянуто СУБД MySQL та графічні утиліти MySQL Administrator та MySQL Query Browser. Ви освоїли досить складну процедуру встановлення та налаштування сервера MySQL, навчилися керувати сервером та підключатися до нього. Ви також дізналися, як влаштовано реляційну базу даних і як спроектувати власну базу даних.

Отже, наступним етапом є побудова бази даних MySQL. Цьому присвячено другий розділ. У ній буде розказано, як створювати таблиці, вносити в них інформацію та знаходити потрібні відомості у базі даних.

Розділ 2
Управління базою даних за допомогою SQL

З цього розділу ви дізнаєтеся, як працювати з даними в СУБД MySQL, як визначати їх структуру, а також як додавати, змінювати та видаляти дані. Ці операції виконує SQL – універсальна мова структурованих запитів, що є стандартним засобом доступу до реляційних баз даних.

Для виконання SQL-команд ви можете використовувати будь-яку з численних клієнтських програм сервера MySQL. У цьому розділі не розглядатимуться додатки сторонніх розробників. Ви познайомитеся лише з програмами, створеними компанією MySQL AB: утилітою командного рядка mysql та графічною утилітою MySQL Query Browser.

В обох утилітах доступні всі операції з даними. У MySQL Query Browser зручно працювати з базою даних: її компоненти наочно представлені, можна безпосередньо редагувати дані (без використання SQL-оператора UPDATE), працювати із запитами, наприклад, будувати їх за допомогою спеціального інструменту (при цьому назви таблиць і стовпців вводити вручну не потрібно ), зберігати запити у файлі, експортувати результати запитів та багато іншого. Ви можете дізнатися про всі можливості MySQL Query Browser, звернувшись до документації російською мовою, знайти яку можна за посиланням http://dev.mysql.com/doc/query-browser/ru/index.html.

Спочатку ви дізнаєтеся, як виконувати SQL-команди в MySQL Query Browser та в командному рядку, а надалі буде розглянуто лише синтаксис SQL-команд.

2.1. Виконання SQL-команд

Перш ніж виконувати SQL-команди, необхідно підключитися до працюючого сервера MySQL (як це зробити, розповідалося в розділі 1). У цьому розділі ви дізнаєтесь, як створювати SQL-команди та передавати їх серверу для виконання.

Якщо ви використовуєте командний рядок, то для виконання SQL-команди введемо текст у вікні командного рядка і натиснемо клавішу Enter для відправки команди на сервер. Щоб уникнути проблем із кодуванням російськомовних даних, перед початком роботи з даними виконайте команду

SET NAMES CP866;

Результат виконання цієї команди ви бачите на рис. 2.1.

Мал. 2.1.Встановлення кодування у командному рядку


Команду SET NAMES необхідно повторювати за кожномупідключення до сервера за допомогою командного рядка. Ця команда вказує серверу, що ця клієнтська програма (утиліта mysql) використовує кодування CP-866 (це кодування командного рядка Windows), і сервер автоматично виконуватиме перетворення кодувань при обміні даними з клієнтським додатком.

Після зміни кодування ви можете вводити у командному рядку будь-які SQL-команди. Повідомлення про результати виконання команди, а також запитані дані виводяться безпосередньо у вікні командного рядка (рис. 2.2).

Мал. 2.2.Виконання SQL-запиту у командному рядку


Утиліта mysql дозволяє вводити і багаторядкові команди (на рис. 2.3, таким чином введена команда SHOW DATABASES). Якщо не введена точка з комою - ознака кінця команди, то при натисканні клавіші Enter утиліта не надсилає команду на сервер, а пропонує продовжити введення команди. Якщо ви бажаєте скасувати введення багаторядкової команди, наберіть \c (рис. 2.3).

Мал. 2.3.Багаторядкова команда


Якщо ви використовуєте MySQL Query Browser, то кодування встановлювати не потрібно – ця програма працює у кодуванні UTF-8 і сама повідомляє про це сервер. Однак у MySQL Query Browser існує проблема відображення російських літер у сфері запитів (області, куди вводиться текст SQL-команд, рис. 2.4). Для вирішення цієї проблеми необхідно змінити шрифт, який використовується в області запитів (як це зробити, розповідалося наприкінці попереднього розділу). Виконати зміну шрифту достатньо один раз.

Мал. 2.4.Виконання SQL-запиту у MySQL Query Browser


В області запитів можна ввести відразу кілька SQL-команд, як показано на рис. 2.4. Поточна команда (на одному з її рядків встановлено курсор) виділено білим кольором фону, решта команд відображена на світло-сірому фоні. Щоб виконати поточну команду, можна натиснути або кнопку Execute, розташовану праворуч від області запитів, або комбінацію клавіш Ctrl+Enter. Після виконання команди дані виводяться в області результатів, а повідомлення про результат виконання команди – в нижній частині цієї області.

Тепер, коли ви навчилися вводити SQL-команди, почнемо керувати даними за допомогою цих команд. Насамперед ми розглянемо команди, призначені до роботи з базою даних загалом.

2.2. Створення бази даних

У цьому розділі ви дізнаєтеся, як створити та видалити базу даних, змінити для неї кодування за умовчанням, вибрати поточну базу даних, а також переглянути список усіх баз на даному сервері MySQL.

Щоб створити базу даних, виконаємо команду

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

Наприклад, команда

CREATE DATABASE SalesDept;

створює базу даних із ім'ям SalesDept (Відділ продажів).

Якщо вам з будь-яких причин потрібно для нової бази даних встановити кодування за умовчанням, відмінне від кодування, вказаного при налаштуванні MySQL, то при створенні бази даних ви можете вказати потрібне кодування (character set) та/або правило порівняння (сортування) символьних значень :

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

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

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

Наприклад, якщо ви будете в нову базу імпортувати дані, що знаходяться в кодуванні CP-1251, то вкажемо це кодування під час створення бази даних таким чином:

CREATE DATABASE SalesDept

CHARACTER SET cp1251 COLLATE cp1251_general_ci;

Порада

Щоб переглянути список кодувань, що використовуються в MySQL, виконаємо команду SHOW CHARACTER SET; а щоб побачити список правил порівняння символьних значень – команду SHOW COLLATION; При цьому можна використовувати оператор LIKE: наприклад, щоб побачити всі правила порівняння для кодування CP-1251, виконаємо команду SHOW COLLATION LIKE %1251%; Закінчення «_ci» (case insensitive) у назві правил порівняння означає, що при порівнянні та сортуванні регістр символів не враховується, закінчення «_cs» (case sensitive) – регістр враховується, закінчення «_bin» (binary) – порівняння та сортування виконуються за числовими коди символів. Для більшості правил порівняння ви можете знайти опис (тобто порядок проходження символів, відповідно до якого будуть упорядковуватися текстові значення) на веб-сторінці http://www.collation-charts.org/mysql60/ .

Кодування, вказане при створенні бази даних, буде за замовчуванням використовуватися для таблиць цієї бази, однак ви можете встановити й інше кодування.

Змінити кодування та/або правило порівняння символьних значень для бази даних можна за допомогою команди

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

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

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

При цьому кодування, що використовується в існуючих таблицях бази даних, залишається колишнім; змінюється лише кодування, яке призначається за замовчуванням для новостворених таблиць.

Щоб видалити непотрібну або помилково створену базу даних, виконайте команду

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

Увага!

Видалення бази даних – дуже відповідальна операція, оскільки вона призводить до видалення всіх таблиць цієї бази даних, що зберігалися в таблицях. Перед видаленням рекомендується створити резервну копію бази даних.

Одну з баз, створених на даному сервері MySQL, ви можете вибрати як поточну базу даних за допомогою команди

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

Наприклад:

USE SalesDept;

Після цього можна виконувати операції з таблицями цієї бази даних, не додаючи ім'я бази у вигляді префікса до імені таблиці. Наприклад, для звернення до таблиці Customers (Клієнти) бази даних SalesDept (Відділ продажу) можна замість SalesDept.Customers писати просто Customers. Вказавши поточну базу, ви можете звертатися і до таблиць інших баз даних, проте використання імені бази даних у вигляді префікса обов'язково. Вибір поточної бази зберігається до від'єднання від сервера або до вибору іншої поточної бази даних.

Щоб побачити список усіх баз, що існують на даному сервері MySQL, виконайте команду

SHOW DATABASES;

Навіть якщо ви ще не створили жодної бази даних, в отриманому списку ви побачите три системні бази даних.

INFORMATION_SCHEMA – інформаційна база даних, з якої ви можете отримати відомості про всі інші бази, про структуру даних у них і про всілякі об'єкти: таблиці, стовпці, первинні та зовнішні ключі, права доступу, збережені процедури, кодування та ін. Ця база даних доступна тільки для читання і є віртуальною, тобто вона не зберігається у вигляді каталогу на диску: вся інформація, яку запитують з цієї БД, надається динамічно сервером MySQL.

MySQL - службова база даних, яку використовує сервер MySQL. У ній зберігаються відомості про зареєстрованих користувачів та їхні права доступу, довідкова інформація та ін.

Test – порожня база даних, яку можна використовувати для спроби пера або просто видалити.

Отже, ви освоїли основні операції, що виконуються з базою даних як єдиним цілим: команди CREATE DATABASE (створення), ALTER DATABASE (зміна), DROP DATABASE (видалення), USE (вибір поточної бази даних) та SHOW DATABASES (перегляд списку баз даних) . Далі ми розглянемо операції із таблицями. При цьому вважатимемо, що ви вибрали якусь базу даних як поточну і працюєте з її таблицями.

2.3. Робота з таблицями

У цьому розділі ви дізнаєтесь, як створити, змінити та видалити таблицю, як переглянути інформацію про неї та список усіх таблиць у поточній базі даних. Почнемо з найскладнішої команди – створення таблиці.

Створення таблиці

Щоб створити таблицю, виконайте команду, подану у лістингу 2.1.

Лістинг 2.1.Команда створення таблиці

CREATE TABLE<Имя таблицы>

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

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

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

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


Як ви бачите, команда створення таблиці може включати безліч параметрів, проте багато з них задавати необов'язково (у лістингу 2.1 такі параметри укладені квадратні дужки). Насправді до створення таблиці достатньо вказати її ім'я, і ​​навіть імена і типи всіх стовпців; інші параметри використовуються у разі потреби.

Розглянемо спочатку кілька прикладів, які допоможуть вам освоїти команду CREATE TABLE і відразу, не вивчаючи її численних параметрів, почати створювати власні (прості структурою) таблиці.

Припустимо, що ми будуємо базу даних, яку спроектували у розділі 1. Використовуючи команди з попереднього розділу, ми створили порожню базу даних SalesDept (Відділ продажу) та вибрали її як поточну. Тепер створимо три таблиці: Customers (Клієнти), Products (Товари) та Orders (Замовлення). У лістингу 2.2 представлено команду створення таблиці Customers.

Лістинг 2.2.Команда створення таблиці Customers

CREATE TABLE Customers

(ID SERIAL,

name VARCHAR(100),

phone VARCHAR(20),

address VARCHAR(150),

rating INT,

PRIMARY KEY (id))


У цій команді використовувалися параметри: по-перше, назва таблиці і, по-друге, назви та типи стовпців, з яких складатиметься таблиця (див. також табл. 1.1 у розділі 1).

ID – ідентифікатор запису. Цьому стовпцю ви призначили тип SERIAL, що дозволяє автоматично нумерувати рядки таблиці. Ключове слово SERIAL розшифровується як BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE. Це означає, що в стовпець можна вводити великі цілі (BIGINT) позитивні (UNSIGNED) числа, при цьому автоматично контролюється відсутність невизначених значень (NOT NULL UNIQUE). Якщо при додаванні рядка в таблицю ви не вкажете значення цього стовпця, то програма MySQL внесе до цього стовпець черговий порядковий номер (AUTO_INCREMENT).

Примітка

NULL – це константа, що вказує на відсутність значення. Якщо в стовпці знаходиться значення NULL, то вважається, що жодного певного значення для цього стовпця не встановлено (тому ми також називаємо NULL невизначеним значенням). Не слід плутати NULL з порожнім рядком («») або числом 0. Значення NULL обробляються особливим чином: більшість функцій та операторів повертають NULL, якщо один із аргументів дорівнює NULL. Наприклад, результат порівняння 1 = 1 – справжнє значення (TRUE), а результат порівняння NULL = NULL – невизначене значення (NULL), тобто два невизначені значення не вважаються рівними.

Nam – ім'я клієнта, phone – номер телефону та address – адреса. Ви надали цим стовпцям тип VARCHAR, оскільки вони будуть містити символьні значення. У дужках вказується максимальна кількість символів у значенні стовпця.

По-третє, ви зазначили, що стовпець id буде первинним ключем таблиці, включивши до команди створення таблиці визначення PRIMARY KEY (id).

По-четверте, ви поставили для цієї таблиці два опціональні параметри. Параметр ENGINE визначає тип таблиці. Таблиці Customers ви надали тип InnoDB, оскільки тільки цей тип забезпечує підтримку цілісності зв'язків між таблицями (детальніше про типи таблиць буде розказано в пункті «Опціональні властивості таблиці»). Параметр CHARACTER SET визначає кодування за промовчанням для даних у таблиці. Оскільки ви не задали кодування окремо для стовпців name, phone і address, дані в цих стовпцях будуть зберігатися в кодуванні UTF-8, яке призначене як стандартне кодування для таблиці Customers.

Наступний приклад, який ми розглянемо – команда створення таблиці Products (Товари), подана у лістингу 2.3.

Лістинг 2.3.Команда створення таблиці Products

CREATE TABLE Products

(ID SERIAL,

опис VARCHAR(100),

details TEXT,

price DECIMAL(8,2),

PRIMARY KEY (id))

ENGINE InnoDB CHARACTER SET utf8;


Ця команда дуже схожа на команду створення таблиці Customers і відрізняється від неї лише назвою таблиці та набором стовпців. Стовпці id (номер товару) та description (найменування товару) таблиці Products мають вже знайомі нам типи. Стовпець details (опис) має тип TEXT. Цей тип зручно використовувати замість типу VARCHAR, якщо стовпець міститиме довгі значення: сумарна довжина значень всіх стовпців з типом VARCHAR обмежена 65535 байтами для кожної таблиці, а на загальну довжину стовпців з типом TEXT обмежень немає. Недоліком типу TEXT є неможливість включати такі стовпці до зовнішнього ключа таблиці, тобто створювати зв'язок між таблицями на основі цих стовпців.

Стовпець price (ціна) має тип DECIMAL, призначений для зберігання грошових сум та інших значень, для яких важливо уникнути помилок округлення. У дужках ми вказали два числа: перший з них визначає максимальну кількість цифр у значенні стовпця, друге – максимальну кількість цифр після десяткового роздільника. Іншими словами, ціна товару може містити до шести цифр у цілій частині (6 = 8–2) та до двох цифр у дробовій частині.

І, нарешті, останній приклад – команда створення таблиці Orders (Замовлення), подана у лістингу 2.4.

Лістинг 2.4.Команда створення таблиці Orders

CREATE TABLE Orders

(ID SERIAL,

date DATE,

product_id BIGINT UNSIGNED NOT NULL,

qty INT UNSIGNED,

amount DECIMAL(10,2),

customer_id BIGINT UNSIGNED,

PRIMARY KEY (id),

FOREIGN KEY (product_id) REFERENCES Products (id)

ON DELETE RESTRICT ON UPDATE CASCADE,

FOREIGN KEY (customer_id) REFERENCES Customers (id)

ON DELETE RESTRICT ON UPDATE CASCADE)

ENGINE InnoDB CHARACTER SET utf8;


Особливістю таблиці Orders є наявність зовнішніх ключів: стовпець product_id (товар) містить номери товарів із таблиці Products, а стовпець customer_id (клієнт) – номери клієнтів із таблиці Customers (див. також табл. 1.2 у розділі 1). Оскільки номери товарів та клієнтів є великими цілими позитивними числами, стовпцям product_id та customer_id ми призначили тип BIGINT UNSIGNED.

Далі, щоб забезпечити автоматичну підтримку цілісності зв'язків (про цілісність ми розповідали у розділі 1), ми повідомили програму MySQL, якому первинному ключу відповідає кожен зовнішній ключ. Так, конструкція FOREIGN KEY (customer_id) REFERENCES Customers (id) означає, що у стовпці customer_id можуть міститися лише значення зі стовпця id таблиці Customers та невизначені значення (NULL), інші значення заборонені. Для стовпця product_id ми задали аналогічне обмеження і надали стовпцю властивість NOT NULL, щоб заборонити реєструвати замовлення з невизначеним товаром. Додатково ми вказали для кожної із зв'язків правила підтримки цілісності (їх ми також розглядали у розділі 1). Правило ON DELETE RESTRICT означає, що не можна видалити запис про клієнта, якщо цей клієнт має зареєстроване замовлення, і не можна видалити запис про товар, якщо цей товар був кимось замовлений. Правило ON UPDATE CASCADE означає, що за зміни номера клієнта у таблиці Customers чи номера товару у таблиці Products відповідні зміни вносяться у таблицю Orders.

Примітка

Зверніть увагу, що таблицю Orders ми створили в останню чергу, оскільки первинні ключі в таблицях Customers і Products повинні бути створені раніше, ніж зовнішні ключі, що посилаються на них, в таблиці Orders. Втім, можна було б створити таблиці без зовнішніх ключів у будь-якій послідовності, а потім додати зовнішні ключі за допомогою команди ALTER TABLE, яку ми розглянемо у підрозділі "Зміна структури таблиці".

У прикладах ми розглянули лише деякі параметри команди створення таблиці. Тепер ми перерахуємо всі основні параметри, які можуть знадобитися при створенні таблиць. У пункті «Типи даних у MySQL» йтиметься про типи стовпців, у пункті «Властивості стовпців» – про налаштування ключових стовпців і, нарешті, у пункті «Ключові стовпці та індекси» – про опціональні властивості таблиці.

Типи даних у MySQL

Як ви вже знаєте, під час створення таблиці потрібно вказати тип даних для кожного стовпця. У MySQL передбачено безліч типів даних для зберігання чисел, дати/часу та символьних рядків (текстів). Крім того, існують типи даних для зберігання просторових об'єктів, які в цій книзі розглядатися не будуть.

Розглянемо числові типи даних.

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

Бітове число, що містить задану кількість бітів. Якщо кількість бітів не вказано, число складається з одного біта.

Ціле число в діапазоні від -128 до 127, або (якщо зазначено властивість UNSIGNED) від 0 до 255.

BOOL або BOOLEAN.

Є синонімами до типу даних TINYINT(1) (число в дужках – це кількість цифр, що відображаються, див. примітку нижче). При цьому ненульове значення сприймається як справжнє (TRUE), нульове – як хибне (FALSE).

Ціле число в діапазоні від -32 768 до 32 767, або (якщо зазначено властивість UNSIGNED) від 0 до 65 535.

Ціле число в діапазоні або від -8388608 до 8388607, або (якщо зазначено властивість UNSIGNED) від 0 до 16777215.

INT чи INTEGER.

Ціле число в діапазоні або від -2147483648 до 2147483647, або (якщо зазначено властивість UNSIGNED) від 0 до 4294967295.

Ціле число в діапазоні або від -9223372036854775808 до 9223372036854775807, або (якщо зазначено властивість UNSIGNED) від 0 до 184467440757.

Синонім виразу BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE (велике ціле число без знака, що приймає унікальні значення, що автоматично збільшуються; значення NULL заборонені). Використовується для автоматичної генерації унікальних значень у стовпчику первинного ключа. Опис властивостей UNSIGNED та AUTO_INCREMENT ви знайдете в цьому підрозділі, а властивостей NOT NULL та UNIQUE – у пункті «Властивості стовпців».

Примітка

Для всіх цілочисельних типів даних, крім BOOL (BOOLEAN) і SERIAL, можна в дужках вказати кількість цифр, що відображаються, яка використовується спільно з параметром ZEROFILL: якщо число містить меншу кількість цифр, то при виведенні воно доповнюється зліва нулями. Наприклад, якщо стовпець таблиці визначено як INT(5) ZEROFILL, значення «1234567» і «12345» відображаються «як є», а значення «123» – як «00123». Для типу даних BIT у дужках вказується розмір числа, тобто максимальна кількість бітів, що зберігаються.

Нижче наведено список найкорисніших і найчастіше використовуваних команд MySQLіз прикладами.

mysql на початку рядка означає, що команда виконується після входу в MySQL.

Символ # або $ на початку рядка означає, що команда виконується з командного рядка.

Щоб перевірити статус сервера MYSQLвиконайте:

для FreeBSD:

# service mysql-server status

в CentOS/RHEL:

# service mysqld status

MySQLз консолі, якщо сервер MySQLзнаходиться на тому ж хості:

Щоб підключитися до сервера MySQLз консолі, якщо сервер MySQLзнаходиться на віддаленому хості db1.example.com:

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

Робота з базами, таблицями – перегляд, видалення, редагування записів. Консоль

Створити базу даних на MySQLсервері:

Mysql create database

Показати список усіх баз даних на сервері MySQL:

Mysql use;

Відобразити всі таблиці у базі даних:

Mysql show tables;

Переглянути формат таблиці в базі:

Mysql describe;

Видалити базу:

Mysql drop database;

Видалити таблицю з бази:

Mysql drop table;

Показати весь вміст таблиці:

Mysql SELECT * FROM;

Відобразити стовпці та вміст стовпців у вибраній таблиці:

Mysql show columns from ;

Відобразити рядки у певній таблиці, що містять "whatever":

Mysql SELECT * FROM WHERE = "whatever";

Відобразити всі записи у певній таблиці, що містять "Bob" та телефонний номер "3444444:

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

Відобразити всі записи, НЕмістять ім'я "Bob" та телефонний номер "3444444", відсортовані по полю phone_number:

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

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

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

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

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

Використовуйте регулярні вирази ("REGEXP BINARY") для пошуку записів. Наприклад, для регістро-незалежного пошуку - знайти всі записи, що починаються з літери А:

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 alter table drop column;

Додавання колонки до бази даних:

Mysql alter table add column varchar (20);

Зміна імені стовпця:

Mysql alter table change varchar (50);

Створити стовпець з унікальним ім'ям, щоб уникнути дублікатів у назвах:

Mysql alter table add unique ();

Зміна розміру стовпця:

Mysql alter table modify VARCHAR(3);

Видалення стовпця з таблиці:

Mysql alter table drop index;

Mysql LOAD DATA INFILE " /tmp/filename.csv " replace INTO TABLE FIELDS TERMINATED BY "," LINES TERMINATED BY "n" (field1,field2,field3);

Користувачі, паролі сервера MySQL – додавання, зміна користувачів та паролів. Консоль

Створення нового користувача – підключення до сервера MySQLпід root, переключення до бази даних, додавання користувача, оновлення привілеїв:

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

Змін користувача пароля з консолі на віддаленому хості db1.example.org:

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

Зміна пароля користувача з консолі MySQL- Підключення під root, оновлення пароля, оновлення привілеїв:

# mysql -u root -p mysql SET PASSWORD FOR "user"@"hostname" = PASSWORD("passwordhere"); mysql flush privileges;

Відновлення/зміна пароля root сервера MySQL- зупинка MySQL, запуск без таблиць привілеїв, підключення під root, встановлення нового пароля, вихід та перезапуск MySQL.

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

Set root password if there is on root password.

# mysqladmin -u root password newpassword

Оновлення пароля root:

# mysqladmin -u root -p oldpassword newpassword

Встановлення права на підключення до сервера з хоста localhost з паролем "passwd" - підключення підroot, переключення до бази даних, встановлення привілеїв, оновлення привілеїв:

# mysql -u root -p mysql use mysql; mysql grant usage on *.* to bob @localhost identified by "passwd"; mysql flush privileges;

Встановлення привілеїв користувачу використання бази даних - підключення під root, переключення до бази даних, встановлення привілеїв, оновлення привілеїв:

# mysql -u root -p mysql use 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;

Mysql grant all privileges on databasename .* to username @localhost; mysql flush privileges;

Оновлення інформації у базі даних:

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

Видалення рядка у таблиці:

Mysql DELETE from where = "whatever";

Оновлення привілеїв у базі даних:

Mysql flush privileges;

Резервні копії – створення, відновлення бд. Консоль

Створити резервну копію (dump) всіх баз даних у файл alldatabases.sql:

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

Створити резервну копію однієї бази даних у файл databasename.sql:

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

Створити резервну копію однієї таблиці у файл databasename.tablename.sql:

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

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

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

Створення таблиць БД. Консоль

маленькими літерами вказані імена шпальт;
ПЕРЕПИСНИМИ літерами - типи та атрибути столців;
в (дужках) - значення типу стовпця.

Створити таблицю, приклад 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(25), групи VARCHAR(15), datestamp DATE, timestamp TIME, pgpemail VARCHAR(255));

Створити таблицю, приклад 2:

Mysql create table (personid INT(50) NOT NULL AUTO_INTCREMENT PRIMARY KEY, перше ім'я VARCHAR(35), middlename VARCHAR(50), останнєname VARCHAR(50) default "bato");

Від автора:дівчино, у вас машина не заводиться? Може з штовхача спробуємо? Я допоможу! Чи не знаєте, як це? "З штовхача" заводили тільки сервер СУБД через cmd? Значить, як запустити MySQL через командний рядок ви знаєте, а автомобіль навіть не здогадуєтеся. Мадмуазель, ви «дивна» блондинка!

Дивина в описі MySQL

Під час підготовки кожної статті мені доводиться «ґрунтовно» шерстити інтернет у пошуках довідкових матеріалів з тієї чи іншої «сайтобудівної» дисципліни. Здебільшого «наук» у Мережі опубліковано безліч докладних посібників та підручників, але тільки не з MySQL.

Звичайно, є гідні освітні, але в основній частині СУБД наводяться лише приклади написання команд, і навіть без вказівки синтаксису. У такій ситуації будь-якому чайнику зрозуміти, наприклад, як підключитися до MySQL через командний рядок, майже нереально.

Щоб знайти відповідь новачкові, доведеться перешерстити з десяток тематичних форумів, де професійні розробники (корчучи із себе чи не «академіків») зійдуть до того, щоб хоч щось нормально пояснити початківцю.

Варто розуміти, що справжньому адміну слід знати всі способи запуску та роботи із сервером БД. Зрозуміло, що програмні оболонки – найзручніший метод, але вони не завжди можуть опинитися «під рукою». Тому знання того, як включити MySQL через командний рядок, неодноразово врятує і дані сайту, і вашу репутацію фахівця (якщо збираєтеся займатися веб-розробкою професійно).

Розглянемо цю тему докладніше. І не корчіть, будь ласка, міни, якщо щось зі сказаного в даному матеріалі здасться вам таким же простим, як заводити автомобіль з штовхача.

Запускаємо cmd

Для запуску MySQL з командного рядка спочатку активуємо утиліту (cmd), яка входить у стандартний набір Windows. Зробити це можна кількома способами:

Клавіатурним поєднанням Win+R, а потім у діалозі «Виконати», що з'явився, ввести cmd

Через панель "Пуск".

Крім цього, MySQL може поставлятися з «рідною» оболонкою. Наприклад, якщо ви встановлюєте сервер БД на локальну машину як самостійну програму, яка не входить в набір для джентльменів.

Рідний MySQL командний рядок запускається як і звичайна cmd. Відмінність у роботі обох утиліт виявиться пізніше. Про це ми поговоримо у наступному розділі.

Робота з командним рядком

Спочатку розберемося із вбудованою в операційну систему утилітою. Розглянемо, як запустити MySQL із командного рядка Windows. Для цього потрібно:

Шлях до папки у файловій системі ПК, куди ви встановили сервер БД.

Обліковий запис користувача – логін та пароль.

Якщо ви працюєте з Денвером, то виконуваний файл знаходиться на віртуальному диску, який створюється після запуску локального сервера, цим шляхом: Z:\usr\local\mysql-5.5\bin

Як я вже сказав, командний рядок MySQL Denwer запускається через cmd OC. Тобто спочатку запускаємо її, а потім прописуємо шлях до виконуваного файлу СУБД. Пароль та логін для доступу можна вказувати спочатку або після активації утиліти MySQL. Як на мене, то зручніше прописувати все відразу: Z: usr local mysql-5.5 bin mysql.exe -u root

Ми зайшли на сервер СУБД під правами адміністратора. У мене пароль root не встановлений, тому його значення не вказано. Після того, як ми запустили MySQL з командного рядка, знизу з'явиться довідкова інформація про версію утиліти, сервера та id підключення.

Тепер давайте перевіримо правильність проведеної процедури та «силу» своїх прав. Наприклад, виведемо список усіх таблиць, які зараз використовуються на сервері:

SHOW OPEN TABLES;

SHOW OPEN TABLES;

MySQL у командному рядку Windows видав нам лише таблиці, що входять до складу системної бази. Це тому, що всі дані, що зберігаються в ній, використовуються у роботі запущеного екземпляра СУБД. Таким чином, ми дізналися, що сервер працює і що ми зайшли на нього з правами адміністратора, як і планували.

Схема роботи з оболонкою, що встановлюється разом із системою управління БД, трохи відрізняється. Щоб «відчути» все це на собі, активуємо MySQL через цей командний рядок.

Після запуску з'являється вікно, в якому потрібно відразу вводити пароль. В іншому весь процес взаємодії з утилітою однаковий.

Робота з іншими програмами

Склад стандартного набору коштів СУБД не обмежується одним «екзешником» сервера. Їхній асортимент можна переглянути, заглянувши в ту ж папку, де «коштує» сервер БД. Наприклад запустимо утиліту dump MySQL через командний рядок.

Спочатку переходимо на віртуальний диск, потім за допомогою команди cd до тієї папки, де зберігається утиліта. Нагадаю, що вона призначена для створення резервних копій баз.

На наступному кроці перед тим, як зайти в MySQL через командний рядок, нам потрібно вказати обліковий запис та пароль до нього. Приклад використання команди mysqldump:

mysqldump -uroot world>C:\Users\домашній\Desktop\dump\copy.sql

Щоб команда спрацювала коректно, зазначена директорія на момент виконання має бути створена. Інакше утиліта поверне повідомлення, що такого шляху немає.

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

Подібним чином запускаються інші утиліти, що входять до складу стандартного набору. З їх допомогою ви зможете виконувати всі основні операції з адміністрування СУБД: керувати ролями, створювати бекапи, редагувати вміст сховищ. А також встановлювати службу MySQL із командного рядка. Загалом все те, без чого сервер БД не заведеться «з штовхача».

Для Win 32 вибираємо дистрибутив: Windows (x86, 32-bit), Zip-Archive.

Для Win 64: Windows (x86, 64-bit), Zip-Archive.

Після натискання на кнопку Download ви побачите форму для реєстрації, її можна пропустити, натиснувши посилання внизу. No thanks, just take me to the downloads.

2. Створюємо папку установки. Наприклад . І розпаковуємо в неї зміст архіву таким чином, щоб папки bin, data, docs та іншібули докорінно папки установки.

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

  • my-small.ini - підійде тим, хто використовує MySQL час від часу і не хоче, щоб сервер займав багато ресурсів.
  • my-medium.ini - теж не вимоглива до ресурсів конфігурація, але підійде тим, хто використовує MySQL на постійній основі (добрий вибір для домашнього веб-сервера).
  • my-large.ini та my-huge.ini - для систем, що використовуються як виділений MySQL сервер. Втім, my-large.ini можна використовувати для домашнього сервера, якщо потрібна додаткова продуктивність MySQL (512 Мб оперативної пам'яті не так вже й багато за нинішніх часів).
  • my-innodb-heavy-4G — для виділених серверів, що мають від 4 Гб оперативної пам'яті та використовують лише таблиці типу InnoDB.

У цьому прикладі я вибрав за основу my-medium.ini. Перейменовуємо його в my.ini і розміщуємо в корені папки установки ( C:\Program Files\MySQL\MySQL Server 5.5).

Відкриваємо для редагування (у звичайному Блокноті) і відразу після рядка дописуємо два параметри:

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

Зверніть увагу, що у шляхах використовується прямий слеш (/), а не зворотний (\).

basedir – це шлях до папки установки.

datadir — шлях до папки даних (де зберігаються всі бази даних). Іноді є сенс розмістити дані на окремому диску, щоб підвищити продуктивність або забезпечити надійність.

Про всяк випадок наводжу фрагмент конфігураційного файлу, після внесення змін:

# 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_bu

4. Наступний етап - додати шлях C:\Program Files\MySQL\MySQL Server 5.5\binу змінне середовище PATH, щоб спростити запуск MySQL з командного рядка. Для цього відкриваємо властивості системи -> Додаткові параметри системи -> на закладці Додатково в самому низу кнопка «Змінні середовища ...». У вікні, що відкриється, перегортаємо системні змінні поки не знайдемо Path. Виділяємо цей рядок та натискаємо «Змінити…». Наприкінці рядка дописуємо свій шлях, зберігаючи наявні параметри:

Зверніть увагу, що шляхи поділяються крапкою з комою. Переконайтеся, що на початку та в кінці вашого шляху точка з комою поставлена.

5. Перед тим як здійснити пробний пуск, відкриваємо вхідний порт TCP 3306 у брандмауері Windows:

Якщо в системі встановлено додатковий брандмауер, то в ньому також необхідно відкрити порт TCP 3306 для підключення.

6. Тепер здійснюємо тестовий запуск. У командному рядку, запущеному від імені адміністратора (це обов'язково, якщо на Сімерці або Вісті включено UAC), виконуємо:

Mysqld --console

На екрані буде виведено кілька рядків. Якщо запуск пройшов успішно, останній рядок буде виглядати приблизно так:

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

Залишаємо це вікно відкритим і відкриваємо ще одне вікно командного рядка, в якому вводимо:

Mysql -u root

Якщо підключення пройшло без помилок, ви побачите запрошення командного рядка: mysql>

Подивимося, які бази у нас є:

Show databases;

Крапка з комою в кінці SQL-запиту ОБОВ'ЯЗКОВА!

Відповідь команди:

Тепер ми остаточно переконані, що сервер працює.

7. Переходимо до наступного етапу – необхідно встановити пароль адміністратора MySQL (користувач root). За промовчанням пароль не встановлено, і це потрібно виправити. У тому ж таки вікні MySQL вводимо наступні команди:

Use mysql UPDATE user SET password = PASSWORD("ваш_пароль") WHERE user = "root";

Перевіряємо результат:

SELECT user, host, password FROM user;

Як видно на скріншоті, колонка password заповнена, значить пароль встановлений.

Перед виходом виконуємо команду:

FLUSH PRIVILEGES;

Тепер під час підключення необхідно вводити пароль. Для цього використовуємо ключ -p:

Mysql -u root -p

Для завершення роботи MySQL виконуємо:

Mysqladmin -u root -p shutdown

8. Останній етап - запуск MySQL як системна служба Windows.

Переконайтеся, що у системі немає активних процесів MySQL.

У командному рядку, запущеному від імені адміністратора, виконуємо:

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

Шлях до mysqld необхідно вказувати повністю (навіть якщо його прописано в PATH)!

Для запуску служби відкриваємо «Керування комп'ютером» і вручну запускаємо службу MySQL:

Або простіше через командний рядок:

Net start mysql

Для видалення служби попередньо її зупиняємо:

Net stop mysql

і виконуємо:

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

Від автора:знову заблукали, і не знаєте, як зайти до MySQL? Чи не ви перший! Збирайте всіх, хто заблукав, і зараз вирушимо прямо в гості до неї. До кого до неї? До найпопулярнішої СУБД всесвітнього павутиння!

Де в Денвері знаходиться MySQL

Мається на увазі не столиця штату Колорадо в США, а пакет програм для створення та тестування програм на PHP. До складу набору для "джентльменів" входить локальний сервер Apache, MySQL сервер та оболонка phpMyAdmin. Саме за допомогою даного програмного пакета найчастіше «новачки» пізнають усі тонкощі роботи із цією системою управління БД.

Перед тим, як зайти в MySQL через браузер, потрібно запустити локальний сервер, потім в адресному рядку набрати localhost, і в вікні «Ура, запрацювало!». У розділі утиліти виберіть phpMyAdmin.

Після чого опинитеся там-таки (у phpMyAdmin).

Проходимо до баз даних через «лабіринт»

Ми з вами відправимося в «дрімаючий» ліс, і постараємося через нього «пробратися» до сервера баз. Не подумайте, що ми від когось ховаємося, просто зараз ми будемо діяти як . Поїхали!

Перед тим, як зайти в MySQL через командний рядок, слід з'ясувати, де знаходиться головна директорія баз даних. Якщо ви використовуєте СУБД у «чистому» вигляді без «домішок» (поза «джентльменським» набором), то коренева папка сервера розташована тут: C: Program Files MySQL MySQL Server 5.5 bin mysql.exe

Якщо ви використовуєте Денвер, то фал знаходиться по цьому шляху: Z:\usr\local\mysql-5.5\bin\mysql.exe,

де Z – це віртуальний диск, який створюється після запуску локального веб-сервера. У вас може бути під іншим ім'ям (точніше, літерою).

Нас цікавить саме файл mysql.exe. Запустимо його на виконання, вказавши ім'я сервера баз даних, пароль та користувача, під яким зайдемо до MySQL.

Як включити MySQL через командний рядок: заходимо до «Пуску», серед стандартних програм вибираємо «Командний рядок». Запускаємо утиліту, і з цього моменту опишемо всю процедуру "ходіння" в дрімучому лісі покроково, щоб вся група "заблукали" не загубилася ще раз.

У чорне вікно CMD (командного рядка) вводимо шлях, де зберігається файл MySQL, що виконується, а поруч вказуємо ім'я користувача СУБД і пароль. Так як у нас локальний сервер, ми вводимо після ідентифікатора і ім'я користувача root без пароля.

Насправді це неправильно, і для кожного користувача сервера MySQL має бути встановлений пароль. Більш детально всі питання безпеки СУБД ми розглянемо в одній із наступних публікацій.

Ось весь шматок «коду»: Z:\usr\local\mysql-5.5\bin\mysql.exe -u root

Якщо все пройшло успішно, то нижче у вікні командного рядка має з'явитися інформація про версію запущеного сервісу, рік випуску та іншу «непотрібну» інформацію.

Тепер, щоб перевірити правильність підключення, введемо після оператора mysql> запит, який відобразить всі бази даних, що зберігаються на сервері. Код запиту:

show databases;

Не забувайте наприкінці запиту ставити крапку з комою, інакше система видасть повідомлення про помилку. Після введення запиту та натискання на клавішу «Enter» ми отримали список усіх баз, що зберігаються на сервері СУБД:

Але цього мало. Давайте «копнем» ще глибше у структуру. Розглянемо, як зайти до бази даних MySQL та отримати список усіх її таблиць. Нагадаю, що зараз ми вже авторизовані на сервері, тому нам потрібно буде лише ввести ще один запит:

show tables from db1;

show tables from db1;

db1 – це ім'я потрібної бази.

На скріншоті бачимо, що запитувана база даних містить лише одну таблицю.

Копаємо глибше!

Як кажуть, «апетит» надходить після отримання результатів виконання коду. Тому намагатимемося копнути ще глибше, щоб отримати дані, які зберігаються в таблиці. Перед тим, як увійти в MySQL ще раз, наведемо приклад SQL-запиту, за допомогою якого ми зможемо здійснити задумане:

SELECT * FROM animal;

SELECT * FROM animal;

Вводимо запит, запускаємо виконання і…. Чомусь сервер видав нам помилку.

І все тому, що ми забули вказати MySQL, яка з нас нас цікавить. Ось сервер і «лається», що жодна з БД не виділена. Це ще раз доводить, що робота з СУБД через командний рядок відрізняється від взаємодії з нею через програмну оболонку.

У phpMySQL даний запит був би успішно виконаний і сервер повернув вибірку з усіх рядків, що містяться в таблиці, що запитується.

Виправимо наш загальний недогляд (свою провину завжди важко визнавати), і перед тим, як увійти в MySQL через консоль знову, підготуємо «специфічний» запит, за допомогою якого ми вкажемо системі потрібну БД:

USE db1;

Після введення даного рядка та його виконання сервер виведе повідомлення, що підтверджує, що потрібна база даних виділено.

І тепер введемо та запустимо запит на вибірку всіх даних з таблиці animal ще раз. «Хай будуть дані!» - Сказав адміністратор, і запустив на виконання SELECT. Докопалися до бази db1 і отримали вміст таблиці animal. Недаремно перед тим, як увійти в базу даних MySQL, ми провели цілий «ритуал» і написали правильне «заклинання» мовою SQL.

Що ще можна накопати?

Вглиб ми докопалися до самого дна MySQL. Тепер давайте «копнем» трохи убік. Які відомості можна отримати через командний рядок, опитуючи MySQL? Бажаєте дізнатися про структуру таблиці, типи даних всіх стовпців, первинний ключ? Будь ласка! Запустіть цей запит на виконання:

describe animal;

describe animal;

Іноді, щоб знати, як увімкнути сервер MySQL, потрібно отримати список усіх зареєстрованих користувачів СУБД. Для цього використовується наступний запит.