Назад | Перейти на главную страницу

MySQL запускается нормально, но не может подключиться к нему

Версия MySQL

mysql  Ver 14.12 Distrib 5.0.77, for redhat-linux-gnu (i386) using readline 5.1

Перезагрузил машину. Потом попробовал ...

$ ps aux | grep mysql
mysql     3298  0.0  0.8 136772 17216 ?        Rl   12:13   0:00 
  /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql 
  --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking 
  --socket=/var/lib/mysql/mysql.sock
xxxxx    3311  0.0  0.0   4000   680 pts/1    R+   12:13   0:00 
  grep mysql
root      3461  2.3  0.0   4624  1232 ?        S    11:55   0:26 
  /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql 
    --socket=/var/lib/mysql/mysql.sock --log-error=/var/log/mysqld.log 
    --pid-file=/var/run/mysqld/mysqld.pid --user=mysql

Итак, mysqld запущен.

Однако я не могу установить к нему клиентское соединение ...

$ mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through 
  socket '/var/lib/mysql/mysql.sock' (2)

Когда я пытаюсь подключиться с другого компьютера с помощью Sequel Pro, я получаю сообщение об ошибке ...

«MySQL сказал: потеряно соединение с сервером MySQL при« чтении начального пакета связи », системная ошибка: 61»

Сообщение ERROR 2002 (HY000): обычно означает, что mysqld не запущен.

Из комментариев: сообщение "Error writing file '/var/run/mysqld/mysqld.pid'" появляется в mysql.log

Решение:

Устройство с вашим /var файловая система заполнена, и файл mysqld.pid не может быть создан, поэтому mysqld не запускается.

Освободите место в файловой системе / var.

Завершите процессы mysqld и mysqld_safe с помощью kill (сначала попробуйте 15, а если не удается остановить, попробуйте 9), а затем попробуйте перезапустить mysql. Также убедитесь, что mysql не привязан к определенному IP.

- $

Попробуйте запустить mysql, используя mysqld_safe --console из командной строки, тогда он не отсоединится от терминала. Проверьте консоль на наличие ошибок, также проверьте файл журнала на наличие ошибок (он напечатает абсолютный путь к файлу журнала на консоли, что-то вроде 110818 23:53:57 mysqld_safe Logging to '/var/log/mysqld.log'.). Конечно, вы должны остановить существующий экземпляр mysql перед запуском mysqld_safe --console