brew установить mysql на macOS

344

Я пытаюсь настроить MySQL на Mac OS 10.6, используя Homebrew brew install mysql 5.1.52.

Все идет хорошо, и я также успешно с mysql_install_db.
Однако, когда я пытаюсь подключиться к серверу, используя:

/usr/local/Cellar/mysql/5.1.52/bin/mysqladmin -u root password 'mypass'

Я получил:

/usr/local/Cellar/mysql/5.1.52/bin/mysqladmin: подключиться к серверу на локальном хосте 
ошибка: «Доступ запрещен для пользователя« root »@« localhost »(с использованием пароля: НЕТ)»

Я пытался получить доступ mysqladmin or mysql using -u root -proot,
но он не работает с паролем или без него.

Это совершенно новая установка на совершенно новом компьютере, и, насколько я знаю, новая установка должна быть доступна без пароля root. Я также попробовал:

/usr/local/Cellar/mysql/5.1.52/bin/mysql_secure_installation

но я тоже получаю

ОШИБКА 1045 (28000): доступ запрещен для пользователя 'root' @ 'localhost' (используется пароль: НЕТ)
Nikola
источник
Попробуйте brew install raw.github.com/adamv/homebrew-alt/master/versions/mysql51.rb
Паркер
См. Также: apple.stackexchange.com/a/199747/152271 ... это не brew install, но у меня сработало, когда ни один из ответов здесь не
помог
1
FWIW я использовал, mysql -u rootи это сработало здесь: |
rogerdpack

Ответы:

684

Я думаю, что можно оказаться в этом положении с уже установленными более старыми версиями mysql. У меня была та же самая проблема, и ни одно из вышеупомянутых решений не работало для меня. Я исправил это так:

Использовал команды brew remove& cleanup, выгрузил launchctlскрипт, затем удалил каталог mysql /usr/local/var, удалил мой существующий /etc/my.cnf(оставлю это на ваше усмотрение, если он применим) и launchctl plist

Обновлена ​​строка для plist. Также обратите внимание, что каталог альтернативных скриптов безопасности будет зависеть от того, какую версию MySQL вы устанавливаете.

Шаг за шагом:

brew remove mysql

brew cleanup

launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

sudo rm -rf /usr/local/var/mysql

Я тогда начал с нуля:

  1. установлен MySQL с brew install mysql
  2. выполнил команды, предложенные Brew: (см. примечание: ниже)

    unset TMPDIR
    
    mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
    
  3. Запустите mysql с mysql.server startкомандой, чтобы иметь возможность войти в нее

  4. Использовал альтернативный скрипт безопасности:

    /usr/local/Cellar/mysql/5.5.10/bin/mysql_secure_installation
  5. Далее следует launchctlраздел из выходных данных скрипта пакета brew, например:

    #start
    launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
    
    #stop
    launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
    

Примечание:--force немного по brew cleanupжеланию также очистки устаревших бочонки, думает , что это новый иш особенности доморощенной.

Обратите внимание на второе: комментатор говорит, что шаг 2 не требуется. Я не хочу проверять это, так что YMMV!

Лорин Риверс
источник
31
Отличный ответ, спасибо! Одна вещь, которую нужно добавить: хотя это упоминается в ответе, я пропустил это и потерял около 6 часов, пытаясь настроить Lion OSX. Убедитесь, что вы удалили старый каталог mysql по адресу / usr / local / var / mysql, если у вас есть предыдущая версия MySql перед переустановкой. В противном случае вы не сможете войти в систему как пользователь root, чтобы установить пароль, и вы потратите много времени, крича на свой компьютер.
tronbabylove
3
зайдите в ~ / Library / LaunchAgents, чтобы увидеть, как на самом деле называется файл .plist для mysql - в моем случае он был установлен homebrew, поэтому вам нужно изменить описанную выше процедуру удаления.
Марко
7
Поскольку этот поток старый, строка «launchctl unload» выше теперь неверна. Файл, который устанавливает homebrew, больше не называется com.mysql.mysqld.plist, он называется homebrew.mxcl.mysql.plist. Теперь строка должна выглядеть так: «launchctl unload -w ~ / Library / LaunchAgents / homebrew.mxcl.mysql.plist»
Томми,
4
У меня есть `[~ / Library / LaunchAgents] $ ls com.adobe.ARM.202f4087f2bbde52e3ac2df389f53a4f123223c9cc56a8fd83a6f7ae.plist com.mysql.mysqld.plist com.facebook.videochat.ava.plist homebres.mx / LaunchAgents` но выгрузка их даетlaunchctl: Couldn't stat("com.mysql.mysqld.plist"): No such file or directory
Ava
9
mysql_install_db теперь может быть опущен, brew создает сервер автоматически в нужной директой.
rfreytag
52

