brew zainstaluj mysql na macOS

344

Próbuję skonfigurować MySQL na Mac OS 10.6 za pomocą Homebrew przez brew install mysql 5.1.52.

Wszystko idzie dobrze i odnoszę również sukces mysql_install_db.
Jednak gdy próbuję połączyć się z serwerem za pomocą:

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

Dostaję:

/usr/local/Cellar/mysql/5.1.52/bin/mysqladmin: połącz z serwerem na 'localhost' 
błąd zakończony niepowodzeniem: „Odmowa dostępu dla użytkownika„ root ”@„ localhost ”(przy użyciu hasła: NIE)”

Próbowałem również uzyskać dostęp mysqladmin or mysql using -u root -proot,
ale to nie działa z hasłem lub bez.

Jest to zupełnie nowa instalacja na zupełnie nowej maszynie i o ile wiem, nowa instalacja musi być dostępna bez hasła roota. Próbowałem też:

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

ale ja też rozumiem

BŁĄD 1045 (28000): Odmowa dostępu dla użytkownika „root” @ „localhost” (przy użyciu hasła: NIE)
nikola
źródło
Zobacz także: apple.stackexchange.com/a/199747/152271 ... to nie jest instalacja parzenia, ale zadziałało dla mnie, gdy żadna z odpowiedzi tutaj nie zrobiła
sudo rm -rf slash
1
FWIW użyłem mysql -u rooti zadziałało tutaj: |
rogerdpack,

Odpowiedzi:

684

Myślę, że można skończyć w tej pozycji z już zainstalowanymi starszymi wersjami mysql. Miałem ten sam problem i żadne z powyższych rozwiązań nie zadziałało. Naprawiłem to w ten sposób:

Użyłem poleceń removei cleanuppoleceń brew , zwolniłem launchctlskrypt, następnie usunąłem katalog mysql /usr/local/var, /etc/my.cnfusunąłem mój istniejący (pozostaw to do ciebie, jeśli ma zastosowanie) i uruchom plist

Zaktualizowano ciąg dla plist. Uwaga: katalog alternatywnych skryptów bezpieczeństwa będzie oparty na instalowanej wersji MySQL.

Krok po kroku:

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

Potem zacząłem od zera:

  1. zainstalowałem mysql z brew install mysql
  2. uruchomiono polecenia napar sugerowane: (patrz uwaga: poniżej)

    unset TMPDIR
    
    mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
  3. Uruchom mysql za pomocą mysql.server startpolecenia, aby móc się na nim zalogować

  4. Zastosowano alternatywny skrypt bezpieczeństwa:

    /usr/local/Cellar/mysql/5.5.10/bin/mysql_secure_installation
  5. Postępowałem zgodnie z launchctlsekcją danych wyjściowych skryptu pakietu parzenia, takich jak:

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

Uwaga:--force nieco na brew cleanupwoli również oczyszczania przestarzałych beczek, że to nowy-owski cecha homebrew.

Uwaga druga: komentator mówi, że krok 2 nie jest wymagany. Nie chcę tego testować, więc YMMV!

Lorin Rivers
źródło
30
Świetna odpowiedź, dzięki! Jedną rzecz do dodania: chociaż wspomniałem o tym w odpowiedzi, spóźniłem się i przez to straciłem około 6 godzin, próbując skonfigurować się na Lion OSX. Upewnij się, że usuwasz stary katalog mysql w katalogu / usr / local / var / mysql, jeśli masz poprzednią wersję MySql przed ponowną instalacją. W przeciwnym razie nie będziesz mógł zalogować się jako root na początku, aby ustawić hasło i będziesz spędzać dużo czasu krzycząc na swój komputer.
tronbabylove
3
przejdź do ~ / Library / LaunchAgents, aby zobaczyć, jak faktycznie nazywa się plik .plist dla mysql - w moim przypadku został on zainstalowany przez homebrew, więc musisz zmodyfikować powyższą procedurę odinstalowywania.
Marco
7
Ponieważ ten wątek jest stary, powyższa linia „launchctl unload” jest teraz niepoprawna. Plik instalowany przez homebrew nie jest już nazywany „com.mysql.mysqld.plist”, lecz „homebrew.mxcl.mysql.plist”. Linia powinna teraz brzmieć: „launchctl unload -w ~ / Library / LaunchAgents / homebrew.mxcl.mysql.plist”
Tommy
4
Mam` [~ / Library / LaunchAgents] $ ls com.adobe.ARM.202f4087f2bbde52e3ac2df389f53a4f123223c9cc56a8fd83a6f7ae.plist com.mysql.mysqld.plist com.facebook.videochat.ava.plist homebrew.mxcl.post / LaunchAgents` ale rozładowanie ich dajelaunchctl: Couldn't stat("com.mysql.mysqld.plist"): No such file or directory
Ava
9
mysql_install_db można teraz pominąć, brew automatycznie tworzy serwer we właściwym directoy.
rfreytag
52

