2013-02-22 4 views
52

Недавно я попытался установить MySQL с доморощенным (brew install mysql) и когда я пытаюсь запустить его, я получаю следующее сообщение об ошибке:Не удается подключиться к локальному серверу MySQL через разъем доморощенного

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

Существует нет /tmp/mysql.sock, ни /var/lib/mysql.sock.

Я искал и не нашел никакого файла mysql.sock.

Как это исправить?

+0

Вы можете увидеть эту ссылку. Ответ GeekHades. http://stackoverflow.com/questions/4847069/mysql-sock-is-not-created-osx/41605617#41605617 – GeekHades

+0

Я заварил установленную mysql и имел такую ​​же проблему после того, как моя батарея для ноутбука умерла и вынуждена была завершить незавершенное закрытие. Стоит запустить 'mysqld' для проверки вещей и обеспечения корректности работы MySQL в последний раз. Если у него было «грязное» выключение (например, если аккумулятор ноутбука заставляет отключить систему), это должно очистить его. Затем вы можете снова запустить сервер MySQL: 'mysql.server start'. –

+0

Ни один из ответов здесь не работал для меня. – Antimony

ответ

19

Попробуйте подключиться, используя «127.0.0.1» вместо «localhost».

+0

Это сработало для меня. – freshyill

+0

Спасибо !!!! Я использую рельсы 4 с пассажиром (apache) на mac osx 10.9 – StupidDev

+0

Это сработало и для меня. Не могли бы вы объяснить, почему? – Esteban

39

Похоже, что ваш сервер mysql не запущен. Обычно я запускаю команду останова, а затем запускаю ее снова:

mysqld stop 
mysql.server start 

Такая же ошибка, и это работает для меня.

+1

, который работал для меня, спасибо за публикацию. –

+39

. ОШИБКА!Сервер завершает работу без обновления PID-файла (/usr/local/var/mysql/myHostName.pid). ? – Pesulap

61

Когда вы получили сервер с помощью

mysql.server start

вы должны увидеть гнездо в /tmp/mysql.sock. Однако система, похоже, ожидает этого в /var/mysql/mysql.sock. Чтобы это исправить, необходимо создать символьную ссылку в /вар/MySQL:

sudo mkdir /var/mysql

sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

Это решило его для меня. Теперь мой phpMyAdmin работает с localhostи127.0.0.1.

Заслуга Henry

+1

Это также решило мою проблему с тем, что Wordpress не смог подключиться к mySQL. Еще раз спасибо – Ayoub

+1

Пробовал много команд, и это спасло мою жизнь. спасибо man .. – Viraths

+1

Когда я пытаюсь запустить mysql.server, я получаю 'ERROR! Сервер завершает работу без обновления PID-файла (/usr/local/var/mysql/lyahdav-C02R32HCG8WM.pid) '. Мне понадобилась старая версия MySQL, установленная через 'brew install mysql @ 5.6'. –

3

Я получил ту же ошибку, и это то, что помогло мне:

$ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents 
$launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist 
$mysql -uroot 
mysql> 
5

1) Если вы в состоянии начать MySQL с ниже команды;

mysql server start 

2) и если вы можете увидеть «mysql остановлен», когда вы бежите под командой;

brew services list 

, добавляя mysql к услугам, исправит вашу проблему. С помощью этого метода mysql запускается как служба при запуске вашей системы. Для этого вы можете выполнить команду ниже;

brew services start mysql 

После этого вы можете перезагрузить систему и попробовать подключиться к mysql. Я сделал то же самое и прекратил получать ниже ошибки;

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

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

+0

Тот же вопрос для меня, я не знаю почему? – GeekHades

2

Вам нужно запустить mysql_install_db - самый простой способ, если вы находитесь в директории установки:

$ cd /usr/local/Cellar/mysql/<version>/ 
$ mysql_install_db 

В качестве альтернативы, вы можете кормить mysql_install_db параметр basedir как следующее:

$ mysql_install_db --basedir="$(brew --prefix mysql)" 
1

Я столкнулся с той же проблемой на своем mac и решил ее, выполнив следующие уроки

https://mariadb.com/resources/blog/installing-mariadb-10116-mac-os-x-homebrew

Но не забудьте удалить или удалить старую версию перед продолжением.

Команды:

brew uninstall mariadb 

xcode-select --install 

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" - See more at: https://mariadb.com/resources/blog/installing-mariadb-10116-mac-os-x-homebrew#sthash.XQoxRoJp.dpuf 

brew doctor 

brew update 

brew info mariadb 

brew install mariadb 

mysql_install_db 

mysql.server start 
+0

Пожалуйста, объясните несколько кратких примеров того, как ссылка, которую вы предоставили, помогла вам. Ссылки могут исчезнуть, и поэтому это может быть причиной того, что ваш ответ может быть удален. –

+0

Я обновил сообщение с помощью команд, надеюсь, это поможет –

0

Просто, чтобы добавить к этим ответам, в моем случае я не имел локальный сервер MySql, он работает внутри Docker контейнера. Таким образом, файл сокета не существует и не будет доступен для клиента «mysql».

Файл с носками создается mysqld, и mysql использует это для связи с ним. Однако, если ваш сервер mySql не работает локально, он не требует файла сока.

Указывая имя хоста/ip, файл sock не требуется, например.

mysql --host=127.0.0.1 --port=3306 --user=xyz --password=xyz 
0

только для заполнения этой темы. поэтому MAMP (PRO) используется довольно часто

путь здесь

/Applications/MAMP/tmp/mysql/mysql.sock 
-1

сокет не создается при перезагрузке туздЫ слишком быстро после его остановки:

brew services stop mysql;brew services start mysql 
ls /tmp/mysql.sock // socket not created 

Ожидание 3 за секунды до перезапуска mysql исправляет это:

brew services stop mysql;sleep 3;brew services start mysql 
sleep 1.5 // Note that it takes a second after mysql starts to create the socket 
ls /tmp/mysql.sock // socket created! 
Смежные вопросы