Я установил 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, и оба работали
Надеюсь, он тоже работает на вас.