Mysql не запускается из командной строки windows 10

Обновлено: 03.07.2024

Если вы собираетесь использовать таблицы, поддерживающие транзакции (InnoDB, BDB), следует прежде всего создать файл my.cnf и установить опции запуска для тех типов таблиц, с которыми планируется работать. Типы таблиц MySQL.

В общем случае сервер mysqld запускается одним из следующих способов:

Вызовом mysql.server . Этот скрипт используется преимущественно для запуска и останова системы. Более подробно он описан в разделе Автоматический запуск и остановка MySQL.

Вызовом команды safe_mysqld , которая определяет соответствующие опции для mysqld и затем запускает mysqld с этими опциями. safe_mysqld, оболочка mysqld.

Относительно Windows NT/2000/XP просьба обращаться к разделу Запуск MySQL на Windows NT, 2000 или XP.

Вызовом mysqld напрямую.

При своем запуске демон mysqld изменяет свой каталог на каталог данных ( datadir ). В нем он ожидает найти журнальные файлы, файлы pid (ID процессов) и собственно базы данных.

Местоположение каталога данных жестко устанавливается при компиляции дистрибутива. Однако если mysqld ожидает найти каталог данных где-либо в другом месте, а не там, где он действительно расположен в вашей системе, то демон mysqld не будет работать правильно. Если есть проблемы с неправильными путями, то, вызывая mysqld с опцией --help , вы можете найти информацию о том, что разрешают опции mysqld и какие установки путей приняты по умолчанию. Можно переопределить установки по умолчанию указанием правильных имен путей как аргументов mysqld в командной строке (эти опции также можно использовать с safe_mysqld ).

Обычно требуется указывать mysqld только каталог, в котором устанавливается MySQL. Это можно сделать с помощью опции --basedir . Можно также использовать --help для проверки эффекта от изменения опций путей (учтите, что --help должна быть последней опцией в команде mysqld ). Например:

После определения требуемых установок путей запускайте сервер без опции --help .

Какой бы метод вы ни использовали для запуска сервера, если его неудачный запуск завершается корректно, то проверьте журнальный файл, чтобы узнать, почему запуск происходит неудачно. Журнальные файлы находятся в каталоге данных (обычно /usr/local/mysql/data для бинарного дистрибутива, /usr/local/var для дистрибутива исходного кода и \mysql\data\mysql.err под Windows). В каталоге данных следует искать файлы с именами в виде host_name.err и host_name.log , где host_name - имя вашего серверного хоста. Затем проверьте последние несколько строк этих файлов:

В журнальном файле нужно искать что-нибудь похожее на следующее:

Это означает, что вы не запустили mysqld с --bdb-no-recover и база данных Berkeley DB нашла что-то ошибочное в своих журнальных файлах при попытке восстановить ваши базы данных. Чтобы иметь возможность продолжить, необходимо переместить старый журнальный файл Berkeley DB из каталога баз данных в некоторое другое место, где позже можно будет изучить его. Журнальные файлы имеют имена log.0000000001 и т.д.; номер возрастает при каждом запуске.

Если вы запускаете mysqld работает с поддержкой таблиц BDB и mysqld при старте выводит дамп оперативной памяти (coredump), то причиной этого это могут быть какие-либо проблемы с журналом восстановления BDB. В этом случае можно попробовать запуск mysqld с --bdb-no-recover . Если это помогает, то следует удалить все файлы log.* из каталога данных и попробовать запустить mysqld опять.

Если выдается приведенная ниже ошибка, то это означает, что некоторая другая программа (или другой сервер mysqld ) уже использует данный TCP/IP порт или сокет, на которых mysqld пытается слушать:

Если mysqld в настоящее время работает, то можно найти используемые им установки путей при помощи следующей команды:

Если при запуске mysqld вы получили ошибку Errcode 13 , что значит Permission denied , это означает, что у вас не было прав читать/создавать файлы в базе данных MySQL или в журнальном каталоге. В таком случае вам следует либо запускать mysqld как пользователь root , либо изменить права доступа к упомянутым файлам и каталогам, чтобы иметь права использовать их.

Если safe_mysqld запускает сервер, но вы не можете подключиться к нему, то следует убедиться, что в /etc/hosts есть запись, которая выглядит примерно так:

Эта проблема возникает только в системах, не имеющих рабочей библиотеки потоков, и для которых MySQL следует конфигурировать для использования потоков MIT-pthreads.

Если вы не можете запустить mysqld , то можно попробовать создать трассировочный файл, чтобы обнаружить данную проблему. Создание трассировочных файлов.

При использовании таблиц InnoDB следует указывать опции запуска, специфические для InnoDB. Параметры запуска InnoDB.

При использовании таблиц BDB (Berkeley DB) необходимо хорошо знать различные специфические для BDB опции запуска. Параметры запуска BDB.

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

Использование теории «чужих ошибок»

Если думаете, что при написании материалов из этой серии я «не потею», то ошибаетесь. Даже самый «заядлый» разработчик-профессионал не может все знать. Причем часто натыкаешься в своей практике на те «грабли», на которые уже наступал (и не раз). А это во сто крат обиднее и больнее. Получается, что данная статья предназначена не только для вас, но и мне .

Но в MySQL столько «граблей», что их умудряются не перешагнуть и «чайники», и профессионалы по всему миру. Попробуем в этом материале собрать наиболее частые причины того, почему не подключается база данных MySQL и другие распространенные проблемы.

Начнем с описания особенностей синтаксиса запросов SQL. Данная система управления БД хоть и основана на языке структурированных запросов, но все же сохранила некоторую самобытность с «заковыркой». Причем в прямом смысле этого слова .

Особенности синтаксиса

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


Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Теперь введем его и выполним в программе:


Как видим, приложение «ругается» на несоответствующий синтаксис. Правильно:


В phpMyAdmin (чтобы не говорили потом «не удалось запустить MySQL») название столбцов экранируются грависом, а все указываемые значения – одинарными кавычками. Кстати, гравис находится над клавишей буквы «Ё».

На самом деле использование грависов не является обязательным. Они прописываются программой в автоматически сгенерированных запросах. Ошибки синтаксиса в командной строке

Теперь переходим в командную строку, и попытаемся запустить вариант запроса, корректный для phpMyAdmin. Здесь нас сразу подстерегает ошибка, поскольку мы не выделили ни одной БД.



Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

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

Но что-то опять пошло не так, и MySQL ждет от нас ввода дополнительных параметров. Это потому, что мы забыли поставить точку с запятой. Хотя она не является обязательной в phpMyAdmin.


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


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

На этих граблях я тоже «побывал» неоднократно. Вот такой «крючковатый» синтаксис получается . Также важно, если не удалось запустить MySQL через командную строку, проверить правильность указанного пути к исполняемому файлу СУБД.

Другие распространенные ошибки

Вот еще несколько самых частых ошибок, которые допускают пользователи СУБД:


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



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

Понятно, что это далеко не все «популярные» неполадки MySQL. Если «копнуть» глубже, то на их изучение уйдут годы. Помните, что причиной всех бед может стать обычный пробел или неправильная кавычка. И из-за этого ваш MySQL будет «глохнуть» уже на старте. Вот такая «заковырка» получается .


Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

php не запускается из командной строки
Установил денвер, в переменную окружения path прописал путь к php.exe. При попытке запустить из.


Не запускается программа с командной строки
Добрый день ! Подскажите , почему Не запускается программа с командной строки package A; .

Модуль Python не запускается из командной строки
Начал читать Лутца. Споткнулся на первом же задании. Создал файл (вложение 0) script1. Поместил в.

Ubuntu запускается только в режиме командной строки
Установил на ноутбук ASUS K50AB Ubuntu 14.04.2 LTS. До этого там стояла винда 7. Установил убунту.

access denied for user 'root'@'localhost' (PASSWORD: YES) означает, что ты неправильный пароль ввела. Возможно, во время установки ты не тот пароль установила. я конечно чайничек, но я миллион раз уже переустанавливала, и когда на втором компе специально пишу неправильный пароль он пишет ошибку . PASSWORD:NO
вроде это значит что запись PASSWORD:YES говорит о том что пароль верный.. Наверное только не PASSWORD:NO, а using password: NO. это означает, что ты не ввела пароль. Если будет using password: YES, значит пароль ввела, но по какой-то причине он не даёт подключить. может, пароль не правильный, может логин. может, с этого ip адреса нельзя подключиться (хотя, если с локального, то должно быть всё в порядке).
Кстати, проверь файл C:\WINDOWS\system32\drivers\etc\hosts (открой в блокноте). Там должна быть строчка
127.0.0.1 localhost
Если нет, то добавь.

