ПОМИЛКА 2002 (HY000): не вдається підключитися до локального сервера MySQL через сокет '/tmp/mysql.sock'


202

Я встановив MySQL на Mac OS X Mountain Lion за допомогою homebrew install mysql, але коли я спробував, mysql -u rootя отримав таку помилку:

ПОМИЛКА 2002 (HY000): не вдається підключитися до локального сервера MySQL через сокет '/tmp/mysql.sock' (2)

Що означає ця помилка? Як я можу це виправити?


3
Не опублікував це як відповідь, але вам доведеться install mysql-serverтакож відмовитись, а не простоmysql
Hanky ​​Panky

3
@HankyPanky, можливо, це було правдою, коли ти це писав. Але в 2016 Brew не має mysql-serverдо install.
jjpe

22
Важливо зауважити, що ви встановили за допомогою Homebrew, тому ігноруйте поради, які не є домашньою мовою, і запускайте (і перезапускайте при запуску) з brew services start mysqlабо (якщо ви не хочете фонову послугу) mysql.server start.
Дейв Еверітт

1
Я змусив його працювати, але зі старим звичайним mysql 5.7.19. Нова версія mysql@5.7 5.7.24не могла працювати, тому що деякі посилання на конфігурацію зберігалися пов'язаними зі старим mysql замість нового варіння підвалу mysql@5.7 Keg. Тож дякую, я спробую це пізніше
KeitelDOG

1
Ця помилка також може виникнути після запуску, brew upgradeякий встановить нову версію mysql, ніж раніше встановлена.
johnsampson

Відповіді:


113

Можливо, тому, що MySQL встановлений, але ще не працює.

Щоб переконатися, що він працює, відкрийте Монітор активності та в розділі "Усі процеси" шукайте та переконайтеся, що ви бачите процес "mysqld".

Ви можете запустити його, встановивши "MySQL.prefPane".

Ось повний підручник, який мені допоміг: http://obsuredclarity.blogspot.in/2009/08/install-mysql-on-mac-os-x.html


95
Я просто забіг, mysqldі це все, це проблема, викликана поганим відключенням через якесь жорстке скидання / відключення системи.
ProfNandaa

2
Жоден із запропонованих методів не працював. Для мене це було запущено, проте виникла дозвіл. Біг sudo chown -R _mysql:mysql /usr/local/var/mysql && sudo brew services restart mysql@5.7вирішив проблему
FooBar

При перегляді Монітора активності виконується mysqlId; щоб обійти це, просто зупиніть mysql, а потім перезапустіть його.
JpersaudCodezit

108

Вам потрібно запустити MySQL, перш ніж ви зможете використовувати mysqlкоманду на своєму терміналі. Для цього запустіть brew services start mysql. За замовчуванням Brew встановлює базу даних MySQL без пароля root. Щоб забезпечити його запуск:mysql_secure_installation .

Для підключення перспективи: mysql -uroot. rootтут ім'я користувача.


8
Біг sudo chown -R _mysql:mysql /usr/local/var/mysql && sudo brew services restart mysql@5.7вирішив проблему
FooBar

1
Для тих, хто цікавиться mysql_secure_installation, це специфічний сценарій mariaDB.
T.Woody

3
brew services start mysqlуспіх. Але коли я біжу mysql -urootза ним, все одно та сама помилка.
Харпер

чи потрібно це запускати кожного разу при запуску Mac чи буде його працювати один раз, щоб позбутися помилки / зберегти MySQL запуск або запустити при запуску?
Connor Leech

Запустити це один раз повинно вистачити.
Пані Мазедул Іслам Хан

90

Це сталося після встановлення домашнього перекладу і відбувається через проблеми з дозволом. Наступні команди вирішили проблему.

sudo chown -R _mysql:mysql /usr/local/var/mysql

sudo mysql.server start

2
ти дивовижний @nirojan, я вдарив головою об стіну: thumsup:
Раві Шарма

Класно. Я можу вирішити свою проблему при зміні на інший обліковий запис адміністратора mac :)
Вільям Вонг Гарай

Завдяки мільйонів. Я тріснув головою вже більше 5 годин. В Інтернеті побачили кілька відповідей, і лише це допомогло.
ivange94

Я тебе люблю @nirojan
Єнот

Кудо! Але коли я перезапустив MacBook, у мене виникла та сама проблема.
Юніор Гантін

46

