Не удается подключиться к MySQL на Mac – отсутствует файл mysql.sock

Я установил MySQL на свою Mac OS 10.6 около недели назад, и, после некоторых игр, получил его, чтобы он работал нормально. Он интегрирован с python MySQLdb, и я также получил Sequel Pro для подключения к базе данных. Однако php не будет обращаться к серверу. Даже после того, как я добавил файл php.ini в / etc / и направил его к тому же носку, который использовал Sequel Pro: /tmp/mysql.sock.

Но теперь я не могу получить доступ к локальному серверу вообще. Насколько я могу судить, файл mysql.sock отсутствует на моем компьютере, а не в / tmp / или где-либо еще.

Я могу запустить сервер mysql из терминала, но через минуту он выводит меня автоматически:

110425 17:36:18 mysqld_safe Logging to '/usr/local/mysql/data/dn0a208bf7.sunet.err'. 110425 17:36:18 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data 110425 17:37:58 mysqld_safe mysqld from pid file /usr/local/mysql/data/dn0a208bf7.sunet.pid ended 

Если я попытаюсь вызвать «mysql» из командной строки (которая отлично работала ранее сегодня):

 ERROR 2002 (HY000): Can\'t connect to local MySQL server through socket '/tmp/mysql.sock' (2) 

Ошибка PHP, конечно же, аналогична:

 PHP Warning: mysql_real_escape_string(): [2002] No such file or directory (trying to connect via unix:///tmp/mysql.sock) 

Кроме того, в моем установочном каталоге mysql нет файла «my.cnf»: / usr / local / mysql. Существуют файлы my.cnf для установок mysql, которые поставляются вместе с XAMPP. У них также есть сокет по умолчанию, указанный как «/tmp/mysql.sock», но мне пришлось вручную их менять.

Любые идеи, что происходит? Почему изменение файла php.ini привело к изменению для Sequel Pro?

    Прежде всего, я предлагаю вам использовать доморощенный, чтобы установить любые библиотеки или инструменты третьей части на вашем mac. Посмотрите: http://mxcl.github.com/homebrew/

    В противном случае для вашей проблемы вы можете искать, где находится mysql-сокет на вашем mac, а затем символически привязывать его к / tmp.

    В вашем терминале попробуйте что-то вроде:

     locate mysql | grep sock 

    Вы получите что-то вроде:

     /the/path/to/mysql.sock 

    Затем выполните:

     ln -s /the/path/to/mysql.sock /tmp/mysql.sock 

    Это должно сработать.

    Также вы можете отредактировать файл php.ini, чтобы установить правильный путь для сокета mysql.

    Надеюсь, эта помощь.

    Я получал некоторую подобную ошибку и оказался здесь. Я использую OSX 10.9.5. Это решило мои проблемы (надеюсь, что это помогает кому-то).

    1) sudo mkdir / var / mysql

    2) sudo ln -s /private/tmp/mysql.sock /var/mysql/mysql.sock

    Дополнительная информация: http://glidingphenomena.blogspot.com.br/2010/03/fixing-warning-mysqlconnect-cant.html

    Благодаря!

    Хорошо, я просто провел пару часов, борясь с этой же проблемой. Я установил файл dmg для MySql 5.5.20 (64 бит) для osx 10.6 на моем iMac с OSX 10.7.2 – и отсутствует /tmp/mysql.sock!

    Ответ оказался простой установкой MySQLStartupItem.pkg, который поставляется с файлом dmg и перезапускает систему. Это запускает демонов при запуске (что, я надеюсь, будет необязательным).

    Волшебно, мой файл /tmp/mysql.sock появился, и все в порядке!

    Я собираюсь бросить свои два цента здесь, потому что у меня тоже была эта проблема, но мои обстоятельства были ненормальными для большинства. Моя система имела смешанную установку Zend Server CE и XAMPP. Я запускаю Mac OS X. И я решил удалить Zend из своей системы, потому что это было болью в моем прикладе.

    После удаления Zend, поскольку оба использовали один и тот же БД, а у Zend была моя система, она сходила с ума. Не удалось удалить и переустановить XAMPP. Через пару часов (что я только что сделал) с устранением неполадок я обнаружил, что мне нужно искать мою систему для всех копий my.cnf. Причина в том, что mysql все еще пытался найти путь Zend mysql, и он терпел неудачу.

    Поэтому я нашел его, чтобы найти его. Мне пришлось инициировать поиск (так как я никогда раньше не использовал его), чтобы он мог создавать БД файлов в моей системе. Затем я запустил «locate my.cnf», и я нашел его в «/ private / etc». Поэтому я просто переименовал файл в my.cnf.old и снова попытался запустить MySQL. Бам! Он работает сейчас.

    Я скажу это, я должен был помочь коллеге, потому что я просто вращал свои колеса на этом. Я действительно надеюсь, что это поможет кому-то там. Благодаря!

    Я также получил эту ошибку при новой установке XAMPP.

    Для тех, кто не устраивает командную строку, есть другой способ.

    Основываясь на приведенном выше совете (спасибо), я использовал свой старый стандарт «Easy Find», чтобы найти последнюю версию my.cnf. Открыв файл в редакторе, я обнаружил, что файл сокета указывал на:

    socket = /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock

    Я обновил Navicat's Advanced properties / Используйте файл сокета по пути выше и бинго.

    Надеюсь, это поможет кому-то.

    Найдено решение:
    У меня была такая же проблема, и я много раз искал, но не смог решить проблему, пока не посмотрел на мой конфигурационный файл MySql. В моем конфигурационном файле сокет находился в строке 21, и путь был
    "/Applications/AMPPS/var/mysql.sock"

    В приложении Ampps нажмите вкладку MySql, а затем нажмите кнопку конфигурации.

    Вы также можете найти файл конфигурации в папке «/ Applications / AMPPS / mysql / etc»

    Так просто я добавил
    'unix_socket' => '/Applications/AMPPS/var/mysql.sock',
    к моему database.php в массиве mysql, и это сработало для меня.
    После строки хоста. Я тестировал с localhost и 127.0.0.1, и оба работали
    Надеюсь, он тоже работает на вас.