Чому не запускається MySQL – чиним СУБД самостійно

19

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

Використання теорії «чужих помилок»

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

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

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

Особливості синтаксису

Для прикладу візьмемо один, і виконаємо його в програмній оболонці, яку часто використовуємо. А також запустимо його в командному рядку. Таким чином ми з’ясуємо особливості синтаксису MySQL, «панують» у кожному з варіантів. Почнемо, як велить традиція, з phpMySQL. Але спочатку запит, написаний за всіма «канонами» SQL:

SELECT * FROM country WHERE name=Aruba;

Тепер введемо його і виконаємо у програмі:

Чому не запускається MySQL – чиним СУБД самостійно

Як бачимо, додаток «свариться» на невідповідний синтаксис. Правильно:

SELECT * FROM `country` WHERE name=’Aruba’;

Чому не запускається MySQL – чиним СУБД самостійно

В phpMyAdmin (щоб не казали потім «не вдалося запустити MySQL») назва стовпців екрануються гравісом, а всі вказані значення – одинарними лапками. До речі, гравіс знаходиться над клавішею літери «Е».

Насправді використання грависов не є обов’язковим. Вони прописуються програмою автоматично згенерованих запитах. Помилки синтаксису в командному рядку

Тепер переходимо в командний рядок, і спробуємо запустити варіант запиту, коректний для phpMyAdmin. Тут нас відразу підстерігає помилка, оскільки ми не виділили жодної БД.

Чому не запускається MySQL – чиним СУБД самостійно

Виправимо це:

USE world;

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

Але що знову пішло не так, і MySQL чекає від нас вводу додаткових параметрів. Це тому, що ми забули поставити крапку з комою. Хоча вона не є обов’язковою у phpMyAdmin.

Чому не запускається MySQL – чиним СУБД самостійно

До речі (поки ми перебуваємо в CMD) однією з причин, чому не вдається запустити службу MySQL з командної рядки, може бути порушення синтаксису команди входу. «Неправильний» приклад:

Чому не запускається MySQL – чиним СУБД самостійно

З-за пробілу між параметром –p і значенням пароля система СУБД просить користувача ввести пароль ще раз. Але потім його значення не приймає. Нагадаю, що все з-за одного єдиного пробілу. Правильна написана команда виглядає наступним чином: Z:\usr\local\mysql-5.5\bin\mysql.exe -u roman –рзначение паролю

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

Інші поширені помилки

Ось ще декілька найпоширеніших помилок, які допускають користувачі СУБД:

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

Чому не запускається MySQL – чиним СУБД самостійно

Поясню наступний скріншот, і чому не вдається підключитися до MySQL базі. Я зайшов на сервер БД під учеткой користувача (user), привілеї якого поширюються лише на одну базу. При спробі вивести список всіх баз, наявних на сервері MySQL повернула пустий результат. А коли я спробував пробратися» на іншу БД, система видала мені «Access denied».

«Не вдається знайти зазначений диск» — ця помилка виникає, якщо ви працюєте з Денвером, який при запуску емулює (створює) віртуальний диск. Причина – локальний сервер не працює.

Чому не запускається MySQL – чиним СУБД самостійно

«Can’t connect to MySQL server on…» — така помилка виникає, якщо неправильно вказаний в параметрах хост або локальний сервер не працює.

Чому не запускається MySQL – чиним СУБД самостійно

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

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