Виконати: brew info mysql

І дотримуйтесь інструкцій. З опису у формулі:

Set up databases to run AS YOUR USER ACCOUNT with:
    unset TMPDIR
    mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

To set up base tables in another folder, or use a different user to run
mysqld, view the help for mysql_install_db:
    mysql_install_db --help

and view the MySQL documentation:
  * http://dev.mysql.com/doc/refman/5.5/en/mysql-install-db.html
  * http://dev.mysql.com/doc/refman/5.5/en/default-privileges.html

Сподіваюсь, це допомагає.


35

Як зазначають інші, це тому, що MySQL встановлений, але служба не працює. Існує багато способів запустити службу MySQL, і те, що для мене працювало, - нижче.

Щоб запустити послугу:

  1. Перейдіть до "Налаштування системи"
  2. На нижній панелі має бути значок MySql.
  3. Двічі клацніть, щоб запустити "Стан MySQL сервера", і натисніть кнопку "Запустити MySQL Server"

Моє оточення:

Mac Yosemite 10.10.3

Встановлений пакет: /Volumes/mysql-advanced-5.6.24-osx10.8-x86_64


@HosMercury Ви можете підтвердити, що у вас встановлений MySQL
Ithar

Я завантажую та встановлюю mysql з офіційної веб-сторінки Mysql. Це рішення працює для мене. Дякую :)
鄭元傑

1
Привіт, я також завантажив і встановив mysql з офіційної веб-сторінки, але на панелі налаштувань сервер не активується (червона крапка), коли я натискаю "запустити sql-сервер", на секунду стає "зеленим", а назад - червоним, нічого не відбувається. Я спробував 'chown', symlink до tmp / mysql.socket, видалити / перевстановити, варити встановити mysql, але все не вдалося. інсталяція варіння дає мені незадовільну помилку, щось про те, щоб вимагати Sierra або вище ОС. Я керую ель-капітаном. Будь-яка допомога буде вдячна.
Спенсер Трінь

24

Рішення обертаються навколо:

  • зміна дозволів MySQL

    sudo chown -R _mysql:mysql /usr/local/var/mysql
  • Запуск процесу MySQL

    sudo mysql.server start

Просто додайте багато чудових і корисних відповідей, які були надані тут, і з багатьох різних постів, спробуйте вказати хоста, якщо вищевказані команди не вирішили для вас це питання, тобто

mysql -u root -p h127.0.0.1

Для мене це був дозвіл
pfwd

це має бути: mysql -u root -p -h127.0.0.1
Duc Chi

Нічого собі, таке краще рішення, ніж витирання всіх моїх місцевих речей. Це було швидко виправити!
Йорданія

Я спробував вище, але, зрештою, це спрацювало: sudo chown -R $ (whoami) $ (brew - prefix) / *
Кіран Рут R

15

Попередження - цей метод видалить усі ваші бази даних у /usr/local/var/mysqlпапці

У мене був встановлений MySQL за допомогою Homebrew, і єдине, що для мене виправило це перевстановлення MySQL.

На своєму ноутбуці компанії я не мав дозволу на видалення MySQL зі свого комп’ютера через Homebrew:

$ brew uninstall mysql --ignore-dependencies
Uninstalling /usr/local/Cellar/mysql/8.0.12... (255 files, 233.0MB)
Error: Permission denied @ dir_s_rmdir - /usr/local/Cellar/mysql/8.0.12

Тому замість цього я видалив і встановив MySQL вручну:

$ sudo rm -rf /usr/local/Cellar/mysql
$ brew cleanup
$ sudo rm -rf /usr/local/var/mysql
$ brew install mysql

І це спрацювало!


Попередження - цей метод видалить усі ваші бази даних (у папці / usr / local / var / mysql).
johnsampson

13

Нижче я включаю останні вказівки, brew install mysqlзавдяки яким новіші пошуки цієї проблеми можуть принести користь:

$ brew install mysql
==> Downloading https://homebrew.bintray.com/bottles/mysql-5.6.26.yosemite.bottle.1.tar.gz
######################################################################## 100.0%
==> Pouring mysql-5.6.26.yosemite.bottle.1.tar.gz

To connect:
    mysql -uroot

To have launchd start mysql at login:
  ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
Then to load mysql now:
  launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Or, if you don't want/need launchctl, you can just run:
  mysql.server start