Спасибо Вам, сейчас пойду проверять и колдовать. Только в упор не понимаю, почему на втором компе работает=)

Добавлено через 21 минуту 58 секунд
Спасибо большое! Произошла смешная ошибка, которая затормозила мое обучение на две недели:люди, следите за языком. На одном компе у меня автоматически стоял английский, там все работала, а на -в винде втором русский , а на консоле английский!Мне стыдно что отняла у всех время, но может кто-то на моем бестолковом опыте не сделает такой глупой ошибки*краснеющий смайл*.
Еще раз СПАСИБО!

Создание БД Mysql из командной строки
Требуется запустить из Delphi bat-файл (через Shellexecute либо WinExec - не суть важно), создающий.

Как обратиться к MySql не из командной строки?
Подскажите, пожалуйста, как обратиться к MySql не из командной строки, а из скрипта, удалить в ней.

Запуск PHP+MySQL скрипта из командной строки
Добрый день. Пытаюсь запустить PHP скрипт командой C:\Site\PHP\php.exe -f "путь к скрипту" PHP.


Pyinstaller - пакет exe запускается вместе с командной строкой
Добрый день. Написал программу на Pythonю Скомпилировал файл exe средствами pyinstaller. Все.

Не запускается Windows XP, выдает режимы (безопасный, с командной строкой и т.д.)
всем привет! подскажите, в чем дело, не запускается winda xp выдает режимы (безопасный,с командной.


Слияних 2 файлов в третий + строки + использование командной строки
Помогите с заданием пожалуйста. Задано 2 файла, строки в которых упорядочены по алфавиту. Написать.

Я пытаюсь запустить MySQL из XAMPP (под Windows Vista), но он говорит, что порт 3306 занят.

Как лучше всего проверить, какое приложение использует этот порт и как его освободить?

В командной оболочке запустите:

Первая команда выведет список, в котором вам нужно будет просмотреть строку, отображающую localhost:3306 во втором столбце. Ниже указано имя приложения, использующего порт.

Дополнительная команда найдет именно тот порт, который вы ищете, и выглядит примерно так:

Эта ошибка возникает, если вы установили mysql два раза. mysql по умолчанию использует порт 3306. Если вы установили его дважды, то на вашем порту 3306 уже есть mysql. Поэтому вам придется изменить свой порт.

Если вы используете xampp, вы можете легко изменить свой порт. Шаги по изменению порта: Шаг 1. Откройте xampp от имени администратора. Шаг 2: Нажмите «Конфигурация» в правом верхнем углу файла xampp. Шаг 3: Нажмите «Настройки службы и порта», а затем измените основной порт mysql с 3306 на 3307 и нажмите «Сохранить». Шаг 4: Затем нажмите «config», который находится перед mysql, и откройте файл «my.ini», который будет текстовым файлом. Шаг 5: Теперь везде, где в текстовом файле вы видите номер порта, указанный как 3306, измените его на 3307, а затем сохраните файл.

После этого снова запустите сервер mysql, и он начнет работать на порту 3307.

Это сработало для меня, и я надеюсь, что это сработает для всех, кто столкнется с той же проблемой.

Если вам не удалось найти какое-либо приложение или процесс, прослушивающий порт 3306 , возможно, вам потребуется проверить сетевые адаптеры .

Отключите адаптеры, которые вы не используете.

Также обратите внимание на сетевой адаптер, созданный Hyper-V , отключите его, если он вам не нужен. Иногда он может зарезервировать некоторые порты, и команды вроде netstat не смогут его обнаружить

Более простой способ решения этой проблемы в Windows: -

  1. Перейти в диспетчер задач
  2. Перейти к услугам
  3. Там будет служба с именем MySQl80, щелкните ее правой кнопкой мыши и выберите «Остановить».
  4. Попробуйте снова запустить модуль MySQl на сервере XAMPP.

У меня уже несколько часов проблемы с этой ошибкой. Через некоторое время я пытался запустить MySQL из XAMPP. Выдал ошибки, аналогичные вашим, в нем говорилось, что используется порт 3306. Если ты:

  • работают на Windows 10
  • избегают изменения номера порта MySQL с 3306
  • не видит никаких программ, использующих порт 3306 из netstat
  • переустановка и удаление всего, но все равно выдает ту же ошибку
  • включают и используют Hyper-V
  • все остальные решения не работали

Это решение, которое сработало для меня:

  • Перейдите в правую часть панели задач и щелкните правой кнопкой мыши значок подключения, затем нажмите Open Network & Internet settings
  • Нажмите Change adapter options
  • Щелкните правой кнопкой мыши и отключите все, что связано с Hyper-V

Я снова запустил MySQL, теперь он работает.

У меня была эта проблема (небольшая вариация, поскольку я использовал MAMP)

Я обнаружил, что эта проблема связана с установленным MySQL Workbench, MySQL Workbench запускает службу mySQL при загрузке, что, в свою очередь, не позволяет MAMP использовать порт.

  1. Удалите MySQL Workbench
  2. Откройте задачу, щелкните вкладку служб, убейте текущую службу MySQL.

Затем это позволило MAMP использовать порт 3306

Значок Windows -> Открыть cmd.exe .
Введите netstat -a -b .
Найдите, что его использует. В моем случае это было так:

Итак, я зашел в диспетчер задач . Так называемого процесса не было. Я зашел в службы и отключил эти два:

Image 2

Теперь все работает нормально.

Как упоминалось @Segun Emmanuel, выполните следующую команду:

Вы получите список приложений, использующих разные ПОРТЫ. Нажмите Ctrl + F и напишите 3306, чтобы узнать, какое приложение использует ПОРТ 3306.

enter image description here

После этого перейдите в диспетчер задач через панель поиска или нажав CTRL + ALT + DEL . Затем в разделе «Фоновые процессы» найдите mysqld.exe , щелкните его правой кнопкой мыши, и вы найдете вариант, чтобы закрыть его, а именно « End Task ».

enter image description here

Затем перейдите в панель управления Xampp и запустите службу MySQL.

enter image description here

В моем случае это был javaw.exe, который запускался на порту 3306. Этот exe не вызывает проблем, если я вошел в систему с использованием одного пользователя в моей Windows 10. Но если у меня несколько входов в систему, он запускает этот exe для каждого пользователя и блокирует MySQL запускается на порту 3306.

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

Если mysql не запускается в xampp, это может быть проблема конфликта порта. Mysql запускается по умолчанию на порту 3306. Вам необходимо проверить, не занимает ли этот порт другое приложение. используйте следующую команду, чтобы проверить приложение, занимающее порт

Если вы обнаружите, что приложение занимает этот порт, остановите приложение и перезапустите xampp. В качестве альтернативы вы можете перейти в файл php.ini или нажать кнопку configure в xampp для mysql и изменить порт mysql на 3307

У меня была та же проблема, и я застрял в ней на день, и я нигде не мог найти идеального ответа. Так что я попробовал это самостоятельно, и это сработало. Это решение для пользователей Windows. Пользуюсь Windows 7.

MySQL — система управления базами данных (СУБД) с открытым исходным кодом от компании Oracle. Она была разработана и оптимизирована специально для работы веб-приложений. MySQL является неотъемлемой частью таких веб-сервисов, как Facebook, Twitter, Wikipedia, YouTube и многих других.

Эта статья расскажет, как определять, с чем связаны частые ошибки на сервере MySQL, и устранять их.

Не удаётся подключиться к локальному серверу

Одной из распространённых ошибок подключения клиента к серверу является «ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)».