Oto szczegółowe instrukcje łączące pozbycie się całego MySQL z komputera Mac, a następnie zainstalowanie go The Brew Way, jak napisał Sedorner powyżej:

Usuń MySQL całkowicie według The Tech Lab

  • ps -ax | grep mysql
  • stop i killwszelkie procesy 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
  • edytować /etc/hostconfigi usunąć linię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*
  • spróbuj uruchomić mysql, to nie powinno działać

Brew zainstalować MySQL na użytkownika Sedorner z tej odpowiedzi StackOverflow

  • brew doctor i napraw wszelkie błędy
  • 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

  • uruchom polecenia sugerowane przez Brew, dodaj MySQL, aby launchctlautomatycznie uruchamiał się przy starcie

mysql powinien teraz działać i działać cały czas zgodnie z oczekiwaniami

Życzenia powodzenia.

corysimmony
źródło
3
Ugryzłem się również, wykonując wszystkie powyższe czynności bez uprzedniego usunięcia /tmp/mysql.sock.
TKH
Dzięki, +1. Kilka komentarzy: mówisz do sudo rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist, a następnie kilka kroków później próbujesz utworzyć launchctl unloadten plik ... ale nie będzie go tam, ponieważ go usunąłeś. Poza tym brew install mysqlprzebiegł mysql_install_dbdla mnie krok, nie trzeba tego robić dwa razy.
Madbreaks
@CorySimmons oznacza to, że powinienem używać własnego imienia lub rootw whoamiramach twoich poleceń?
YPCrumble
1
Potwierdzony - whoami to moje imię (użyłem root). To działało świetnie.
YPCrumble 16.04.15
Pamiętaj, że /etc/hostconfignie istnieje w Yosemite i późniejszych ( superuser.com/questions/850974/… )
ecbrodie
44

Miałem ten sam problem. Wygląda na to, że coś jest nie tak z instrukcjami konfiguracji lub tworzonymi tabelami początkowymi. W ten sposób mysqld działa na moim komputerze.

Jeśli serwer mysqld jest już uruchomiony na komputerze Mac, zatrzymaj go najpierw za pomocą:

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

Uruchom serwer mysqld za pomocą następującego polecenia, które pozwala każdemu zalogować się z pełnymi uprawnieniami.

mysqld_safe --skip-grant-tables

Następnie uruchom, mysql -u rootco powinno pozwolić na pomyślne zalogowanie się bez hasła. Następujące polecenie powinno zresetować wszystkie hasła roota.

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

Teraz, jeśli zabijesz działającą kopię mysqld_safe i uruchomisz ją ponownie bez opcji pomijania tabel, powinieneś być w stanie zalogować się przy mysql -u root -pużyciu nowego hasła, które właśnie ustawiłeś.