У моєму випадку я зараз завантажив mysql через launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plistі тоді міг запуститись $ mysqlі стати на шляху.

Я сподіваюся, що це допомагає останнім засобам усунення несправностей!


11

Схоже, ваш сервер mysql не запущений. Зазвичай я запускаю команду stop і потім запускаю її знову:

mysqld stop
mysql.server start

Така ж помилка, і це працює для мене.


9

Це вирішило мою проблему, коли я перезапустив службу mysql. Просто запустіть:

brew services start mysql

8

цю проблему, пов’язану з /usr/local/var/mysqlдоступом до папки, я видаляю цю папку і переустановлюю mysql.

  1. видаліть mysql з варити:

    brew uninstall mysql

  2. sudo rm -r /usr/local/var/mysql

  3. brew install mysql@8.0
  4. mysql -u root

Це рішення прекрасно працює для мене! АЛЕ ВИ ВІДБУЛИ ВСІ ВАШІ ДАНІ! УВАГА!


2
Це більш ніж ймовірно вирішить проблему, однак майбутнім читачам буде попереджено, що це знищить усі ваші бази даних. В основному це важка перевстановлення MySQL. Я знаю, що контекст питання був новим встановленням, але деякі люди, які сканують, можуть просто спробувати це, не знаючи про шкоду, яку він може завдати на існуючій / виробничій установці.
efru

1
Це насправді не рішення. Це "Ви намагалися знову вмикати та вимикати?"
Беррі М.

6

О, це знадобило мені час, щоб розібратися. Я це побачив у коментарі. Після встановлення mysql за допомогою brew та запуску служби (можливо, використання sudo brew services start mysql) потім запустіть:

$ mysqld

І після цього MySQL має працювати.


5

Для мене це було просто, як біг:

/usr/local/opt/mysql/bin/mysqld_safe

замість mysqld


1
Це працювало для мене. Не знаю чому, але це може бути пов'язано з помилкою перезавантаження Mac OS на моїй машині
kraftydevil

3

Я знайшов рішення своєї проблеми. Це було справді тому, що мій сервер MySQL не працював.

Це було спричинене неправильним налаштуванням MySQL на моїй машині, таким чином, неможливо запустити.

Щоб виправити це, я використав сценарій, який встановлює MySQL на Mac OSX Mountain Lion , в якому повинен бути встановлений відсутні файли.

Ось посилання: http://code.macminivault.com/

Важлива примітка: Цей скрипт встановлює корінь паролем як довільно генерований рядок, який він зберігає на Робочому столі, тому будьте обережні, щоб не видалити цей файл та зазначити пароль. Він також встановлює MySQL-менеджер у ваших системних налаштуваннях. Я також не впевнений, чи вилучає будь-які існуючі бази даних, тому будьте обережні.


3

У моєму випадку це було просто питанням видалення файлу блокування.

sudo rm -f /tmp/mysql.sock.lock

3

Я пройшов цю проблему, і мені вдалося запустити сервер mysql, використовуючи рішення нижче