Вот подробные инструкции, объединяющие избавление от всего MySQL с вашего Mac и установку его The Brew Way, как писал Седорнер выше:

Удалите MySQL полностью за Техническую Лабораторию

  • ps -ax | grep mysql
  • остановить и killлюбые процессы MySQL
  • sudo rm /usr/local/mysql
  • sudo rm -rf /usr/local/var/mysql
  • sudo rm -rf /usr/local/mysql*
  • sudo rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
  • sudo rm -rf /Library/StartupItems/MySQLCOM
  • sudo rm -rf /Library/PreferencePanes/My*
  • launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
  • отредактируйте /etc/hostconfigи удалите строкуMYSQLCOM=-YES-
  • rm -rf ~/Library/PreferencePanes/My*
  • sudo rm -rf /Library/Receipts/mysql*
  • sudo rm -rf /Library/Receipts/MySQL*
  • sudo rm -rf /private/var/db/receipts/*mysql*
  • sudo rm -rf /tmp/mysql*
  • попробуйте запустить mysql, это не должно работать

Brew установить MySQL для каждого пользователя Sedorner из этого ответа StackOverflow

  • brew doctor и исправить любые ошибки

  • brew remove mysql

  • brew cleanup

  • brew update

  • brew install mysql

  • unset TMPDIR

      mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp # whoami is executed inline
  • mysql.server start

  • запустите команды, которые предлагает Brew, добавьте MySQL, launchctlчтобы он автоматически запускался при запуске

mysql теперь должен работать и работать все время, как ожидалось

Godspeed.

corysimmons
источник
3
Я также укусил, выполнив все вышеперечисленное без предварительного удаления /tmp/mysql.sock.
TKH
Спасибо +1 Пара комментариев: вы говорите sudo rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist, затем через несколько шагов вы пытаетесь найти launchctl unloadэтот файл ... но его там не будет, потому что вы удалили его. Кроме того, brew install mysqlпобежал mysql_install_dbза мной шаг, нет необходимости делать это дважды.
Madbreaks
@CorySimmons это значит , я должен использовать свое имя, или rootв whoamiчасти ваших команд?
YPCrumble
1
Подтвердил - whoami - это мое имя (я использовал root). Это сработало отлично.
YPCrumble
Обратите внимание, что /etc/hostconfigне существует в Йосемити и за ее пределами ( superuser.com/questions/850974/… )
ecbrodie
44

Была такая же проблема. Похоже, что-то не так с инструкциями по настройке или начальными таблицами, которые создаются. Вот так я запустил mysqld на своей машине.

Если сервер mysqld уже запущен на вашем Mac, остановите его сначала с помощью:

launchctl unload -w ~/Library/LaunchAgents/com.mysql.mysqld.plist

Запустите сервер mysqld с помощью следующей команды, которая позволяет любому войти в систему с полными разрешениями.

mysqld_safe --skip-grant-tables

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

UPDATE mysql.user SET Password=PASSWORD('NewPassword') WHERE User='root'; FLUSH PRIVILEGES;

Теперь, если вы убьете работающую копию mysqld_safe и запустите ее снова без опции skip-grant-tables, вы сможете войти в систему с mysql -u root -pновым паролем, который вы только что установили.

Алистер Макмиллан
источник
Это сработало для меня! Я начал угадывать пароль еще до того, как попробовал это сделать, и в итоге пароль стал «паролем». Так что попробуй это.
cointilt
Запуск mysqld_safe без таблиц грантов работал для меня. Однако, ОБНОВЛЕНИЕ не работало, так как у меня нет записей о select * from mysql.user; Поскольку мы уже вошли в систему как пользователь root, мы можем просто вставить его для пользователя root, запустив GRANT ALL PRIVILEGES ON . TO 'root' @ 'localhost', идентифицированный 'любым'; ПРИВИЛЕГИИ ПРОМЫВКИ;
Руперт
Я использовал службу остановки / скрипт, и он продолжал перезапускаться. Это потому, что я никогда не выгружал LaunchAgent? (doh)
reneruiz
1
То, что работает для меня, было чем-то похожим на то, что вы делаете. В той части, где вы обновили пароль пользователя, мне пришлось сделать: use mysql; обновить пользовательский набор authentication_string = пароль ('1111'), где user = 'root'; Как в: stackoverflow.com/a/31122246/1328261
ruhanbidart
16

Если brew установил MySQL 5.7, процесс немного отличается от предыдущих версий. Для сброса пароля root выполните следующие действия:

sudo rm -rf /usr/local/var/mysql
mysqld --initialize

Временный пароль будет напечатан на консоли и может использоваться только для обновления пароля root:

mysql.server start
echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'my-new-password';" | mysql -uroot --password=TEMPORARY_PASSWORD
mrucci
источник
2
Я вижу сгенерированный временный пароль, но когда я пытаюсь запустить mysql, я получаю: ERROR! The server quit without updating PID file (/usr/local/var/mysql/XXXXX.local.pid).и когда я выполняю mysql -u root, пароль не принимается.
forloop
1
Я успешно установил mysql 5.7.9 с помощью установщика dmg, который запросил у меня окно, которое сгенерировало временный пароль для меня. И сейчас mysqlработает правильно. Жаль, что мне пришлось потратить огромное количество времени, чтобы заставить его работать над новым Macbook. : |
forloop
1
@forloop 1. ps -ef | grep mysql 2. kill -9 pid 3. запуск
mysql.server
для меня выше переустановка / изменение пароля не сработала. Мне пришлось войти в MySQL, используя временный пароль, а затем выполнить команду alter 1. mysql -u root -p <temp-password> 2.ALTER USER 'root'@'localhost' IDENTIFIED BY 'New-Password';
Тестовый тест
8

Хорошо, у меня была та же проблема, и я решил ее. По какой-то причине скрипт mysql_secure_installation не работает сразу после установки Homebrew для установки mysql, поэтому я сделал это вручную. В CLI введите :

mysql -u root

Это должно привести вас в MySQL. Теперь сделайте следующее (взято из mysql_secure_installation):

UPDATE mysql.user SET Password=PASSWORD('your_new_pass') WHERE User='root';
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
DELETE FROM mysql.user WHERE User='';
DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'
DROP DATABASE test;
FLUSH PRIVILEGES;

Теперь выйдите и вернитесь в mysql с помощью: mysql -u root -p

Даррен Ньютон
источник
1
Это решение не работает для меня, потому что mysql -u root не выводит меня на приглашение mysql. В нем говорится, что доступ запрещен для пользователя 'root' @ 'localhost' (используется пароль: НЕТ)
Ник Вандербилт,
У вас была предыдущая установка MySQL на этом компьютере?
Даррен Ньютон
8

У меня была такая же проблема только сейчас. Если вы brew info mysqlи выполните шаги, похоже, пароль root должен быть, new-passwordесли я правильно помню. Я видел то же, что вы видите. Эта статья помогла мне больше всего.

Оказалось, что я не создал никаких учетных записей для меня. Когда я вошел в систему после запуска mysqld_safeи не select * from user;вернул ни одной строки. Я открыл MySQLWorkbench с mysqld_safeзапущенным и добавил rootучетную запись со всеми привилегиями, которые я ожидал. Это работает хорошо для меня сейчас.

отметка
источник
7

Если MySQL уже установлен

Остановите MySQL полностью.

  1. mysql.server stop <- может потребоваться редактирование в зависимости от вашей версии
  2. ps -ef | grep mysql <- перечисляет процессы с mysql в названии
  3. kill [PID] <- убить процессы с помощью PID

Удалить файлы. Инструкции выше хороши. Я добавлю:

  1. sudo find /. -name "*mysql*"
  2. Используя ваше мнение, rm -rfэти файлы. Обратите внимание, что многие программы имеют драйверы для mysql, которые вы не хотите удалять. Например, не удаляйте вещи в каталоге установки PHP. Удалять вещи в своем собственном каталоге MySQL.

устанавливать

Надеюсь, у вас есть доморощенный. Если нет, загрузите его.

Мне нравится запускать brew от имени пользователя root, но я не думаю, что вы должны это делать. Изменить 2018: вы больше не можете запускать Brew от имени root

  1. sudo brew update
  2. sudo brew install cmake <- зависимость для MySQL, полезно
  3. sudo brew install openssl <- зависимость для MySQL, полезно
  4. sudo brew info mysql <- просмотрите это ... это дает вам некоторое представление о том, что будет дальше
  5. sudo brew install mysql --with-embedded; say done<- устанавливает mysql со встроенным сервером. Сообщает, когда он закончится (моя установка заняла 10 минут)

потом

  1. sudo chown -R mysql /usr/local/var/mysql/ <- MySQL не будет работать для меня, пока я не запустил эту команду
  2. sudo mysql.server start <- еще раз, точный синтаксис может отличаться
  3. Создайте пользователей в mysql ( http://dev.mysql.com/doc/refman/5.7/en/create-user.html ). Не забудьте добавить пароль для пользователя root.
sudo rm -rf slash
источник
3

варево информация mysql

mysql: stable 5.6.12 (bottled)
http://dev.mysql.com/doc/refman/5.6/en/
Conflicts with: mariadb, mysql-cluster, percona-server
/usr/local/Cellar/mysql/5.6.12 (9363 files, 353M) *
  Poured from bottle
From: https://github.com/mxcl/homebrew/commits/master/Library/Formula/mysql.rb
==> Dependencies
Build: cmake
==> Options
--enable-debug
    Build with debug support
--enable-local-infile
    Build with local infile loading support
--enable-memcached
    Enable innodb-memcached support
--universal
    Build a universal binary
--with-archive-storage-engine
    Compile with the ARCHIVE storage engine enabled
--with-blackhole-storage-engine
    Compile with the BLACKHOLE storage engine enabled
--with-embedded
    Build the embedded server
--with-libedit
    Compile with editline wrapper instead of readline
--with-tests
    Build with unit tests
==> Caveats
A "/etc/my.cnf" from another install may interfere with a Homebrew-built
server starting up correctly.

To connect:
    mysql -uroot

To reload mysql after an upgrade:
    launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

mysql.service start

. ERROR! The server quit without updating PID file (/var/run/mysqld/mysqld.pid).

или mysql -u root

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

Я какое-то время ищу решение, но не могу решить свою проблему. Я попробовал несколько решений в stackoverflow.com, но это не помогло мне.

Фелипе Дуардо
источник
4
Попробуйте запустить sudo chown -R mysql /usr/local/var/mysql/перед запуском, mysql.server startесли вы работаете mysql.serverс правами суперпользователя (когда вы начинаете использовать пользователя root, сервер MySQL понижается до уровня _mysqlпользователя).
Рарилсон Фрейтас
Эй, ты случайно не нашел решения этой проблемы?
KcC0
о боже мой, количество вопросов и 1000 строк ответов на эту проблему ... думаю, я просто буду brew install redistbh
Danyal Aytekin
3

TL; DR

Сервер MySQL может не работать после установки с Brew. Попробуйте brew services start mysqlили просто, mysql.server startесли вы не хотите, чтобы MySQL работал в качестве фоновой службы.

Полная история:

Я только что установил MySQL (стабильный) 5.7.17 на новый MacBook Pro с Sierra, а также получил ошибку при запуске mysql_secure_installation:

Securing the MySQL server deployment.

Enter password for user root: 
Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

Чего-чего?

В соответствии с информацией об установке от Brew, mysql_secure_installationдолжен предложить мне ... обеспечить установку. Я подумал, что сервер MySQL может не работать, и это правильно. Бегал brew services start mysqlа потом mysql_secure_installationработал как шарм.

Николас
источник
1

Попробуйте, предоставив разрешение Грант Command of mysql

XMen
источник
проблема в том, что я не могу получить доступ к серверу mysql после установки brew. Я могу запустить его, но он не пропустит меня как root с паролем или без него. (поэтому я не могу создавать других пользователей или управлять разрешениями .. или я вас правильно не понял?
Николай
1

Ни один из приведенных выше ответов (или любой из десятков ответов, которые я видел в другом месте) не работал для меня при использовании brew с самой последней версией mysql и yosemite. В итоге я установил другую версию MySQL через Brew.

Указание более старой версии с помощью (например)

brew install mysql56

Работал на меня. Надеюсь, это кому-нибудь поможет. Это была неприятная проблема, и я чувствовал, что застрял навсегда.

toddmetheny
источник
Да, это будет работать, но если вы хотите установить MySQL 5.7 (как это делается в настоящее время brew install mysql), вы можете следовать указаниям в моем ответе stackoverflow.com/a/33924648/133106
mrucci
1

Вот обновление для MySQL 5.7

Баш - версия
GNU bash, версия 4.4.12 (1) -релиз (x86_64-apple-darwin17.0.0)
Copyright (C) 2016 Free Software Foundation, Inc.
Лицензия GPLv3 +: GNU GPL версии 3 или более поздней 

Это бесплатное программное обеспечение; Вы можете изменить и распространить его.
НЕ ПРЕДОСТАВЛЯЕТСЯ ГАРАНТИИ, если это разрешено законом.

# ========================================
варить - версия
Доморощенный 1.7.6
Homebrew / homebrew-core (git revision eeb08; последний коммит 2018-09-27)
Homebrew / homebrew-cask (git revision c9f62; последний коммит 2018-09-27)

# ========================================
mysql - версия
mysql Ver 14.14 Distrib 5.7.23, для osx10.13 (x86_64) с использованием оболочки EditLine

# ========================================
system_profiler SPSoftwareDataType
Программное обеспечение:

    Обзор системного программного обеспечения:

      Версия системы: macOS 10.13.3 (17D47)
      Версия ядра: Дарвин 17.4.0
      Объем загрузки: Macintosh HD
      Режим загрузки: Нормальный
      Имя компьютера: EdisonMacHomeBj
      Имя пользователя: Эдисон (Эдисон)
      Безопасная виртуальная память: включена
      Защита целостности системы: отключена
      Время с момента загрузки: 6 дней 23:13
заварить удалить mysql@5.7
заваривать
mv / usr / local / var / mysql /usr/local/var/mysql.bak
brew install mysql@5.7
rm -rf / usr / local / var / mysql

# ========================================
mysqld --initialize
2018-09-28T04: 54: 06.526061Z 0 [Предупреждение] TIMESTAMP с неявным значением DEFAULT устарела. Пожалуйста, используйте параметр сервера --explicit_defaults_for_timestamp (см. Документацию для более подробной информации).
2018-09-28T04: 54: 06.542625Z 0 [Предупреждение] Установка lower_case_table_names = 2, потому что файловая система для / usr / local / var / mysql / нечувствительна к регистру
2018-09-28T04: 54: 07.096637Z 0 [Предупреждение] InnoDB: созданы новые файлы журналов, LSN = 45790
2018-09-28T04: 54: 07.132950Z 0 [Предупреждение] InnoDB: Создание системных таблиц ограничения внешнего ключа.
2018-09-28T04: 54: 07.196824Z 0 [Предупреждение] Существующий UUID не найден, поэтому мы предполагаем, что это первый раз, когда этот сервер был запущен. Генерация нового UUID: 87cf2f10-c2da-11e8-ac2d-ba163df10130.
2018-09-28T04: 54: 07.224871Z 0 [Предупреждение] Таблица Gtid не готова к использованию. Таблица «mysql.gtid_executed» не может быть открыта.
2018-09-28T04: 54: 07.366688Z 0 [Предупреждение] CA-сертификат ca.pem самоподписан.
2018-09-28T04: 54: 07.457954Z 1 [Примечание] Для root @ localhost: kq3K = JR8; GqZ создается временный пароль

# ========================================
mysql_secure_installation -uroot -p "kq3K = JR8; GqZ"
mysql_secure_installation: [Предупреждение] Использование пароля в интерфейсе командной строки может быть небезопасным.

Обеспечение безопасности развертывания сервера MySQL.


Срок действия пароля для учетной записи root истек. Пожалуйста, установите новый пароль.

Новый пароль:

Повторно введите новый пароль:

VALIDATE PASSWORD PLUGIN можно использовать для проверки паролей
и улучшить безопасность. Проверяет надежность пароля
и позволяет пользователям устанавливать только те пароли, которые
достаточно безопасно. Вы хотите установить плагин VALIDATE PASSWORD?

Нажмите y | Y для Да, любую другую клавишу для Нет: n
Используя существующий пароль для root.
Изменить пароль для root? ((Нажмите y | Y для Да, любую другую клавишу для Нет): y

Новый пароль:

Повторно введите новый пароль:
По умолчанию установка MySQL имеет анонимного пользователя,
позволяя кому-либо войти в MySQL без необходимости
учетная запись пользователя, созданная для них. Это предназначено только для
тестирование, и сделать установку немного более гладкой.
Вы должны удалить их, прежде чем перейти в производство
Окружающая среда.

Удалить анонимных пользователей? (Нажмите y | Y для Да, любую другую клавишу для Нет): y
Успех.


Обычно пользователю root разрешено подключаться только с
«Локальный». Это гарантирует, что кто-то не может угадать
пароль root из сети.

Запретить вход в систему root удаленно? (Нажмите y | Y для Да, любую другую клавишу для Нет): n

 ... пропуская.
По умолчанию MySQL поставляется с базой данных «test», которая
любой может получить доступ. Это также предназначено только для тестирования,
и должны быть удалены перед переходом в производство
Окружающая среда.


Удалить тестовую базу данных и доступ к ней? (Нажмите y | Y для Да, любую другую клавишу для Нет): n

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

Перезагрузить таблицы привилегий сейчас? (Нажмите y | Y для Да, любую другую клавишу для Нет): y
Успех.

Все сделано!
Эдисон
источник
при копировании всей базы данных из "mysql.bak" она не работает :(
Джахирул Ислам Мамун
1

Просто чтобы добавить что-то к предыдущим ответам - при обновлении с MySql 5.6 до MySql 8.0 я следовал инструкциям, приведенным здесь, чтобы выполнить чистое удаление, но у меня появились следующие ошибки

2019-11-05T07:57:31.359304Z 0 [ERROR] [MY-000077] [Server] /usr/local/Cellar/mysql/8.0.18/bin/mysqld: Error while setting value 'ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' to 'sql_mode'.
2019-11-05T07:57:31.359330Z 0 [ERROR] [MY-013236] [Server] The designated data directory /usr/local/var/mysql is unusable. You can remove all files that the server added to it.
2019-11-05T07:57:31.359413Z 0 [ERROR] [MY-010119] [Server] Aborting
2019-11-05T07:57:31.359514Z 0 [Note] [MY-010120] [Server] Binlog end

Мне понадобилось время, чтобы понять это. Нашел подсказку здесь: https://discourse.brew.sh/t/clean-removal-of-mysql/2251

Итак, ключом к моей проблеме было удаление файла /usr/local/etc/my.cnf после удаления. После этого последнего шага MySql наконец начал работать.

Gishas
источник
0

У меня была та же проблема после того, как я попытался перезапустить MySQL.

Я использую следующие два псевдонима в моем .profile для удобства

alias mysql-stop='launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist'
alias mysql-start='launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist' 

После остановки mysql и повторной попытки перезагрузки у меня возникла проблема, с которой вы столкнулись. Я посмотрел на загрузку launchctl, и она сообщала об ошибке «ничего не найдено для загрузки».

После быстрого поиска я нашел это ..

http://www.daveoncode.com/2013/02/01/solve-mac-osx-launchctl-nothing-found-to-load-error/

Поэтому я обновил mysql-startпсевдоним следующим образом

alias mysql-start='launchctl load -w -F ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist'

Это решило мою проблему, которая может быть полезна для вас.

Александр Миллар
источник
2
Brew теперь поддерживает servicesкоманды, поэтому их можно заменить на brew services stop mysqlи brew services start mysqlсоответственно.
Devstuff
0

«Базовый путь» для Mysql хранится в том, /etc/my.cnfчто не обновляется, когда вы делаете обновление brew. Просто откройте его и измените значение basedir

Например, измените это:

[mysqld]
basedir=/Users/3st/homebrew/Cellar/mysql/5.6.13

указать на новую версию:

[mysqld]
basedir=/Users/3st/homebrew/Cellar/mysql/5.6.19

Перезапустите mysql с помощью:

mysql.server start
Бернхард Цюрн
источник