Alistair McMillan
źródło
To zadziałało dla mnie! Zacząłem zgadywać hasło, zanim je wypróbowałem, a hasło to „hasło”. Więc spróbuj tego.
cointilt
Uruchomienie mysqld_safe bez tabel grantu działało dla mnie. Jednak AKTUALIZACJA nie działała, ponieważ nie mam żadnych rekordów na select * z mysql.user; Ponieważ jesteśmy już zalogowani jako root, możemy po prostu wstawić jedną dla roota, uruchamiając GRANT ALL PRIVILEGES ON . DO „root” @ „localhost” IDENTYFIKOWANY PRZEZ „cokolwiek”; PRZYWILEJE PŁUCZĄCE;
Rupert
Korzystałem z usługi zatrzymania / skryptu i ciągle się restartował. Czy to dlatego, że nigdy nie rozładowałem LaunchAgent? (doh)
reneruiz
1
To, co działa dla mnie, było podobne do tego, co robisz. W części, w której zaktualizowałeś hasło użytkownika, musiałem: użyć mysql; aktualizuj zestaw użytkowników uwierzytelnianie_ciąga = hasło („1111”) gdzie użytkownik = „root”; Jak w: stackoverflow.com/a/31122246/1328261
ruhanbidart
16

Jeśli brew zainstalował MySQL 5.7, proces jest nieco inny niż w poprzednich wersjach. Aby zresetować hasło roota, wykonaj następujące czynności:

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

Hasło tymczasowe zostanie wydrukowane na konsoli i może być użyte tylko do aktualizacji hasła roota:

mysql.server start
echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'my-new-password';" | mysql -uroot --password=TEMPORARY_PASSWORD
mrucci
źródło
2
Widzę wygenerowane tymczasowe hasło, ale kiedy próbuję uruchomić mysql, dostaję: ERROR! The server quit without updating PID file (/usr/local/var/mysql/XXXXX.local.pid).a kiedy robię mysql -u root, hasło nie jest akceptowane.
forloop
1
Pomyślnie zainstalowałem mysql 5.7.9 za pomocą instalatora dmg, który wyświetlił mi okno, że wygenerowało dla mnie hasło tymczasowe. A teraz mysqldziała poprawnie. Szkoda, że ​​musiałem poświęcić ogromną ilość czasu, aby uruchomić go na zupełnie nowym Macbooku. : |
forloop
1
@forloop 1. ps -ef | grep mysql 2. kill -9 pid 3. mysql.server start
oshaiken
dla mnie powyższe resetowanie / zmiana hasła nie działało. Musiałem zalogować się do mysql przy użyciu hasła tymczasowego, a następnie uruchomić komendę alter 1. mysql -u root -p <temp-password> 2.ALTER USER 'root'@'localhost' IDENTIFIED BY 'New-Password';
Test Test
8

Okej, miałem ten sam problem i go rozwiązałem. Z jakiegoś powodu skrypt mysql_secure_installation nie działa od razu po zainstalowaniu mysql przy użyciu Homebrew, więc zrobiłem to ręcznie. Na CLI wpisz :

mysql -u root

To powinno doprowadzić cię do MySQL. Teraz wykonaj następujące czynności (wzięte z instalacji 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;

Teraz wyjdź i wróć do mysql z: mysql -u root -p

Darren Newton
źródło
1
To rozwiązanie nie działa dla mnie, ponieważ root mysql -u root nie prowadzi mnie do monitu mysql. Mówi, że odmowa dostępu dla użytkownika „root” @ „localhost” (przy użyciu hasła: NIE)
Nick Vanderbilt
Czy masz wcześniejszą instalację MySQL na tym komputerze?
Darren Newton
8

Miałem teraz ten sam problem. Jeśli brew info mysqli wykonasz kroki, wygląda na to, że hasło root powinno być, new-passwordjeśli dobrze pamiętam. Widziałem to samo, co ty. Ten artykuł najbardziej mi pomógł.

Okazało się, że nie utworzyłem dla mnie żadnych kont. Kiedy zalogowałem się po uruchomieniu mysqld_safei nie zrobiłem select * from user;żadnych wierszy. Otworzyłem MySQLWorkbench z mysqld_safeuruchomionym i dodałem rootkonto ze wszystkimi oczekiwanymi przeze mnie szeregami. To działa teraz dla mnie dobrze.

znak
źródło
7

Jeśli mysql jest już zainstalowany

Całkowicie zatrzymaj mysql.

  1. mysql.server stop <- może wymagać edycji w zależności od wersji
  2. ps -ef | grep mysql <- wyświetla listę procesów z mysql w nazwie
  3. kill [PID] <- zabij procesy za pomocą PID

Usuń pliki. Powyższe instrukcje są dobre. Dodam:

  1. sudo find /. -name "*mysql*"
  2. Korzystając z Twojej oceny, rm -rfte pliki. Zauważ, że wiele programów ma sterowniki do mysql, których nie chcesz usuwać. Na przykład nie usuwaj rzeczy z katalogu instalacji PHP. Usuwaj rzeczy z własnego katalogu mysql.

zainstalować

Mam nadzieję, że masz homebrew. Jeśli nie, pobierz go.

Lubię uruchamiać napar jako root, ale nie sądzę, że musisz. Edycja 2018: nie można już uruchamiać naparu jako root

  1. sudo brew update
  2. sudo brew install cmake <- zależność dla mysql, przydatna
  3. sudo brew install openssl <- zależność dla mysql, przydatna
  4. sudo brew info mysql <- przejrzyj to ... daje to wyobrażenie o tym, co będzie dalej
  5. sudo brew install mysql --with-embedded; say done<- Instaluje mysql z wbudowanym serwerem. Informuje o zakończeniu (moja instalacja zajęła 10 minut)

Potem

  1. sudo chown -R mysql /usr/local/var/mysql/ <- mysql nie działałby dla mnie, dopóki nie uruchomię tego polecenia
  2. sudo mysql.server start <- jeszcze raz dokładna składnia może się różnić
  3. Utwórz użytkowników w mysql ( http://dev.mysql.com/doc/refman/5.7/en/create-user.html ). Pamiętaj, aby dodać hasło dla użytkownika root.
sudo rm -rf slash
źródło
3

informacje o zaparzeniu 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).

lub mysql -u root

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

Szukam rozwiązania od jakiegoś czasu, ale nie mogę rozwiązać mojego problemu. Wypróbowałem kilka rozwiązań w stackoverflow.com, ale to mi nie pomogło.

Felipe Duardo
źródło
4
Spróbuj uruchomić sudo chown -R mysql /usr/local/var/mysql/przed uruchomieniem, mysql.server startjeśli pracujesz mysql.serverjako użytkownik root (kiedy zaczynasz używać użytkownika root, serwer MySQL przechodzi na _mysqlużytkownika).
Rarylson Freitas
Hej, czy zdarzyło Ci się znaleźć rozwiązanie tego problemu?
KcC0,
omg, ilość pytań i 1000 linii odpowiedzi na ten problem ... myślę, że po prostu brew install redistbh
Danyal Aytekin
3

TL; DR

Serwer MySQL może nie działać po instalacji z Brew. Spróbuj brew services start mysqllub po prostu, mysql.server startjeśli nie chcesz, aby MySQL działał jako usługa w tle.

Pełna historia:

Właśnie zainstalowałem MySQL (stabilny) 5.7.17 na nowym MacBooku Pro z systemem Sierra, a także wystąpił błąd podczas uruchamiania 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)

Powiedz co

Zgodnie z informacjami o instalacji od Brew, mysql_secure_installationpowinienem poprosić mnie o ... zabezpieczenie instalacji. Uznałem, że serwer MySQL może nie działać i słusznie. Bieganie, brew services start mysqla potem mysql_secure_installationdziałało jak urok.

Mikołaj
źródło
1

Spróbuj, udzielając uprawnienia Grant Command mysql

X Men
źródło
problem polega na tym, że po instalacji przez brew nie mogę w ogóle uzyskać dostępu do serwera mysql. Mogę go uruchomić, ale nie wpuści mnie jako root z hasłem lub bez. (w związku z tym nie mogę tworzyć innych użytkowników ani zarządzać uprawnieniami ... czy też nie zrozumiałem, prawda?
Nikola,
1

Żadna z powyższych odpowiedzi (ani żadna z dziesiątek odpowiedzi, które widziałem gdzie indziej) nie działała dla mnie, gdy używałem naparu z najnowszą wersją mysql i yosemite. Skończyłem instalowanie innej wersji mysql przez brew.

Określanie starszej wersji przez powiedzenie (na przykład)

brew install mysql56

Pracował dla mnie. Mam nadzieję, że to komuś pomoże. Był to frustrujący problem, który sprawiał, że utknąłem na zawsze.

toddmetheny
źródło
Tak, to zadziała, ale jeśli chcesz zainstalować MySQL 5.7 (tak jak obecnie brew install mysql), możesz postępować zgodnie ze wskazówkami
zawartymi
1

Oto aktualizacja MySQL 5.7

bash --version
GNU bash, wersja 4.4.12 (1) -release (x86_64-apple-darwin17.0.0)
Prawa autorskie (C) 2016 Free Software Foundation, Inc.
Licencja GPLv3 +: GNU GPL wersja 3 lub nowsza 

To jest wolne oprogramowanie; możesz go zmienić i rozpowszechniać.
Nie ma ŻADNEJ GWARANCJI, w zakresie dozwolonym przez prawo.

# ========================================
parzenie - wersja
Homebrew 1.7.6
Homebrew / homebrew-core (git wersja eeb08; ostatnie zatwierdzenie 27.09.2018)
Homebrew / homebrew-cask (git wersja C9f62; ostatnie zatwierdzenie 27.09.2018)

# ========================================
mysql --version
mysql Ver 14.14 Distrib 5.7.23, dla osx10.13 (x86_64) przy użyciu otoki EditLine

# ========================================
system_profiler SPSoftwareDataType
Oprogramowanie:

    Przegląd oprogramowania systemowego:

      Wersja systemu: macOS 10.13.3 (17D47)
      Wersja jądra: Darwin 17.4.0
      Wolumin rozruchowy: Macintosh HD
      Tryb rozruchu: normalny
      Nazwa komputera: EdisonMacHomeBj
      Nazwa użytkownika: Edison (edison)
      Bezpieczna pamięć wirtualna: włączona
      Ochrona integralności systemu: wyłączona
      Czas od uruchomienia: 6 dni 23:13
napar usuń [email protected]
czyszczenie parzenia
mv / usr / local / var / mysql /usr/local/var/mysql.bak
napar zainstaluj [email protected]
rm -rf / usr / local / var / mysql

# ========================================
mysqld --initialize
2018-09-28T04: 54: 06.526061Z 0 [Ostrzeżenie] TIMESTAMP z domyślną wartością DOMYŚLNĄ jest nieaktualny. Proszę użyć opcji serwera --explicit_defaults_for_timestamp (więcej informacji znajduje się w dokumentacji).
2018-09-28T04: 54: 06.542625Z 0 [Ostrzeżenie] Ustawienie niższych_nazłów_tabeli = 2, ponieważ system plików dla / usr / local / var / mysql / nie rozróżnia wielkości liter
2018-09-28T04: 54: 07.096637Z 0 [Ostrzeżenie] InnoDB: Utworzono nowe pliki dziennika, LSN = 45790
2018-09-28T04: 54: 07.132950Z 0 [Ostrzeżenie] InnoDB: Tworzenie tabel systemowych ograniczeń klucza obcego.
2018-09-28T04: 54: 07.196824Z 0 [Ostrzeżenie] Nie znaleziono istniejącego identyfikatora UUID, więc zakładamy, że po raz pierwszy serwer został uruchomiony. Generowanie nowego UUID: 87cf2f10-c2da-11e8-ac2d-ba163df10130.
2018-09-28T04: 54: 07.224871Z 0 [Ostrzeżenie] Tabela Gtid nie jest gotowa do użycia. Nie można otworzyć tabeli „mysql.gtid_executed”.
2018-09-28T04: 54: 07.366688Z 0 [Ostrzeżenie] Certyfikat CA ca.pem jest samopodpisany.
2018-09-28T04: 54: 07.457954Z 1 [Uwaga] Hasło tymczasowe jest generowane dla root @ localhost: kq3K = JR8; GqZ

# ========================================
mysql_secure_installation -uroot -p "kq3K = JR8; GqZ"
mysql_secure_installation: [Ostrzeżenie] Używanie hasła w interfejsie wiersza poleceń może być niepewne.

Zabezpieczanie wdrożenia serwera MySQL.


Istniejące hasło użytkownika root konta wygasło. Proszę ustawić nowe hasło.

Nowe hasło:

Wprowadź ponownie nowe hasło:

WERYFIKACJA WTYKU HASŁA można użyć do testowania haseł
i poprawić bezpieczeństwo. Sprawdza siłę hasła
i pozwala użytkownikom ustawić tylko te hasła, które są
wystarczająco bezpieczny. Czy chcesz skonfigurować wtyczkę VALIDATE PASSWORD?

Naciśnij y | Y, aby wybrać Tak, jakikolwiek inny klawisz Nie: n
Używanie istniejącego hasła do roota.
Zmienić hasło do roota? ((Naciśnij y | Y dla Tak, każdy inny klawisz dla Nie): y

Nowe hasło:

Wprowadź ponownie nowe hasło:
Domyślnie instalacja MySQL ma anonimowego użytkownika,
pozwalając każdemu zalogować się do MySQL bez konieczności
konto użytkownika utworzone dla nich. Jest to przeznaczone tylko dla
testowanie i aby instalacja przebiegła nieco płynniej.
Powinieneś je usunąć przed przejściem do produkcji
środowisko.

Usunąć anonimowych użytkowników? (Naciśnij y | Y, aby wybrać Tak, dowolny inny klawisz, aby wybrać Nie): y
Sukces.


Zwykle root może łączyć się tylko z
'Lokalny Gospodarz'. Zapewnia to, że ktoś nie zgadnie
hasło roota z sieci.

Czy zdalnie zabronić logowania roota? (Naciśnij y | Y, aby wybrać Tak, dowolny inny klawisz, aby wybrać Nie): n

 ... pomijam.
Domyślnie MySQL zawiera bazę danych o nazwie „test”
każdy może uzyskać dostęp. Jest to również przeznaczone wyłącznie do testowania,
i powinny zostać usunięte przed przejściem do produkcji
środowisko.


Usunąć testową bazę danych i uzyskać do niej dostęp? (Naciśnij y | Y, aby wybrać Tak, dowolny inny klawisz, aby wybrać Nie): n

 ... pomijam.
Ponowne załadowanie tabel uprawnień zapewni, że wszystkie zmiany
wykonane do tej pory zaczną obowiązywać natychmiast.

Przeładować tabele uprawnień teraz? (Naciśnij y | Y, aby wybrać Tak, dowolny inny klawisz, aby wybrać Nie): y
Sukces.

Wszystko gotowe!
Edison
źródło
po skopiowaniu całej bazy danych z „mysql.bak” nie działa :(
Jahirul Islam Mamun
1

Aby dodać coś do poprzednich odpowiedzi - podczas aktualizacji z MySql 5.6 do MySql 8.0, wykonałem podane tutaj kroki, aby wykonać czystą dezinstalację, ale dostaję następujące błędy

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

Zajęło mi trochę czasu, żeby to rozgryźć. Znalazłem tutaj wskazówkę: https://discourse.brew.sh/t/clean-removal-of-mysql/2251

Zatem kluczem do mojego problemu było usunięcie pliku /usr/local/etc/my.cnf po odinstalowaniu. Po tym ostatnim kroku MySql w końcu zaczął działać.

Gishas
źródło
0

Miałem ten sam problem po próbie ponownego uruchomienia mysql.

Dla wygody używam następujących dwóch aliasów w moim .profile

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

Po zatrzymaniu mysql i próbie ponownego uruchomienia wystąpił problem, który miałeś. Przejrzałem ładowanie launchctl i zgłaszał błąd „nic nie znaleziono do załadowania”.

Po szybkim wyszukiwaniu znalazłem to ..

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

Zaktualizowałem więc mysql-startalias w następujący sposób

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

To rozwiązało mój problem, który może ci się przydać.

Alexander Millar
źródło
2
Brew obsługuje teraz servicespolecenie, więc można je odpowiednio zastąpić brew services stop mysqli brew services start mysql.
devstuff
0

Przechowywana jest „Ścieżka podstawowa” dla MySQL, w /etc/my.cnfktórej nie jest aktualizowana podczas aktualizacji brew. Po prostu otwórz i zmień wartość parametru basedir

Na przykład zmień to:

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

wskazać nową wersję:

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

Uruchom ponownie mysql za pomocą:

mysql.server start
Bernhard Zürn
źródło