Встановіть mysql через .dmg( https://dev.mysql.com/downloads/mysql/5.7.html ), ви отримаєте панель обслуговування mysql у системних налаштуваннях, потім запустіть mysql з панелі та спробуйте

mysql -u root -p

Зображення додаються для довідок

Налаштування системи

Панель Mysql


2

Пропрацювавши над цим кілька годин, те, що працювало для мене, - перейти до / etc / mysql / та відредагувати файл my.cnf. Додайте наступне

[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock

1
Це зробило трюк і для мене, хоча для моєї версії os / mysql це було: /etc/my.conf, а сокет знаходився в /var/lib/mysql/mysql.sock /var/log/mysqld.log повинен вказувати ви туди, де знаходиться файл сокета.
keithpjolley

1

Я намагався всіма можливими способами вирішити цю проблему, як-от ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock, видаліть та перевстановіть mysql, переконайтесь, що mysql працює на xampp, але жоден з них все ще не працював .

Нарешті, я відкриваю my.cnf (конфігураційний файл) і копіюю шлях сокета (переконайтеся, що скопіюйте повний шлях, інакше він не працюватиме). Потім я виконую цю команду в своєму терміналі

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

Ось, і ось, запускається mysql.

Це рішення працюватиме лише в тому випадку, якщо ваш MySQL показаний на Xampp / Ampps, але в терміналі він все ще не підключається до правого сокета, коли ви вже намагалися щось подібне:

./mysql -u root

або

brew services start mysql

Я сподіваюся, що це допомагає!


Я також спробував кожне запропоноване рішення з цієї посади, і воно не спрацювало. Вам потрібен встановити xampp? я з цим не знайомий. Я встановив тільки версію GPL сервера mysql з офіційного веб-сайту (.DMG). Я не вірю, що у мене є ця програма - XAMPP. Чи можете ви, будь ласка, докладно? Дякую.
Спенсер Трінь

1

тільки це зробило для мене хитрість brew services start --all (після спробу всіх відповідей)


2
Поясніть, як це пов’язано з питанням.
mentallurg

1

Я б рекомендував вам бігти

  mysql.server start

перед тим, як поїхати

  mysql -u root -p

щоб переконатися, що сервер mysql працює, перш ніж спробувати увійти в нього

Це трапляється багато разів, коли ви запускаєте / перезапускаєте машину, на якій не працює жоден сервер mysql.


1

Я продовжую повертатися до цієї публікації, я кілька разів стикався з цією помилкою. Це може мати відношення до імпорту всіх моїх баз даних після нової установки.

Я використовую домашнє пиво. Єдине, що для мене це виправляло:

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

Сьогодні вранці питання повернулося після того, як моя машина вирішила вимкнутись на ніч. Єдине, що виправили це зараз, - оновити mysql.

brew upgrade mysql

0

У моєму випадку відразу після встановлення MAMP для доступу до mysql з терміналу була така ж помилка сокета. Зрештою, все, що він хотів, - це перезапуск, і він працює.


0

Тут багато інших корисних відповідей, але нічого для мене це не виправлено. Зрештою, нічого, що я знайшов на цьому веб-сайті чи інших, не отримав би будь-яку версію MySQL від Homebrew, що працює на мене.

Це було просто безболісно просто завантажити DMG з https://dev.mysql.com/downloads/file/?id=479114 (знайти потрібну вам потрібну версію) і дозволити майстру встановити його мені. Єдиним іншим ручним кроком було додавання /usr/local/mysql/binдо моєї PATH.

Я рекомендую цей варіант, якщо заварка доставить вам проблеми.

Оновлення - якщо це все ще не виправлено, спробуйте повністю очистити mysql перед встановленням через DMG. Дотримуйтесь цих інструкцій: https://gist.github.com/vitorbritto/0555879fe4414d18569d


я також встановлений через файл DMG, але я все одно отримую цю помилку сокета. mysql - повернення працює для мене і - допомагає, але нічого іншого. Я додав до шляху, щоб змусити команди --version та --help працювати. ви можете, будь ласка, надати поради? Дякую.
Спенсер Трінь

Спершу перегляньте оновлення про очищення mysql. Це було виправлення для себе та кількох колег.
Патрік


0

Зіткнувся з подібною проблемою після оновлення до ОС Catalina. Після запуску команди mysqld я виявив, що з файлом журналів виникла проблема. Для інших це може бути інакше.

$ mysqld

Випуск був

2019-10-16T04:58:59.174474Z 0 [ERROR] Could not open file '/var/log/mysql/error.log' for error logging: No such file or directory
2019-10-16T04:58:59.174508Z 0 [ERROR] Aborting

Вирішили це, створивши його та застосувавши належні дозволи.

sudo mkdir -p /var/log/mysql
sudo touch /var/log/mysql/error.log
sudo chown -R _mysql:mysql /var/log/mysql/

Перезавантажте MySQL

brew services restart mysql@5.7

Проблема була вирішена.

mysql -uroot -proot

0

Після випробування багатьох рішень, схоже, те, що нарешті зробило трюк, було підключення по IP. Більше файлових сокетів не видаляється випадковим чином.

Просто оновіть конфігурацію клієнта MySQL (наприклад /usr/local/etc/my.cnf) за допомогою:

[client]
port = 3306
host=127.0.0.1
protocol=tcp

-4
  1. Видаліть MySQL.
  2. Видалити /usr/local/var/mysql/.
  3. Встановити MySQL.

1
Чи це не підірве всі ваші бази даних? Здається, це досить важке рішення для мене, особливо враховуючи, що це, мабуть, лише проблема, що MySQL не працює.
Мартін Турной

так, це буде, але відповідно до питання, це було новим встановленням, і, отже, було припущення, що не буде ніяких баз даних.
Амод Кулкарні
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.