Эта ошибка означает, что на хосте не запущен сервер MySQL ( mysqld ) или вы указали неправильное имя файла сокета Unix или порт TCP/IP при попытке подключения.

Убедитесь, что сервер работает. Проверьте процесс с именем mysqld на хосте сервера, используя команды ps или grep, как показано ниже.

Если эти команды не показывают выходных данных, то сервер БД не работает. Поэтому клиент не может подключиться к нему. Чтобы запустить сервер, выполните команду systemctl.

Чтобы проверить состояние службы MySQL, используйте следующую команду:


Если в результате выполнения команды произошла ошибка службы MySQL, вы можете попробовать перезапустить службу и ещё раз проверить её состояние.


Если сервер работает (как показано) и вы по-прежнему видите эту ошибку, вам следует проверить, не заблокирован ли порт TCP/IP брандмауэром или любой другой службой блокировки портов.

Белкасофт , Удалённо , По итогам собеседования

Для поиска порта, который прослушивается сервером, используйте команду netstat .

Не удаётся подключиться к серверу MySQL

Ещё одна похожая и часто встречающаяся ошибка подключения — «(2003) Can’t connect to MySQL server on ‘server’ (10061)». Это означает, что в сетевом соединении было отказано.

Следует проверить, работает ли в системе сервер MySQL (смотрите выше) и на тот ли порт вы подключаетесь (как найти порт, можно посмотреть выше).

Похожие частые ошибки, с которыми вы можете столкнуться при попытке подключиться к серверу MySQL:

Ошибки запрета доступа в MySQL

В MySQL учётная запись (УЗ) определяется именем пользователя и клиентским хостом, с которого пользователь может подключиться. УЗ может также иметь данные для аутентификации (например, пароль).

Причин для запрета доступа может быть много. Одна из них связана с учётными записями MySQL, которые сервер разрешает использовать клиентским программам при подключении. Это означает, что имя пользователя, указанное в соединении, может не иметь прав доступа к базе данных.

В MySQL есть возможность создавать учётные записи, позволяющие пользователям клиентских программ подключаться к серверу и получать доступ к данным. Поэтому при ошибке доступа проверьте разрешение УЗ на подключение к серверу через клиентскую программу.

В консоли вводим команду:

Дать привилегии конкретному пользователю в БД по IP-адресу можно, используя следующие команды:

Ошибки запрещённого доступа могут также возникнуть из-за проблем с подключением к MySQL (см. выше).

Потеря соединения с сервером MySQL

С этой ошибкой можно столкнуться по одной из следующих причин:

  • плохое сетевое соединение;
  • истекло время ожидания соединения;
  • размер BLOB больше, чем max_allowed_packet .

В первом случае убедитесь, что у вас стабильное сетевое подключение (особенно, если подключаетесь удалённо).

Если проблема с тайм-аутом соединения (особенно при первоначальном соединении MySQL с сервером), увеличьте значение параметра connect_timeout .

В случае с размером BLOB нужно установить более высокое значение для max_allowed_packet в файле конфигурации /etc/my.cnf в разделах [mysqld] или [client] как показано ниже.

Если файл конфигурации недоступен, это значение можно установить с помощью следующей команды.

Слишком много подключений

Эта ошибка означает, что все доступные соединения используются клиентскими программами. Количество соединений (по умолчанию 151) контролируется системной переменной max_connections . Устранить проблему можно, увеличив значение переменной в файле конфигурации /etc/my.cnf .

Недостаточно памяти

Если такая ошибка возникла, это может означать, что в MySQL недостаточно памяти для хранения всего результата запроса.

Сначала нужно убедиться, что запрос правильный. Если это так, то нужно выполнить одно из следующих действий:

  • если клиент MySQL используется напрямую, запустите его с ключом --quick switch , чтобы отключить кешированные результаты;
  • если вы используете драйвер MyODBC, пользовательский интерфейс (UI) имеет расширенную вкладку с опциями. Отметьте галочкой «Do not cache result» (не кешировать результат).

Также может помочь MySQL Tuner. Это полезный скрипт, который подключается к работающему серверу MySQL и даёт рекомендации по настройке для более высокой производительности.

MySQL продолжает «падать»

Если такая проблема возникает, необходимо выяснить, заключается она в сервере или в клиенте. Обратите внимание, что многие сбои сервера вызваны повреждёнными файлами данных или индексными файлами.

Вы можете проверить состояние сервера, чтобы определить, как долго он работал.

Чтобы узнать время безотказной работы сервера, запустите команду mysqladmin .


Кроме того, можно остановить сервер, сделать отладку MySQL и снова запустить службу. Для отображения статистики процессов MySQL во время выполнения других процессов откройте окно командной строки и введите следующее:

Заключение

Самое важное при диагностике — понять, что именно вызвало ошибку. Следующие шаги помогут вам в этом:

Читайте также: