Mysql не запускается из командной строки windows 10
Устраняем типичные ошибки в MySQL
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 брандмауэром или любой другой службой блокировки портов.
Не удаётся подключиться к серверу MySQL
Ещё одна похожая и часто встречающаяся ошибка подключения — «(2003) Can’t connect to MySQL server on ‘server’ (10061)». Это означает, что в сетевом соединении было отказано.
Следует проверить, работает ли в системе сервер MySQL (смотрите выше) и на тот ли порт вы подключаетесь (как найти порт, можно посмотреть выше).
Похожие частые ошибки, с которыми вы можете столкнуться при попытке подключиться к серверу MySQL:
Ошибки запрета доступа в MySQL
В MySQL учётная запись (УЗ) определяется именем пользователя и клиентским хостом, с которого пользователь может подключиться. УЗ может также иметь данные для аутентификации (например, пароль).
Причин для запрета доступа может быть много. Одна из них связана с учётными записями MySQL, которые сервер разрешает использовать клиентским программам при подключении. Это означает, что имя пользователя, указанное в соединении, может не иметь прав доступа к базе данных.
В MySQL есть возможность создавать учётные записи, позволяющие пользователям клиентских программ подключаться к серверу и получать доступ к данным. Поэтому при ошибке доступа проверьте разрешение УЗ на подключение к серверу через клиентскую программу.
Увидеть разрешённые привилегии учётной записи можно, выполнив в консоли команду SHOW GRANTS
Входим в консоль (пример для Unix, для Windows консоль можно найти в стартовом меню):
В консоли вводим команду:
Дать привилегии конкретному пользователю в БД по IP-адресу можно, используя следующие команды:
Ошибки запрещённого доступа могут также возникнуть из-за проблем с подключением к MySQL (см. выше).
Потеря соединения с сервером MySQL
С этой ошибкой можно столкнуться по одной из следующих причин:
В первом случае убедитесь, что у вас стабильное сетевое подключение (особенно, если подключаетесь удалённо).
В случае с размером BLOB нужно установить более высокое значение для max_allowed_packet в файле конфигурации /etc/my.cnf в разделах [mysqld] или [client] как показано ниже.
Если файл конфигурации недоступен, это значение можно установить с помощью следующей команды.
Слишком много подключений
Недостаточно памяти
Если такая ошибка возникла, это может означать, что в MySQL недостаточно памяти для хранения всего результата запроса.
Сначала нужно убедиться, что запрос правильный. Если это так, то нужно выполнить одно из следующих действий:
Также может помочь MySQL Tuner. Это полезный скрипт, который подключается к работающему серверу MySQL и даёт рекомендации по настройке для более высокой производительности.
MySQL продолжает «падать»
Если такая проблема возникает, необходимо выяснить, заключается она в сервере или в клиенте. Обратите внимание, что многие сбои сервера вызваны повреждёнными файлами данных или индексными файлами.
Вы можете проверить состояние сервера, чтобы определить, как долго он работал.
Кроме того, можно остановить сервер, сделать отладку MySQL и снова запустить службу. Для отображения статистики процессов MySQL во время выполнения других процессов откройте окно командной строки и введите следующее:
Заключение
Самое важное при диагностике — понять, что именно вызвало ошибку. Следующие шаги помогут вам в этом:
Почему не запускается MySQL – чиним СУБД самостоятельно
Дата публикации: 2016-06-15
От автора: не запускается MySQL? Наверно «стартер» барахлит. Нужно показать опытному «механику». Хотя в некоторых случаях можно обойтись и собственными силами. Вот сегодня и разберемся, как произвести починку «заглохнувшей» СУБД самостоятельно.
Использование теории «чужих ошибок»
Но в MySQL столько «граблей», что их умудряются не перешагнуть и «чайники», и профессионалы по всему миру. Попробуем в этом материале собрать наиболее частые причины того, почему не подключается база данных MySQL и другие распространенные проблемы.
Особенности синтаксиса
Для примера возьмем один, и выполним его в программной оболочке, которую часто используем. А также запустим его в командной строке. Таким образом мы выясним особенности синтаксиса MySQL, «царящих» в каждом из вариантов. Начнем, как предписывает традиция, с phpMySQL. Но сначала запрос, написанный по всем «канонам» SQL:
Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
В курсе 39 уроков | 15 часов видео | исходники для каждого урока
Теперь введем его и выполним в программе:
Как видим, приложение «ругается» на несоответствующий синтаксис. Правильно:
В phpMyAdmin (чтобы не говорили потом «не удалось запустить MySQL») название столбцов экранируются грависом, а все указываемые значения – одинарными кавычками. Кстати, гравис находится над клавишей буквы «Ё».
На самом деле использование грависов не является обязательным. Они прописываются программой в автоматически сгенерированных запросах. Ошибки синтаксиса в командной строке
Теперь переходим в командную строку, и попытаемся запустить вариант запроса, корректный для phpMyAdmin. Здесь нас сразу подстерегает ошибка, поскольку мы не выделили ни одной БД.
Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
В курсе 39 уроков | 15 часов видео | исходники для каждого урока
И еще раз выполним предыдущий код SQL. Теперь все прошло успешно. Для чистоты эксперимента введем первый вариант запроса. Сервер СУБД говорит нам, что такого столбца в этой таблице нет. Исправим запрос, и экранируем значение одинарными кавычками.
Но что-то опять пошло не так, и MySQL ждет от нас ввода дополнительных параметров. Это потому, что мы забыли поставить точку с запятой. Хотя она не является обязательной в phpMyAdmin.
Кстати (пока мы находимся в CMD) одной из причин, почему не удается запустить службу MySQL из командной строки, может быть нарушение синтаксиса команды входа. «Неправильный» пример:
Другие распространенные ошибки
Вот еще несколько самых частых ошибок, которые допускают пользователи СУБД:
«Acces danied» — сервер говорит, что доступ запрещен. Чаще всего эта ошибка выскакивает, когда пользователь или приложение пытается совершить операцию, которая не разрешена для используемой учетной записи.
Поясню следующий скриншот, и почему и не удается подключиться к MySQL базе. Я зашел на сервер БД под учеткой пользователя (user), привилегии которого распространяются только на одну базу. При попытке вывести список всех баз, имеющихся на сервере, MySQL вернул пустой результат. А когда я попытался «пробраться» на другую БД, система выдала мне «Access denied».
«Не удается найти указанный диск» — эта ошибка возникает, если вы работаете с Денвером, который при запуске эмулирует (создает) виртуальный диск. Причина – локальный сервер не запущен.
«Can’t connect to MySQL server on…» — такая ошибка возникает, если неправильно указан в параметрах хост или локальный сервер не запущен.
Не устанавливается MySQL – причин этого может быть много. Например, если вы пытаетесь инсталлировать СУБД через командную строку, то она должна быть запущена от имени администратора устройства.
Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
В курсе 39 уроков | 15 часов видео | исходники для каждого урока
Не запускается Mysql
Иногда случается, что из-за после изменения настроек или по какой-либо другой причине mysql не запускается. Это довольно серьезная проблема, особенно, когда такая ситуация случается на сервере публичного проекта. В этой статье мы рассмотрим основные причины почему может возникать такая проблема, а также пути решения. В качестве примера будет использоваться Mariadb и Ubuntu.
Почему не запускается MySQL сервер?
Если вы используете systemd для запуска сервисов, то получите такую ошибку:
failed to start mysql server или job for mysql failed because the control proccess exited
Из сообщения понято только то что что-то пошло не так, но что именно неизвестно. Чаще всего проблемы в работе MySQL могут вызвать такие причины:
Дальше мы рассмотрим основные пути решения этих проблем. Но сначала нам нужно выяснить почему не запускается программа. Гадать на кофейной гуще и перебирать все возможные методы решения можно очень долго, самым эффективным решением будет посмотреть какие ошибки выдает сама программа.
Что делать если не запускается MySQL?
В начале вывода будут представлены обнаруженные в основном конфигурационном файле ошибки. Например, здесь я специально добавил несуществующую переменную. Вам остается только исправить ошибки и перезапустить mysql:
systemctl restart mariadb
Если же это не сработало и вы все еще получаете ошибку, посмотрите лог загрузки systemd для этого сервиса:
sudo vi /etc/mysql/my.cnf
[mysqld]
log-error=/var/log/mysql/error.log
Затем снова пытаемся запустить сервис и смотрим на появившиеся в логе ошибки:
Здесь вы увидите ошибки, которые мешают запустить mysql. Здесь надо искать слова: Fail, Error, Warning, Aborted и так далее. Вам остается только их исправить. Исправить проблемы с синтаксисом, убрать опции, которые потребляют слишком много памяти и исправить другие проблемы. А теперь рассмотрим несколько распространенных проблем.
1. Изменение размера буфера innodb
Если вы измените значение директивы innodb_buffer_pool_size в большую или меньшую сторону пока сервис работает, то перезапустить вы его уже не сможете. Перед тем как менять значение директивы остановите mysql:
sudo systemctl stop mariadb
Затем удалите старые логи innodb или просто их переименуйте:
sudo mv /var/lib/mysql/ib_logfile0 <,bak>
sudo mv /var/lib/mysql/ib_logfile1
И только после этого можете снова запускать сервис, он запустится с новыми настройками размера буфера. Только будьте аккуратны с выбором размера. При слишком большом размере может не хватить памяти для запуска, так как весь буфер хранится в ОЗУ.
sudo systemctl start mariadb
2. Ошибка Permission denied
MySQL хранит файлы базы данных на диске. У движка базы данных должен быть полный доступ к папке, в которой хранятся эти файлы. По умолчанию в Ubuntu это /var/lib/mysql/. Все файлы в этой папке должны принадлежать пользователю mysql:
Если это не так, исправляем командой:
3. Ошибка Address already in use
MySQL может использовать файловый сокет Linux или же сетевой сокет, тогда база данных будет доступна другим программам на порту 3306. Если сейчас уже запущен другой процесс mysql или какой-либо другой процесс занимает этот порт вы получите ошибку Address already in use. Чтобы ее решить смотрим какой процесс использует порт:
Например, здесь мы видим, что запущен другой экземпляр mysql с PID 11240. Вы можете его завершить с помощью kill:
Теперь база данных запуститься.
4. Ошибка corrupt database page Mysql
Проблема серьезная, но решаемая. В самом сообщении об ошибке система рекомендует сделать резервную копию таблиц, удалить их и создать заново из резервной копии. Но для этого должна быть запущена база данных, а она не запускается.
Нам необходимо запустить mysql в режиме восстановления, в котором все повреждения таблиц будут игнорироваться. Для этого добавляем в конфигурационный файл /etc/mariadb/my.cnf строку:
sudo vi /etc/mariadb/my.cnf
Затем запускаем mysql:
systemctl start mariadb
Ошибок не будет и сервис запуститься. Нам остается только исправить таблицы. Для этого можно воспользоваться инструментом mysqlcheck:
Готово. Теперь возвращаемся в конфигурационный файл и комментируем или удаляем строку innodb_force_recovery.
После этого можно перезапустить mysql и сервис будет работать в обычном режиме:
sudo systemctl restart mariadb
Выводы
В этой статье мы рассмотрели основные причины почему не запускается mysql сервер. Теперь вы сможете очень быстро с ними справиться, если столкнетесь в своей работе. А с какими еще проблемами кроме этих сталкивались вы? Какие были пути решения? Давайте дополним статью вместе, пишите в комментариях!
Форум пользователей MySQL
Задавайте вопросы, мы ответим
Страниц: 1
#1 24.03.2007 11:33:15
Проблемы с запуском командной строки
Установил MySQL 5.0.27 под Windows XP Professional. Сразу после установки командная строка запускается и работает без проблем. Но после перезагрузки компьютера пытаюсь запустить ее же, ввожу пароль, а комп издает звук beep и закрывает окно. Помогите советом. Спасибо.
#2 24.03.2007 12:44:29
Re: Проблемы с запуском командной строки
Вероятно, сервис MySQL не запускается автоматически при загрузке машины. Вам нужно найти сервис mysql в управлении сервисами в Windows (простой путь: клик правой кнопкой мыши на иконке Мой компьютер, в выпадающем меню выбрать «Управление», в появившемся окне, выбрать «Сервисы»), запустить сервис и установить его автоматический запуск (Пункт: загрузка, варианты: автоматически и вручную).
Если сервис запущен, то консоль должна работать.
#3 24.03.2007 16:40:14
Re: Проблемы с запуском командной строки
Для того, чтобы определить точную ошибку, попробуйте запустить консоль
отдельно от клиента mysql. Тогда клиент, написав ошибку, консоль не закроет,
и Вы сможете описание этой ошибки прочитать:
Чаще всего ошибка оказывается не в запуске сервиса (который запускается
автоматически), а в написании имени пользователя и пароля.
#4 26.03.2007 10:49:43
Re: Проблемы с запуском командной строки
Спасибо! Действительно, был выставлен ручной запуск сервиса. Все работает!
#5 21.04.2011 19:17:31
Re: Проблемы с запуском командной строки
#6 21.04.2011 22:01:01
Re: Проблемы с запуском командной строки
А зачем Вы поднимаете тему 2007 года? (
Смотрите в my.ini, у Вас там битый путь прописан к файлу кодировок.
#7 23.04.2011 14:54:08
Re: Проблемы с запуском командной строки
Ну, извините что в тему 2007 написал, но все же. Что надо сделать, а то я вообще ни бум-бум в MySQL
#8 25.04.2011 20:07:42
Re: Проблемы с запуском командной строки
Э. «Смотрите в my.ini, у Вас там битый путь прописан к файлу кодировок.»
В Сети никто не знает, как запустить MySQL через командную строку?
Дата публикации: 2016-05-30
От автора: девушка, у вас машина не заводится? Может «с толкача» попробуем? Я помогу! Не знаете, как это? «С толкача» заводили только сервер СУБД через cmd? Значит, как запустить MySQL через командную строку вы знаете, а автомобиль – даже не догадываетесь. Мадмуазель, вы «странная» блондинка!.
Странности в описании MySQL
При подготовке каждой статьи мне приходится «основательно» шерстить интернет в поисках справочных материалов по той или иной «сайтостроительной» дисциплине. По большей части «наук» в Сети опубликовано множество подробных руководств и учебников, но только не по MySQL.
Конечно, есть достойные образовательные ресурсы, но в основной части по СУБД приводятся лишь примеры написания команд, и даже без указания синтаксиса. В такой ситуации любому «чайнику» понять, например, как подключиться к MySQL через командную строку, почти нереально.
Чтобы найти ответ новичку, придется перешерстить с десяток тематических форумов, где профессиональные разработчики (корча из себя чуть ли не «академиков») снизойдут до того, чтобы хоть что-то нормально пояснить начинающему.
Стоит понимать, что настоящему админу следует знать все способы запуска и работы с сервером БД. Понятно, что программные оболочки – самый удобный метод, но ведь они не всегда могут оказаться «под рукой». Поэтому знание того, как включить MySQL через командную строку, не раз спасет и данные сайта, и вашу репутацию специалиста (если собираетесь заниматься веб-разработкой профессионально).
Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
В курсе 39 уроков | 15 часов видео | исходники для каждого урока
Запускаем cmd
Для запуска MySQL из командной строки сначала активируем саму утилиту (cmd), которая входит в стандартный набор Windows. Сделать это можно несколькими способами:
Клавиатурным сочетанием Win+R, а затем в появившемся диалоге «Выполнить» ввести cmd
Кроме этого MySQL может поставляться с «родной» оболочкой. Например, если вы устанавливаете сервер БД на локальную машину как самостоятельное «приложение», которое не входит в набор для «джентльменов».
Родная MySQL командная строка запускается также как и обычная cmd. Отличие в работе обеих утилит проявится позже. Об этом мы поговорим в следующем разделе.
Работа с командной строкой
Сначала разберемся со встроенной в операционную систему утилитой. Рассмотрим, как запустить MySQL из командной строки Windows. Для этого нужно:
Путь к папке в файловой системе ПК, куда вы установили сервер БД.
Учетная запись пользователя – логин и пароль.
Если вы работаете с Денвером, то исполняемый файл находится на виртуальном диске, который создается после запуска локального сервера, по этому пути: Z:\usr\local\mysql-5.5\bin
Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
В курсе 39 уроков | 15 часов видео | исходники для каждого урока
Мы зашли на сервер СУБД под правами администратора. У меня пароль для root не установлен, поэтому его значение не указано. После того, как мы запустили MySQL из командной строки, внизу появится справочная информация о версии утилиты, сервера и id подключения.
Теперь давайте проверим правильность проведенной процедуры и «силу» своих прав. Например, выведем список всех таблиц, которые сейчас используются на сервере: