Ошибка «ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/run/mysqld/mysqld.sock’ (2 «No such file or directory»)» (РЕШЕНО)
При попытке подключения к серверу MySQL может возникнуть ошибка:

Вариант на другом дистрибутиве (отличается путь до файла mysqld.sock):
Ошибка означает, что не получается подключиться к MySQL серверу через сокет /run/mysqld/mysqld.sock, поскольку данный файл просто не существует.
Эта ошибка может возникнуть при использовании примерно следующей команды:
Причём она одинакова и для MySQL и для MariaDB.
Причина ошибки всегда одна — на хосте, к которому вы пытаетесь подключиться, не работает служба MySQL/MariaDB. Конкретных вариантов может быть множество: от банальных что вы забыли установить службу до более сложных, когда из-за ошибки в команде вы подключаетесь не к тому хосту.
Убедитесь, что MySQL/MariaDB сервер установлен
В первую очередь убедитесь, что СУБД MySQL или MariaDB вообще установлены.
Пакет может называться mysql-server или mysql. Если вы выбрали MariaDB вместо MySQL, то пакет называется mariadb-server или mariadb.
Пакеты mysql-client или mariadb-clients или какие-то ещё НЕ подходят! Это только клиенты для подключения, но не сам сервер.
На Ubuntu, Linux Mint и других дистрибутивах из этой семьи для установки выполните:
Убедитесь, что служба MySQL/MariaDB запущена
Файл /run/mysqld/mysqld.sock создаётся когда MySQL или MariaDB сервер установлен и запущен. Поэтому проверим статус сервера следующей командой (подходит и для MySQL, и для MariaDB):

Должен быть статус active (running) .
Если служба не запущена, то запустите её командой:
После этого проверьте статус службы
Добавления службы в автозагрузку (чтобы не пришлось её запускать при каждом включении компьютера, выполните следующую команду):
Убедитесь, что служба MySQL/MariaDB настроена правильно
Если причина проблемы оказалась в том, что служба не запущена и после попытки запуска служба вновь оказалась неактивной, значит проблема может быть в неправильной настройке сервера MySQL/MariaDB.
Файлы конфигурации (настроек) MySQL и MariaDB могут размещаться в разных директориях, например:
При этом в файлах могут быть установлены различные значения одной и той же настройки, что приводит к проблеме. Устраните противоречие, либо удалите или переименуйте один из файлов и попробуйте вновь запустить службу.
На что стоит обратить внимание в конфигурационных файлах
Если вы хотите сохранить оба конфигурационных файла, то проверьте, чтобы значение socket было одинаковым. Также для bind-address должен быть установлен правильный IP адрес. Если к этому серверу подключаются только приложения, которые запущены на этом же сервере, то в качестве значения bind-address нужно прописать localhost или 127.0.0.1
Перезапустите службу mysqld
Попробуйте просто перезапустить службу командой:
Либо следующим образом, значала узнайте PID (идентификатор) процесса mysql:
Затем выполните следующую команду, в которой вместо [PID] укажите число, полученное из предыдущей команды:
Затем вновь запустите службу:
Неправильные права на файл /run/mysqld/mysqld.sock
У MySQL/MariaDB должно быть достаточно прав для создания и записи в файл /run/mysqld/mysqld.sock (или /var/run/mysqld/mysqld.sock). Можно попробовать решить проблему следующим образом, если файл /run/mysqld/mysqld.sock (или /var/run/mysqld/mysqld.sock — указывайте файл в соответствии с вашими настройками в my.cnf) не существует, то создайте его:
Затем сделайте пользователя mysql владельцем этого файла:
Установите правильные права на этот файл:
Вновь попробуйте запустить сервис:
Проблемы запуска службы из-за несовместимой настройки apparmor
Если при запуске службы вы получаете ошибку и вы используете профили apparmor, проверьте, чтобы профиль apparmor позволял процессу mysqld иметь доступ в необходимую для него директорию.
Несовместимость может быть вызвана, к примеру, файл сокета для MySQL настроен на сохранение по пути /run/mysqld/mysqld.sock, но в профиле apparmor дано разрешение на /var/run/mysqld/mysqld.sock
Чтобы убедиться, что дело именно в apparmor, попробуйте отключить его:
Если проблема исчезла и служба mysqld запустилась, значит нужно поверить разрешения для mysqld и добавить необходимые пути.
К примеру для показанного примера решением проблемы является добавление в /etc/apparmor.d/usr.sbin.mysqld строк:
Служба mysqld не может запуститься из-за отсутствия места на диске
Если ваш диск переполнен, то это может быть причиной невозможности запуска службы, даже если она правильно настроена и ранее нормально работала.
Освободите пространство на диске и перезапустите службу.
Служба mysqld не может запуститься так как порт 3306 используется другой программой
По умолчанию служба mysqld использует порт 3306 если этот порт использует другой процесс, то это является препятствием для запуска MySQL и в конечном счёте появляется рассматриваемая ошибка.
Для решения проблемы выясните, какая служба прослушивает порт 3306. Например, это можно сделать командой:
А затем остановите эту служу и удалите её из автозагрузки.
Либо можно использовать альтернативный вариант — настроить службу mysqld прослушивать другой, отличный от дефолтного порта. Но это может повлечь необходимость явно указывать порт в любых приложениях, которые подключаются к СУБД MySQL.
Вместо localhost попробуйте использовать 127.0.0.1
Вместо localhost в примерно такой команде:
Используйте 127.0.0.1:
(также обратите внимание на отсутствие пробела между -p и mypassword)
Служба mysqld не запускается из-за недоступности файлов баз данных
Ещё одной причиной может стать то, что вы переместили файлы с базами данных, но не изменили пути в соответствующих файлах настройки MySQL. Выполните правильно настройку и перезапустите MySQL или MariaDB.
Неверно указан хост для подключения
Для указания удалённого хоста используется опция -h. Из-за привычки указывать хост после имени пользователя через знак @ (как это делается, например, для SSH), либо указывать удалённый хост без опции -h, команда может оказаться неверной в том плане, что вместо подключения к удалённому хосту, вы пытаетесь подключиться, например, к своей собственной системе, на которой служба MySQL не установлена.
Следовательно, отредактируйте команду, используйте опцию -h или более длинный вариант —host=имя_хоста для указания хоста, к которому вы хотите подключиться.
Кстати, для указания имени пользователя используется опция -u. Если пароль отличается от стандартного, то используется опция -P (заглавная буква). Опция -p (прописная буква) используется для указания базы данных, которая выбирается для использования.
Служба mysqld по умолчанию не добавляется в автозагрузку на некоторых дистрибутивах
Помните, что на некоторых дистрибутивах (например, производных Arch Linux, на Kali Linux) даже после установки MySQL или MariaDB они не добавляются в автозагрузку и не запускаются по умолчанию.
Для запуска службы и её авто старта при последующих включениях компьютера выполните команды:
Заключение
Итак, основной причиной ошибки «ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/run/mysqld/mysqld.sock’ (2 «No such file or directory»)» является незапущенная служба mysqld. Причин того, что указанная служба не запущена может быть множество: от банального факта что служба вообще не установлена, до более серьёзных проблем связанных с переполненностью диска и неправильной настройкой конфигурационных файлов и прав доступа к файлам.
Следовательно, выявите и устраните причину, по которой служба не запущена, а затем запустите службу и ошибка исчезнет.
Источник
Почему получаю SQLSTATE[HY000] [2002] Connection refused, а миграции при этом с БД работают?
Пытаюсь использовать YII локально с докером. Настроил БД. Миграции работают нормально, при этом когда пробую записать или прочитать что-то из таблицы user , к примеру, получаю ошибку :
Менял 127.0.0.1 на localhost.
- Вопрос задан более трёх лет назад
- 12059 просмотров
Средний 2 комментария
у меня была такая проблема когда перерёл на винде с докер на докер тулбокс
решил её добавив в docker-compose.yml в настроки mysql
Правильный ответ
Пришлось сделать ДВА(!) конфига . Отдельно для консоли и для остального приложения. Разница в
dsn.
Для консоли
‘dsn’ => ‘mysql:host=127.0.0.1;dbname=project’,
Для остального приложения
‘dsn’ => ‘mysql:host=mysql;dbname=project’,
Пытаюсь использовать YII локально с докером.
Привет, столкнулся с той же проблемой, решил твоим методом
Изменил ‘host=127.0.0.1’ на ‘host=mysql’ и ошибка пропала.
Хочу уточнить, ты пишешь:
«Для остального приложения
‘dsn’ => ‘mysql:host=mysql;dbname=project’, «
‘host = mysql’ это потому что контейнер с базой данных так называется (mysql) или если по-другому, то почему?
Источник
Docker MYSQL ‘[2002] Connection refused’
I was trying out Docker for the first time. Got a LEMP stack up and running, but I can’t connect to the MYSQL Database. Not on my Symfony application, not on PHPMyAdmin. The applications are returning the following error code:
An exception occured in driver: SQLSTATE[HY000] [2002] Connection refused
This is my docker-compose.yml:
Could someone help me out? Thank you for your time.
8 Answers 8
The ‘[2002] Connection refused’ means you can reach the database server, but you don’t have right access for the user (in your case admin). By default mariadb have a root user with the password given by MYSQL_ROOT_PASSWORD and this user can connect from any server (%).
If you want use an over login to your databases, you have to create it in the databases server with the right granting on databases from chosen locations.
The problem here is that you have named your database server as ‘mysql’ (service name in the docker-compose file). But by default phpmyadmin tries to connect to a database server named ‘db’. Adding PMA_HOST: mysql under the environment section of the phpmyadmin service will resolve this problem.
I think that MYSQL_USERNAME and PMA_ARBITRARY are useless if you work with default configuration (connection with root to your databases server)
Источник
Устраняем типичные ошибки в 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 брандмауэром или любой другой службой блокировки портов.
Для поиска порта, который прослушивается сервером, используйте команду netstat .
Не удаётся подключиться к серверу 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 .
В первом случае убедитесь, что у вас стабильное сетевое подключение (особенно, если подключаетесь удалённо).
Если проблема с тайм-аутом соединения (особенно при первоначальном соединении 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 во время выполнения других процессов откройте окно командной строки и введите следующее:
Заключение
Самое важное при диагностике — понять, что именно вызвало ошибку. Следующие шаги помогут вам в этом:
- Первый и самый важный шаг — просмотреть журналы MySQL, которые хранятся в каталоге /var/log/mysql/ . Вы можете использовать утилиты командной строки вроде tail для чтения файлов журнала.
- Если служба MySQL не запускается, проверьте её состояние с помощью systemctl . Или используйте команду journalctl (с флагом -xe ) в systemd.
- Вы также можете проверить файл системного журнала (например, /var/log/messages ) на предмет обнаружения ошибок.
- Попробуйте использовать такие инструменты, как Mytop, glances, top, ps или htop, чтобы проверить, какая программа использует весь ресурс процессора или блокирует машину. Они также помогут определить нехватку памяти, дискового пространства, файловых дескрипторов или какого-либо другого важного ресурса.
- Если проблема в каком-либо процессе, можно попытаться его принудительно остановить, а затем запустить (при необходимости).
- Если вы уверены, что проблемы именно на стороне сервера, можете выполнить команды: mysqladmin -u root ping или mysqladmin -u root processlist , чтобы получить от него ответ.
- Если при подключении проблема не связана с сервером, проверьте, нормально ли работает клиент. Попробуйте получить какие-либо его выходные данные для устранения неполадок.
Источник
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, как показано ниже.
$ ps xa | grep mysqld | grep -v mysqld
Если эти команды не показывают выходных данных, то сервер БД не работает. Поэтому клиент не может подключиться к нему. Чтобы запустить сервер, выполните команду systemctl.
$ sudo systemctl start mysql #Debian/Ubuntu
$ sudo systemctl start mysqld #RHEL/CentOS/Fedora
Чтобы проверить состояние службы MySQL, используйте следующую команду:
$ sudo systemctl status mysql #Debian/Ubuntu
$ sudo systemctl status mysqld #RHEL/CentOS/Fedora
Если в результате выполнения команды произошла ошибка службы MySQL, вы можете попробовать перезапустить службу и ещё раз проверить её состояние.
$ sudo systemctl restart mysql
$ sudo systemctl status mysql
Если сервер работает (как показано) и вы по-прежнему видите эту ошибку, вам следует проверить, не заблокирован ли порт TCP/IP брандмауэром или любой другой службой блокировки портов.
Для поиска порта, который прослушивается сервером, используйте команду netstat.
$ sudo netstat -tlpn | grep "mysql"
Ещё одна похожая и часто встречающаяся ошибка подключения — «(2003) Can’t connect to MySQL server on ‘server’ (10061)». Это означает, что в сетевом соединении было отказано.
Следует проверить, работает ли в системе сервер MySQL (смотрите выше) и на тот ли порт вы подключаетесь (как найти порт, можно посмотреть выше).
Похожие частые ошибки, с которыми вы можете столкнуться при попытке подключиться к серверу MySQL:
ERROR 2003: Cannot connect to MySQL server on 'host_name' (111)
ERROR 2002: Cannot connect to local MySQL server through socket '/tmp/mysql.sock' (111)
Ошибки запрета доступа в MySQL
В MySQL учётная запись (УЗ) определяется именем пользователя и клиентским хостом, с которого пользователь может подключиться. УЗ может также иметь данные для аутентификации (например, пароль).
Причин для запрета доступа может быть много. Одна из них связана с учётными записями MySQL, которые сервер разрешает использовать клиентским программам при подключении. Это означает, что имя пользователя, указанное в соединении, может не иметь прав доступа к базе данных.
В MySQL есть возможность создавать учётные записи, позволяющие пользователям клиентских программ подключаться к серверу и получать доступ к данным. Поэтому при ошибке доступа проверьте разрешение УЗ на подключение к серверу через клиентскую программу.
Увидеть разрешённые привилегии учётной записи можно, выполнив в консоли команду SHOW GRANTS
Входим в консоль (пример для Unix, для Windows консоль можно найти в стартовом меню):
В консоли вводим команду:
> SHOW GRANTS FOR 'tecmint'@'localhost';
Дать привилегии конкретному пользователю в БД по IP-адресу можно, используя следующие команды:
> grant all privileges on *.test_db to 'tecmint'@'192.168.0.100';
> flush privileges;
Ошибки запрещённого доступа могут также возникнуть из-за проблем с подключением к MySQL (см. выше).
Потеря соединения с сервером MySQL
С этой ошибкой можно столкнуться по одной из следующих причин:
- плохое сетевое соединение;
- истекло время ожидания соединения;
- размер BLOB больше, чем
max_allowed_packet.
В первом случае убедитесь, что у вас стабильное сетевое подключение (особенно, если подключаетесь удалённо).
Если проблема с тайм-аутом соединения (особенно при первоначальном соединении MySQL с сервером), увеличьте значение параметра connect_timeout.
В случае с размером BLOB нужно установить более высокое значение для max_allowed_packet в файле конфигурации /etc/my.cnf в разделах [mysqld] или [client] как показано ниже.
[mysqld]
connect_timeout=100
max_allowed_packet=500M
Если файл конфигурации недоступен, это значение можно установить с помощью следующей команды.
> SET GLOBAL connect_timeout=100;
> SET GLOBAL max_allowed_packet=524288000;
Слишком много подключений
Эта ошибка означает, что все доступные соединения используются клиентскими программами. Количество соединений (по умолчанию 151) контролируется системной переменной max_connections. Устранить проблему можно, увеличив значение переменной в файле конфигурации /etc/my.cnf.
[mysqld]
max_connections=1000
Недостаточно памяти
Если такая ошибка возникла, это может означать, что в MySQL недостаточно памяти для хранения всего результата запроса.
Сначала нужно убедиться, что запрос правильный. Если это так, то нужно выполнить одно из следующих действий:
- если клиент MySQL используется напрямую, запустите его с ключом
--quick switch, чтобы отключить кешированные результаты; - если вы используете драйвер MyODBC, пользовательский интерфейс (UI) имеет расширенную вкладку с опциями. Отметьте галочкой «Do not cache result» (не кешировать результат).
Также может помочь MySQL Tuner. Это полезный скрипт, который подключается к работающему серверу MySQL и даёт рекомендации по настройке для более высокой производительности.
$ sudo apt-get install mysqltuner #Debian/Ubuntu
$ sudo yum install mysqltuner #RHEL/CentOS/Fedora
$ mysqltuner
MySQL продолжает «падать»
Если такая проблема возникает, необходимо выяснить, заключается она в сервере или в клиенте. Обратите внимание, что многие сбои сервера вызваны повреждёнными файлами данных или индексными файлами.
Вы можете проверить состояние сервера, чтобы определить, как долго он работал.
$ sudo systemctl status mysql #Debian/Ubuntu
$ sudo systemctl status mysqld #RHEL/CentOS/Fedora
Чтобы узнать время безотказной работы сервера, запустите команду mysqladmin.
$ sudo mysqladmin version -p
Кроме того, можно остановить сервер, сделать отладку MySQL и снова запустить службу. Для отображения статистики процессов MySQL во время выполнения других процессов откройте окно командной строки и введите следующее:
$ sudo mysqladmin -i 5 status
Или
$ sudo mysqladmin -i 5 -r status
Заключение
Самое важное при диагностике — понять, что именно вызвало ошибку. Следующие шаги помогут вам в этом:
- Первый и самый важный шаг — просмотреть журналы MySQL, которые хранятся в каталоге
/var/log/mysql/. Вы можете использовать утилиты командной строки вродеtailдля чтения файлов журнала. - Если служба MySQL не запускается, проверьте её состояние с помощью
systemctl. Или используйте командуjournalctl(с флагом-xe) в systemd. - Вы также можете проверить файл системного журнала (например,
/var/log/messages) на предмет обнаружения ошибок. - Попробуйте использовать такие инструменты, как Mytop, glances, top, ps или htop, чтобы проверить, какая программа использует весь ресурс процессора или блокирует машину. Они также помогут определить нехватку памяти, дискового пространства, файловых дескрипторов или какого-либо другого важного ресурса.
- Если проблема в каком-либо процессе, можно попытаться его принудительно остановить, а затем запустить (при необходимости).
- Если вы уверены, что проблемы именно на стороне сервера, можете выполнить команды:
mysqladmin -u root pingилиmysqladmin -u root processlist, чтобы получить от него ответ. - Если при подключении проблема не связана с сервером, проверьте, нормально ли работает клиент. Попробуйте получить какие-либо его выходные данные для устранения неполадок.
Перевод статьи «Useful Tips to Troubleshoot Common Errors in MySQL»
Привет, Александр.
Поставил Денвер, и такая вот петрушка, вроде все установилось, но….
Денвер, MySQL сервер не отвечает, ошибка 2002 (45.64 Кб) Просмотров: 21248
- MySQL сервер не отвечает, ошибка 2002.
- Sergej
- Сообщения: 24
- Зарегистрирован: 15 сен 2014, 21:44
Re: Денвер, MySQL сервер не отвечает, ошибка 2002
Александр » 19 окт 2014, 13:20
Вообще, когда Денвер запускаешь, mysql сервер стартует?
Попробуй, отключив Антивирус и Брандмауэр запусти Денвер.
Для начала посмотри в диспетчере задач Windows, там должен быть процесс mysqld.exe
Если он там есть потом тебе нужно в командной строке Windows ввести:
- Код: Выделить всё
telnet 127.0.0.1 3306
Должен быть какой-то ответ от MySQL сервера в виде строки с каким-то текстом (могут быть кракозябы) это значит, что сервер ответил.
Если же будет сообщение типа «Не у далось открыть подключение к этому узлу на порт 3306….» — значит не подключается.
Тогда пробуй команду:
- Код: Выделить всё
telnet localhost 3306
Если она будет успешной, то возможно, проблема из серии настройки сети ipv6 и т. п.
http://forum.dklab.ru/viewtopic.php?t=38843
Если не успешно, смотри кто слушает порт 3306
В командной строке Windows выполни:
- Код: Выделить всё
netstat -an
(в выводе правой кнопкой мыши ищи 3306)
или более детальная:
- Код: Выделить всё
netstat -ab
Ну и на всякий случай убедись, что порт MySQL в конфигурационном файле задан как 3306, также посмотри файл ошибок MySQL
Стандартный проводник Windows может не показывать эти файлы, тогда пользуйся каким-нибудь файловым менеджером.
Где у тебя расположены эти файлы, см. на форуме Денвера, обычно конфигурационный лежит в Z:usrlocalmysql5 , файл ошибок в Z:usrlocalmysql5data
http://www.denwer.ru/faq/other.html#h30-15
- Александр
- Сообщения: 394
- Зарегистрирован: 20 мар 2014, 17:05
Re: Денвер, MySQL сервер не отвечает, ошибка 2002
Sergej » 19 окт 2014, 14:43
В диспетчере такого процесса нет хотя изначально при загрузке денвер в командной строке пишет что-то вроде:
Что касаемо порта 3306 я так понимаю это к нему относится
- Код: Выделить всё
# The following options will be passed to all MySQL client.[client]
port = 3306
socket = /tmp/mysql5.sock
character-sets-dir = /usr/local/mysql-5.5/share/charsets
# Кодировка консоли mysql.exe по умолчанию.
default-character-set = cp1251
# The MySQL server
[mysqld]
# Обработывать запросы ТОЛЬКО с локальной машины (повышает безопасность).
# Если вы хотите, чтобы MySQL-сервер был доступен из сети,
# уберите следующую ниже директиву.
bind-address = 127.0.0.1
port = 3306
Это в файле my.ini прописано
Файл с ошибками подкрепляю, погляди пожалуйста может чего увидишь
- Sergej
- Сообщения: 24
- Зарегистрирован: 15 сен 2014, 21:44
Re: Денвер, MySQL сервер не отвечает, ошибка 2002
Александр » 19 окт 2014, 17:30
Смотри в сторону конфигурационного файла и затребуемых там ресурсов памяти.
Вот похоже что обрывает процесс:
InnoDB: Error: auto-extending data file .ibdata1 is of a different size
InnoDB: 384 pages (rounded down to MB) than specified in the .cnf file:
InnoDB: initial 640 pages, max 0 (relevant if non-zero) pages!
141014 20:08:15 InnoDB: Could not open or create data files.
141014 20:08:15 InnoDB: If you tried to add new data files, and it failed here,
141014 20:08:15 InnoDB: you should now edit innodb_data_file_path in my.cnf back
141014 20:08:15 InnoDB: to what it was, and remove the new ibdata files InnoDB created
141014 20:08:15 InnoDB: in this failed attempt. InnoDB only wrote those files full of
141014 20:08:15 InnoDB: zeros, but did not yet use them in any way. But be careful: do not
141014 20:08:15 InnoDB: remove old data files which contain your precious data!
141014 20:08:15 [ERROR] Plugin ‘InnoDB’ init function returned error.
141014 20:08:15 [ERROR] Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed.
141014 20:08:15 [ERROR] Unknown/unsupported storage engine: InnoDB
141014 20:08:15 [ERROR] Aborting
Пробей в Яндексе по этим ошибкам.
Вот, кажется наиболее простое (Дмитрий Кóтеров кстати, разработчик Денвера)
http://forum.dklab.ru/viewtopic.php?t=14113
http://forum.dklab.ru/viewtopic.php?p=72845#72845
Думаю примерно так: у MySQL есть разные движки для хранения данных, основные: MyISAM и InnoDB. InnoDB, кажется, в Денвере не используется.
В силу каких-то твоих особенностей (может ты раньше Mysql/Денвер устанавливал, но плохо удалил или еще бог знает что..), в общем, кажется этот InnoDB пытается создать дополнительное хранилище и натыкается на какое-то ограничение в конфигурации.
Тебе нужно почитать как в Денвере устроено конфигурирование MySQL (один конфигурационный файл или есть еще где-то, если в конфиге какие-то лимиты не прописаны, может они по умолчанию в MySQL идут).
Может потребуется удалить файл типа .ibdata1 не знаю. Все удаления лучше делай в последюю очередь, даже лучше не удалять, наверное, а просто переименовывать.
Последний раз редактировалось Александр 24 ноя 2014, 14:42, всего редактировалось 1 раз.
- Александр
- Сообщения: 394
- Зарегистрирован: 20 мар 2014, 17:05
Re: Денвер, MySQL сервер не отвечает, ошибка 2002
Sergej » 20 окт 2014, 20:10
Спасибо помогло, теперь надо разобраться с ограничениями, он выкидывает какие то лимиты на загрузку файлов
- Sergej
- Сообщения: 24
- Зарегистрирован: 15 сен 2014, 21:44
Re: Денвер, MySQL сервер не отвечает, ошибка 2002
Sergej » 21 окт 2014, 19:46
Привет! Как всегда нужна твоя помощь, с денвером вроде разобрался, но вот досада при закачке файлов сайта на сервер возникают проблемы, судя по различным комментариям в инете это нормально, при возникновении каких любо проблем в самом phpadmyn отражаются какие именно необходимо решить вопросы, так все и шло изначально, но вдруг столкнулся с такой проблемой (#1064 — You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near »2014-08-‘ at line 1) и никак не могу найти толкового ответа, может подскажешь что это?
- Sergej
- Сообщения: 24
- Зарегистрирован: 15 сен 2014, 21:44
Re: Денвер, MySQL сервер не отвечает, ошибка 2002
Александр » 21 окт 2014, 20:53
Привет.
Т. е. ты хочешь залить на локальный mysql-сервер дамп, сделанный на хостинге? ты его случайно не открывал простым блокнотом и потом пересохранял?
Пришли мне на почту сам дамп что ли.
Чтобы сразу исключить и на будущее, почитай про BOM
http://mywordpress.ru/support/viewtopic.php?id=2461
вот еще
http://sqlinfo.ru/articles/info/15.html
Я тебе, кстати, писал когда-то, что стандартными windows редакторами не пользуйся т. к. там всякие «сюрпризы» могут быть, используй либо notepad++ либо notepad2
http://notepad-plus-plus.org
- Александр
- Сообщения: 394
- Зарегистрирован: 20 мар 2014, 17:05
Re: Денвер, MySQL сервер не отвечает, ошибка 2002
Sergej » 21 окт 2014, 21:26
Я его открывал и пересохранял но через notepad++
- Sergej
- Сообщения: 24
- Зарегистрирован: 15 сен 2014, 21:44
Re: Денвер, MySQL сервер не отвечает, ошибка 2002
Александр » 21 окт 2014, 22:16
Я смотрю, дамп имеет кодировку Windows-1251. Похоже, что при экспорте на хостинге в PhpMyAdmin или какая программа там еще, не знаю.. была выставлена кодировка Windows-1251 (синоним CP1251) а нужна UTF-8, насколько я понимаю..
И ты наверное пытаешься на Денвере залить через PhpMyAdmin этот файл как файл, имеющий кодировку UTF-8.
Примерно так, в общем, похоже на какую-то несогласованность в кодировках.
И еще, смотрю в дампе стоит тип ENGINE=InnoDB. Похоже хостер так настроил СУБД тип InnoDB и экспорт в Windows 1251.
Короче, в такой ситуации, думаю тебе пока не стоит заливать базу назад на хостинг…
Но для локальных экспериментов попробуй в Notepad++ перекодировать этот файл в UTF8 без BOM и поиском/заменой поменяй InnoDB на MyISAM.
Локально не страшно пробовать. На хостинг, опять повторяю, наверное лучше пока тебе не пытаться базу перезаливать, пока не разберешься что к чему.
- Александр
- Сообщения: 394
- Зарегистрирован: 20 мар 2014, 17:05
Re: Денвер, MySQL сервер не отвечает, ошибка 2002
Sergej » 21 окт 2014, 22:50
Понял буду пробовать
- Sergej
- Сообщения: 24
- Зарегистрирован: 15 сен 2014, 21:44
Вернуться в SQL
При компиляции мода возникает ошибка: Universal228.pwn(43580) : error 029: invalid expression, assumed zero
case dAlogin:
{
if(!response)
return 1;
if(PlayerInfo[playerid][pAdmin] <= 0)
return SendClientMessage(playerid, COLOR_LIGHTRED, «Вам запрещено использовать команду. Причина: Вы не администратор.»);
if(PlayerInfo[playerid][pAdmin] < 12 && PlayerInfo[playerid][pAdminBlockAlogin])
{
ShowBlockALoginDialog(playerid);
return 1;
}
if(isnull(inputtext))
{
return ShowAdminLoginDialog(playerid);
}
new password;
if(sscanf(inputtext, «i», password) || password != PlayerInfo[playerid][pDostup])
{
new attempt = GetPVarInt(playerid, pVar__AdminLoginAttempt)+1;
if(attempt >= MAX_ALOGIN_ATTEMPT)
{
PlayerInfo[playerid][pAdminBlockAlogin] = 1;
UpdatePlayerData(playerid, «admin_block_alogin», 1);
ShowBlockALoginDialog(playerid);
}
else
{
SetPVarInt(playerid, pVar__AdminLoginAttempt, attempt);
ShowAdminLoginDialog(playerid);
}
return 1;
}
else
{
DeletePVar(playerid, pVar__AdminLoginAttempt);
AdminLogin{playerid} = true;
if (0 == PlayerInfo[playerid][pPrefActive]) format(stringer, sizeof(stringer), «{FF4500}[Online] Зашел в онлайн администратор %s[%d] %d уровня. ( {FFFFFF}%s, %s {545c7e})»,
Name(playerid),
playerid,
AdminLevel(playerid),
GetPlayerCountry(playerid),
GetPlayerCity(playerid));
SendAdminMessage(0xF4B800AA, stringer);
TogglePlayerControllable(playerid, 1);
for(new i = 0;i<52;i++) EnableAntiCheatForPlayer(playerid, i, 0);
else format(stringer, sizeof(stringer), «{FF4500}[Online] Зашел в онлайн администратор %s %s[%d] %d уровня. ({FFFFFF}%s, %s {545c7e})», // строка 43580
Name(playerid),
playerid,
AdminLevel(playerid),
GetPlayerCountry(playerid),
GetPlayerCity(playerid));
SendAdminMessage(0xF4B800AA, stringer);
TogglePlayerControllable(playerid, 1);
for(new i = 0;i<52;i++) EnableAntiCheatForPlayer(playerid, i, 0);
if(!Iter_Contains(Connect_Admin, playerid))
{
Iter_Add(Connect_Admin, playerid);
}
}
return 1;
1 2012-10-28 18:55:37 (изменено: Дeнис, 2012-10-28 19:13:00)
- Дeнис
- Редкий гость
- Неактивен
- Зарегистрирован: 2012-10-28
- Сообщений: 2
Тема: Ошибка #2002 Невозможно подключиться к серверу MySQL
Доброго времени суток.Находил подобные вопросы в сети, но либо их решения мне не помогли, либо они так и оставались без ответов.
Имею VPS сервер с установленным php-fpm+nginx+mysql, из репозитория установил phpMyAdmin. Пытался через конфиги nginx настроить работу с PMA, (PMA установился в /usr/share/phpmyadmin, а сайт в /home/sitename/html) в итоге получил 503 ошибку, решил пойти проще и скопировал папку с файлами РМА в католог с сайтом, РМА запустился, но при вводе логина и пароля (логин и пароль от БД) выдает ошибку «#2002 Невозможно подключиться к серверу MySQL». Потом скачал PМA 3.5.3, закачал его в папку с сайтом, но при попытке входа в РМА получаю всё туже ошибку.
Содержимое конфига:
<?php
/*
* Generated configuration file
* Generated by: phpMyAdmin 3.5.3 setup script
* Date: Sun, 28 Oct 2012 12:21:40 +0400
*/
/* Servers configuration */
$i = 0;
/* Server: MySQL server [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = 'MySQL server';
$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'pass_db';
/* End of servers configuration */
$cfg['blowfish_secret'] = '538ceaf67c8508.82756758';
$cfg['DefaultLang'] = 'ru';
$cfg['ServerDefault'] = 1;
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
?>
Связка php-fpm+nginx+mysql полностью рабочая, это подтверждается тем что такие функции как «mysql_connect(‘127.0.0.1’, ‘root’, ‘pass_db’);» выполняются успешно, да и Joomla встала и работает отлично.;
$cfg[
2 Ответ от Hanut 2012-10-29 00:23:16
- Hanut
- Модератор
- Неактивен
- Откуда: Рига, Латвия
- Зарегистрирован: 2006-07-02
- Сообщений: 9,723
Re: Ошибка #2002 Невозможно подключиться к серверу MySQL
Не вижу причину по которой phpMyAdmin не работает. Если скрипты на хосте запускаются и подключаются к БД, то и phpMyAdmin должен это делать. Попробуйте очистить куки браузера. И так же попробуйте в хост прописать localhost.
3 Ответ от Дeнис 2012-10-29 09:30:28
- Дeнис
- Редкий гость
- Неактивен
- Зарегистрирован: 2012-10-28
- Сообщений: 2
Re: Ошибка #2002 Невозможно подключиться к серверу MySQL
Очистка куки не помогает, пробовал даже с другого компа. С прописыванием в хост localhost не все так просто, дело в том что скрипты выполняются из под chroot и не имеют доступа к этому самому localhost, и вместо него требуется указывать явный ip 127.0.0.1.
4 Ответ от Hanut 2012-10-29 10:09:30
- Hanut
- Модератор
- Неактивен
- Откуда: Рига, Латвия
- Зарегистрирован: 2006-07-02
- Сообщений: 9,723
Re: Ошибка #2002 Невозможно подключиться к серверу MySQL
Не знаю что подсказать. Поищите в логах ошибки, может будет за что уцепиться.








